Claude代码代理工具

一个用于拦截、检查和发送Claude代码消息的MITM代理工具,支持实时TUI和Web界面。

  • by dyshay
  • Rust
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 dyshay/proxyclawd

使用说明

ProxyClawd 的

Claude Code的MITM代理,具有实时TUI和web UI——拦截、检查和 发送您自己的消息 通过Claude Code子流程。

特性

  • HTTPS MITM 通过CONNECT隧道生成运行时TLS证书
  • SSE流解析 零延迟转发
  • 三面板TUI:请求列表、提示视图、直播响应
  • 网页用户界面 (React+Tailwind)支持WebSocket,可在浏览器中实时查看
  • 无头模式 (--headless):在不使用TUI的情况下运行-集成的API启用模式
  • MCP服务器 (proxyclawd-mcp):将代理数据暴露给任何MCP客户端(Claude Code、Cursor等)
  • 发送消息:从TUI或web UI编写和发送提示--生成 claude -p 自动通过代理路由的子流程,无需配置
  • 继续对话:使用 --continue 在上次Claude Code对话中回复
  • 对话线程 使用可折叠的工具循环分组
  • 与tokio的并发连接处理
  • 为Linux(x86_64,aarch64)、macOS(x86_14,aarch63)和Windows(x86\u64)预构建的二进制文件

安装

从下载最新二进制文件 发布,或从源代码构建:

cargo build --release

用法

  1. 启动代理:
./proxyclawd
  1. 代理生成CA证书(ca.crt)第一次跑步。安装它:

macOS:

sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain ca.crt

Linux(Debian/Ubuntu):

sudo cp ca.crt /usr/local/share/ca-certificates/proxyclawd.crt
sudo update-ca-certificates

Linux/macOS(无需root):

export NODE_EXTRA_CA_CERTS=$(pwd)/ca.crt
  1. 设置环境变量 在您将运行Claude Code的终端中 (不是代理终端):

Linux/macOS(仅限会话):

export HTTPS_PROXY=http://127.0.0.1:8080
export NODE_EXTRA_CA_CERTS=$(pwd)/ca.crt
claude

Windows(PowerShell,仅限会话):

$env:HTTPS_PROXY = "http://127.0.0.1:8080"
$env:NODE_EXTRA_CA_CERTS = "$pwd\ca.crt"
claude

要永久设置它们(Windows):

[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:8080", "User")
[Environment]::SetEnvironmentVariable("NODE_EXTRA_CA_CERTS", "C:\path\to\ca.crt", "User")

要永久设置它们(Linux/macOS): 添加到 ~/.bashrc 或 ~/.zshrc:

export HTTPS_PROXY=http://127.0.0.1:8080
export NODE_EXTRA_CA_CERTS=/path/to/ca.crt
  1. 在代理终端中按Enter键启动TUI并实时监视请求。

无头模式

在不使用TUI的情况下运行代理——这对服务器、CI或仅使用web UI/MCP服务器时很有用:

./proxyclawd --web --headless

这在没有终端接口的情况下启动端口3000上的代理和web API。该过程会一直运行,直到您按Ctrl+C。

您可以将其与自定义端口结合使用:

./proxyclawd --web --headless --web-port 8000

发送消息

您可以直接从TUI或web UI编写和发送消息。在引擎盖下,这会产生一个 claude -p --dangerously-skip-permissions 子流程 HTTPS_PROXY 设置为通过代理进行路由。该请求与任何其他Claude Code流量一样被拦截,响应实时显示。

警告: 新建/回复生成新的Claude Code会话(claude -p).这是一个 单独的子流程 --它不会重用您现有的交互式Claude Code会话。这 --continue flag(Reply)继续 生成的子流程的最后一个对话,不一定是您在UI中选择的对话。

来自TUI

  • n --撰写新消息(新的Claude Code会话)
  • r --回复(--continue --继续上一个子流程对话)
  • 然后键入您的消息 Ctrl+S 发送
  • Esc --取消作曲

从Web UI

  1. 点击 新 撰写新消息,或 回复 继续 --continue
  2. 键入您的信息,然后按 Ctrl+Enter (或单击“发送”)
  3. 响应通过代理实时流式传输——它像任何其他被拦截的请求一样出现在请求列表中

网页用户界面

要在TUI旁边启动web界面:

./proxyclawd --web

然后打开http://localhost:3000在您的浏览器中。web UI通过WebSocket实时显示与TUI相同的数据。

要使用其他端口,请执行以下操作:

./proxyclawd --web --web-port 8000

API终点

端点 方法 描述
/ws GET WebSocket——实时事件
/api/requests GET 所有被拦截的请求
/api/send POST 生成一个 claude -p 子进程

构建前端

web UI由提供 frontend/dist/。要重建它,请执行以下操作:

cd frontend
npm install
npm run build

对于使用热重载的开发(将API/WS代理到端口3000上的Rust服务器):

cd frontend
npm run dev

MCP 服务器

proxyclawd-mcp 是一个独立的MCP(模型上下文协议)服务器,连接到ProxyClawd web API。它允许任何兼容MCP的客户端(Claude Code、Cursor等)查询拦截的请求、查看对话和发送消息。

构建

cargo build -p proxyclawd-mcp --release

配置

添加到MCP客户端配置中(例如。 ~/.claude/claude_desktop_config.json 或克劳德代码设置):

{
  "mcpServers": {
    "proxyclawd": {
      "command": "proxyclawd-mcp",
      "args": ["--proxy-url", "http://127.0.0.1:3000"]
    }
  }
}

MCP工具

工具 说明
list_requests 列出拦截的API请求(可选 limit 和 status 过滤器)
get_request 按ID获取请求的完整详细信息
send_message 通过Claude子流程发送消息
get_conversations 按对话线程分组请求
get_recent_events 获取最近的请求(可选自给定ID以来)

MCP资源

URI 描述
proxy://requests 所有被拦截请求的当前列表(JSON)
proxy://status 连接状态和请求计数器

开放式法律技能

一 龙虾 技能包含在 openclaw-skill/ 用于使用OpenClaw框架的代理。它提供shell脚本来与ProxyClawd REST API交互:

# Check if ProxyClawd is running
bash openclaw-skill/scripts/get-status.sh

# List intercepted requests
bash openclaw-skill/scripts/list-requests.sh

# Group by conversation
bash openclaw-skill/scripts/get-conversations.sh

# Send a message
bash openclaw-skill/scripts/send-message.sh "hello"

集 PROXYCLAWD_URL 覆盖默认值(http://127.0.0.1:3000).

TUI控制

关键 行动
Up/Down 或 k/j 浏览请求列表
Enter 在对话/工具循环中切换折叠
Page Up/Page Down 滚动响应
n 新消息(撰写模式)
r 回复(--continue)
Ctrl+S 发送消息(在撰写模式下)
Esc 取消撰写/退出
q 退出

CLI参考

proxyclawd [OPTIONS]

Options:
  --web              Enable web UI server
  --web-port <PORT>  Web UI port [default: 3000]
  --headless         Run without the TUI (requires --web)
  -h, --help         Print help

截图

释放

释放是自动的。将版本插入 Cargo.toml 推送——将创建一个包含所有平台二进制文件的GitHub Release。

堆栈

Rust、tokio、hyper、rustls、rcgen、ratatui、crossterm、axum、rmcp、clap|React、TypeScript、Tailwind CSS、Vite