Claude Code Manager WAN
FreeNot checkedEnables ISLI agents and MCP clients to dispatch natural-language coding and terminal tasks to a locally-installed Claude Code CLI, supporting both one-shot exec
About
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
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
Installing Claude Code Manager WAN
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/medelmouhajir/claude-code-manager-wanFAQ
Is Claude Code Manager WAN MCP free?
Yes, Claude Code Manager WAN MCP is free — one-click install via Unyly at no cost.
Does Claude Code Manager WAN need an API key?
No, Claude Code Manager WAN runs without API keys or environment variables.
Is Claude Code Manager WAN hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Claude Code Manager WAN in Claude Desktop, Claude Code or Cursor?
Open Claude Code Manager WAN on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Claude Code Manager WAN with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
