Castrel Proxy 是一个轻量级的 本地 Bridge 客户端。它会通过 WebSocket 连接到远端 Castrel Bridge Server,接收来自服务器的指令,在你的机器上执行它们,再把结果返回给服务器。
它提供五项核心能力:
Castrel Proxy 会先与服务器配对,保持长连接,在本地执行任务并返回结果。如果你配置了 MCP,它还可以在需要时调用本地 MCP 工具。
curl -fsSL https://castrel.ai/castrel-proxy/install.sh | bash
安装脚本会从 /castrel-proxy/packages/* 下载对应平台二进制,校验 .sha256 后安装 castrel-proxy。
默认会安装到用户级目录 ~/.local/bin(不需要 sudo)。
如果你要安装到自定义目录:
curl -fsSL https://castrel.ai/castrel-proxy/install.sh | bash -s -- --install-dir ~/bin
如果在交互式终端里且未传 --install-dir,安装脚本会提示你直接填写安装目录;留空则使用默认目录 ~/.local/bin。
可用参数:
--install-dir <path> 指定安装目录
也支持环境变量:
CASTREL_INSTALL_DIR=~/.local/bin
如果安装目录不在 $PATH 中,脚本会输出可直接添加到 shell 配置文件的命令。
当你使用 --install-dir 时,脚本也会检查 PATH,并给出明确提示,确保新终端能直接找到该命令。
要求 Python >= 3.10。
castrel-proxy pair <verification_code> <server_url>
配对后会保存 ~/.castrel/config.yaml,并尝试读取 ~/.castrel/mcp.json 同步 MCP 能力(未配置则跳过)。
# 前台模式(默认)
castrel-proxy start
# 后台守护进程模式(Unix/macOS)
castrel-proxy start --daemon
castrel-proxy status
castrel-proxy logs
castrel-proxy logs -f
http://prometheus.internal:9090)http_proxy_call 在节点本地转发到内网端点free / top)free -h
top -b -n 1
这类请求会走 local_tool_call,并以单个 command_line 字符串在节点本地执行。
castrel-proxy stop
castrel-proxy unpair
默认情况下,Castrel Proxy 使用 ~/.castrel/:
~/.castrel/config.yamlserver_url:服务器地址verification_code:配对码client_id:由主机名 + MAC 推导出的稳定 ID(16 位十六进制)workspace_id:从 verification code 中提取出的工作区 IDpaired_at:配对时间~/.castrel/whitelist.confgit、kubectl)~/.castrel/mcp.json~/.castrel/castrel-proxy.pid~/.castrel/castrel-proxy.log~/.castrel/<session_id>/terminal.logcommand_line + 策略校验)当服务器下发 local_tool_call 时,Castrel Proxy 会在本地执行单个 command_line 字符串,并返回 stdout、stderr、exit_code 和耗时信息。
安全校验顺序如下(采用产品中的策略文案):
deny_all):拒绝所有 Bash 命令执行allowlist):只允许运行策略里允许的命令passthrough):使用节点本地 ~/.castrel/whitelist.conf如果服务端未下发策略,默认按 透传 处理。
复合命令(如 ls && cat file | grep foo)会被拆解后逐条校验。
Castrel Proxy 支持:
replace / append / prepend 编辑文件约束如下:
read_enabled / write_enabled / edit_enabled)如果你希望把本地 MCP 工具暴露给服务器,可以配置 ~/.castrel/mcp.json,然后使用:
castrel-proxy mcp-list
castrel-proxy mcp-sync
当前支持的传输方式包括:
stdio(需要 command + args,可选 env)http(需要 url)sse(需要 url)Castrel Proxy 支持处理服务端下发的 http_proxy_call,并把目标端点的状态码与响应体回传给 Castrel。这个能力主要用于访问内网可观测性端点(例如内网 Prometheus),而无需对公网暴露。
HTTP 转发同样受工作区策略控制(http.enabled,以及可选的 http.allow_hosts)。
Castrel Proxy 支持 local_interactive_call 的 start/write/read/stop 模式,适用于需要持续交互的命令执行场景。
free -h、top -b -n 1、kubectl)不会。它只会主动向服务器建立一条出站 WebSocket 连接,不需要任何入站端口。
把基础命令名写入 ~/.castrel/whitelist.conf(每行一个)。例如要允许 kubectl get pods,只需要加入 kubectl。
常见原因包括:
先停止代理,再卸载,并删除本地配置和日志:
castrel-proxy stop
rm -f "$(command -v castrel-proxy)"
rm -rf ~/.castrel
castrel-proxy stop
pip uninstall castrel-proxy
rm -rf ~/.castrel