持久化Shell服务

Arbitrium是一个为Claude Code提供的持久化Shell MCP服务器,允许代理在工具调用之间保持Shell会话状态。

  • by PStryder
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 PStryder/arbitrium

使用说明

丙烯腈

来自拉丁语 裁决 --自由判断、掌握、控制。决定和指挥的权力。在Velle意志和Expergis感知的地方,Arbitrium指挥。

持久化shell MCP服务器 克劳德代码.

Arbitrium为代理提供了持久的shell会话,这些会话可以在工具调用中生存。生成一个shell,运行命令,读取输出——shell保留交互之间的所有状态(环境变量、工作目录、正在运行的进程)。每个命令及其输出都记录到 ./logs/.

运作原理

arbitrium_spawn  ->  bash subprocess with stdin/stdout pipes
arbitrium_exec   ->  write command + sentinel to stdin, read output until sentinel
arbitrium_close  ->  graceful termination

无控制台注入,无缓冲区刮擦。只有管道和哨兵模式来检测命令完成。shell是无头的——输出通过MCP工具响应返回。

MCP工具

工具 说明
arbitrium_spawn 打开一个新的持久shell会话
arbitrium_exec 执行命令并返回完整输出+退出代码
arbitrium_list 列出带有元数据的活动会话
arbitrium_close 关闭会话并终止子流程

主要特点

  • 状态持久性 — cd, export、别名、shell函数都在调用中存活
  • 完整输出捕获 --返回命令和下一个提示符之间的所有内容,而不仅仅是一个截断的窗口
  • 退出代码 --每个命令都返回其退出代码
  • 超时处理 --可配置每个命令超时,超时时部分输出
  • 会话日志记录 --每节课都会写一份完整的成绩单 ./logs/
  • 多个会话 --使用不同的工作目录同时运行多个shell

安装

需要Python 3.10+和 紫外线.

git clone https://github.com/PStryder/arbitrium.git
cd arbitrium
uv sync

添加到克劳德代码:

claude mcp add -s user arbitrium -- /path/to/arbitrium/.venv/Scripts/python -m arbitrium.server

或手动输入 ~/.claude.json:

{
  "mcpServers": {
    "arbitrium": {
      "command": "/path/to/arbitrium/.venv/Scripts/python",
      "args": ["-m", "arbitrium.server"],
      "cwd": "/path/to/arbitrium"
    }
  }
}

用法

Agent: arbitrium_spawn(shell="bash", cwd="/my/project")
  -> session_id: "shell-a1b2c3"

Agent: arbitrium_exec(session_id="shell-a1b2c3", command="export API_KEY=test123")
  -> ok, exit_code: 0

Agent: arbitrium_exec(session_id="shell-a1b2c3", command="echo $API_KEY")
  -> output: "test123", exit_code: 0    # state persisted!

Agent: arbitrium_exec(session_id="shell-a1b2c3", command="cd src && ls")
  -> output: "main.py  utils.py", exit_code: 0

Agent: arbitrium_exec(session_id="shell-a1b2c3", command="pwd")
  -> output: "/my/project/src", exit_code: 0    # directory persisted!

Agent: arbitrium_close(session_id="shell-a1b2c3")
  -> closed, 4 commands executed

安全

Arbitrium提供 不受限制的shell访问 --代理发送的任何命令都将在运行Claude Code的用户的权限下执行。没有沙盒。

所有命令和输出都记录到 ./logs/ 带有时间戳。查看日志以审核代理行为。

三合会

工具 角色 拉丁语
Velle 意志——自我激励 to will
Expergis 感知——事件检测 醒来
丙烯腈 机构——环境控制 自由判断

许可证

Apache 2.0