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用法
- 启动代理:
./proxyclawd- 代理生成CA证书(
ca.crt)第一次跑步。安装它:
macOS:
sudo security add-trusted-cert -d -r trustRoot \
-k /Library/Keychains/System.keychain ca.crtLinux(Debian/Ubuntu):
sudo cp ca.crt /usr/local/share/ca-certificates/proxyclawd.crt
sudo update-ca-certificatesLinux/macOS(无需root):
export NODE_EXTRA_CA_CERTS=$(pwd)/ca.crt- 设置环境变量 在您将运行Claude Code的终端中 (不是代理终端):
Linux/macOS(仅限会话):
export HTTPS_PROXY=http://127.0.0.1:8080
export NODE_EXTRA_CA_CERTS=$(pwd)/ca.crt
claudeWindows(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- 在代理终端中按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会话。这--continueflag(Reply)继续 生成的子流程的最后一个对话,不一定是您在UI中选择的对话。
来自TUI
n--撰写新消息(新的Claude Code会话)r--回复(--continue--继续上一个子流程对话)- 然后键入您的消息
Ctrl+S发送 Esc--取消作曲
从Web UI
- 点击 新 撰写新消息,或 回复 继续
--continue - 键入您的信息,然后按 Ctrl+Enter (或单击“发送”)
- 响应通过代理实时流式传输——它像任何其他被拦截的请求一样出现在请求列表中
网页用户界面
要在TUI旁边启动web界面:
./proxyclawd --web然后打开http://localhost:3000在您的浏览器中。web UI通过WebSocket实时显示与TUI相同的数据。
要使用其他端口,请执行以下操作:
./proxyclawd --web --web-port 8000API终点
| 端点 | 方法 | 描述 |
|---|---|---|
/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 devMCP 服务器
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
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
