Persistent Python REPL server for Claude Code. Avoids the overhead of reloading heavy packages (torch, transformers, etc.) on every code execution.
When using Claude Code's bash tool to run Python scripts, each invocation:
- Starts a new Python process
- Loads all imported packages from scratch
- Takes 20-30+ seconds for heavy ML packages
Claude REPL keeps a Python interpreter running. Packages are loaded once, then code executes instantly.
Add to your .mcp.json:
{
"mcpServers": {
"claude-repl": {
"command": "uv",
"args": ["run", "claude-repl", "mcp"],
"cwd": "/path/to/claude-repl"
}
}
}Then in Claude Code:
start_session(preload_code="import torch; from mylib import Model")execute_code(session_id, "model = Model(); model.forward(x)")
Terminal 1 - Start server:
uv run claude-repl serverTerminal 2 - Use CLI:
# Create session with preloaded packages
uv run claude-repl create --id mysession --preload "import torch"
# Execute code
uv run claude-repl exec mysession "print(torch.cuda.is_available())"
# List sessions
uv run claude-repl list# Start server in background
uv run claude-repl server &
# Create session
echo '{"action":"create_session","session_id":"main","preload_code":"import torch"}' | nc -U /run/user/$(id -u)/claude-repl.sock
# Execute code
echo '{"action":"execute","session_id":"main","code":"print(torch.__version__)"}' | nc -U /run/user/$(id -u)/claude-repl.sockCreate a new session with optional preloaded code.
Execute Python code in a session. Variables persist between calls.
Clean up a session.
List all active sessions.