Claude Code Manager WAN
Enables ISLI agents and MCP clients to dispatch natural-language coding and terminal tasks to a locally-installed Claude Code CLI, supporting both one-shot execution and persistent sessions with workspace and security controls.
README
Claude Code Manager WAN
An ISLI v2.0 skill that lets ISLI agents (Hermes, OpenClaw, ISLI Core) dispatch natural-language coding and terminal tasks to a locally-installed Claude Code CLI. It also exposes those capabilities through an MCP bridge so any MCP client can list and invoke the tools.
What it does
- One-shot execution — run a single task in a workspace directory.
- Persistent sessions — start a long-lived Claude Code process, send follow-up tasks, and inspect its output.
- MCP bridge — expose
tools/listandtools/callendpoints compatible with mcp-cli-adapter / MCPShell.
ISLI v2.0 endpoints
| Method | Path | Tool name |
|---|---|---|
| GET | /health |
health check |
| GET | /.well-known/isli-manifest |
manifest |
| POST | /execute |
claude_code_execute |
| POST | /session/start |
claude_code_session_start |
| POST | /session/send |
claude_code_session_send |
| POST | /session/status |
claude_code_session_status |
| POST | /session/stop |
claude_code_session_stop |
| POST | /mcp/v1/tools/list |
mcp_tools_list |
| POST | /mcp/v1/tools/call |
mcp_tools_call |
All endpoints except /health and /.well-known/isli-manifest require a valid X-Internal-Auth JWT signed with JWT_SECRET.
Quick start
1. Install Claude Code locally
This skill assumes the claude binary is available on the host. Install or locate it, then note the path.
2. Build and run the skill
docker build -t claude-code-manager-wan .
docker run -d \
--name claude-code-manager-wan \
--network isli_default \
-p 8000:8000 \
-e JWT_SECRET=your-jwt-secret \
-e CLAUDE_CODE_PATH=/usr/local/bin/claude \
-e CLAUDE_CODE_TIMEOUT_SECONDS=120 \
-v /path/to/claude:/usr/local/bin/claude:ro \
-v /path/to/your/workspaces:/workspaces:rw \
claude-code-manager-wan
3. Test health
curl http://localhost:8000/health
4. Execute a task
curl -X POST http://localhost:8000/execute \
-H "Content-Type: application/json" \
-H "X-Internal-Auth: $(python -c "import jwt; print(jwt.encode({}, 'your-jwt-secret', algorithm='HS256'))")" \
-d '{
"workspace": "/workspaces/my-project",
"task": "List the files in this directory",
"allow_write": false,
"timeout_seconds": 60
}'
Docker notes
- Claude Code binary: The image does not include Claude Code. Mount a Linux-compatible
claudebinary (or a wrapper script) into the container and setCLAUDE_CODE_PATH. A Windows.exewill not run inside the Linux container. - Port conflicts: If
localhost:8000is already in use, map a different host port (e.g.,-p 8001:8000) and adjust your test URLs. - Workspaces: Mount the directories you want Claude Code to operate on as volumes. The skill validates that the workspace exists and, if
ALLOWED_WORKSPACESis set, that it is within an allowed prefix. - Integration test fixtures: The
tests/mock-claude*files provide a minimal fake Claude CLI for validating the skill in CI/Docker without a real Anthropic account. - Custom launch command: Use
CLAUDE_CODE_LAUNCH_COMMANDto wrap or proxy the binary. The skill splits the command with shlex and appends its own arguments (--dangerously-skip-permissionsifallow_write=true,-p <task>for one-shot mode). Examples:ollama launch claude --model glm-5.2:cloud/usr/local/bin/claude-wrapper --agent hermes
Environment variables
| Variable | Default | Description |
|---|---|---|
JWT_SECRET |
— | Required. Secret used to verify X-Internal-Auth JWTs from ISLI Core. |
CLAUDE_CODE_PATH |
claude |
Path to the Claude Code binary. Used when CLAUDE_CODE_LAUNCH_COMMAND is not set. |
CLAUDE_CODE_LAUNCH_COMMAND |
— | Optional full launcher command. Overrides CLAUDE_CODE_PATH and lets you wrap or replace the binary invocation, e.g. ollama launch claude --model glm-5.2:cloud. |
CLAUDE_CODE_TIMEOUT_SECONDS |
120 |
Default subprocess timeout. |
ALLOWED_WORKSPACES |
— | Optional comma-separated list of allowed workspace directory prefixes. Empty = no restriction. |
MAX_CONCURRENT_SESSIONS |
10 |
Maximum number of persistent Claude Code sessions. |
LOG_LEVEL |
INFO |
Logging level. |
Persistent sessions
Start a session:
curl -X POST http://localhost:8000/session/start \
-H "Content-Type: application/json" \
-H "X-Internal-Auth: ..." \
-d '{"session_id":"proj-a","workspace":"/workspaces/my-project","allow_write":true}'
Send follow-up tasks:
curl -X POST http://localhost:8000/session/send \
-H "Content-Type: application/json" \
-H "X-Internal-Auth: ..." \
-d '{"session_id":"proj-a","task":"Create a README.md"}'
Check status:
curl -X POST http://localhost:8000/session/status \
-H "Content-Type: application/json" \
-H "X-Internal-Auth: ..." \
-d '{"session_id":"proj-a","tail_lines":50}'
Stop:
curl -X POST http://localhost:8000/session/stop \
-H "Content-Type: application/json" \
-H "X-Internal-Auth: ..." \
-d '{"session_id":"proj-a","force":false}'
MCP bridge
The /mcp/v1/tools/list and /mcp/v1/tools/call endpoints follow the Model Context Protocol shape. Configure Hermes or OpenClaw with mcp-cli-adapter pointing to this skill's HTTP endpoint and passing the X-Internal-Auth header.
Example tools/list response:
{
"tools": [
{
"name": "claude_code_execute",
"description": "Run a one-shot natural-language task through Claude Code...",
"inputSchema": { "type": "object", "required": ["workspace", "task"], "properties": { ... } }
}
]
}
Example tools/call:
curl -X POST http://localhost:8000/mcp/v1/tools/call \
-H "Content-Type: application/json" \
-H "X-Internal-Auth: ..." \
-d '{
"name": "claude_code_execute",
"arguments": {
"workspace": "/workspaces/my-project",
"task": "Show git status",
"allow_write": false
}
}'
Security
allow_writedefaults tofalse; set it totrueonly when the agent needs to edit files or run git commands.- Use
ALLOWED_WORKSPACESto restrict which directories Claude Code can touch. - Never expose
JWT_SECRETor the skill port publicly. - The
--dangerously-skip-permissionsClaude Code flag is used only whenallow_write=true.
Registering in ISLI
Add this entry to medelmouhajir/isli-skills-registry/index.json:
{
"id": "claude-code-manager-wan",
"name": "Claude Code Manager WAN",
"description": "Control Claude Code from ISLI agents. Dispatch one-shot and persistent terminal/coding tasks, and expose them via an MCP bridge.",
"author": "ISLI AI",
"git_url": "https://github.com/medelmouhajir/claude-code-manager-wan",
"tags": ["automation", "claude-code", "mcp", "terminal", "coding"],
"version": "v1.0.0"
}
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。