Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude REPL

Persistent Python REPL server for Claude Code. Avoids the overhead of reloading heavy packages (torch, transformers, etc.) on every code execution.

Problem

When using Claude Code's bash tool to run Python scripts, each invocation:

  1. Starts a new Python process
  2. Loads all imported packages from scratch
  3. Takes 20-30+ seconds for heavy ML packages

Solution

Claude REPL keeps a Python interpreter running. Packages are loaded once, then code executes instantly.

Usage

As MCP Server (recommended)

Add to your .mcp.json:

{
  "mcpServers": {
    "claude-repl": {
      "command": "uv",
      "args": ["run", "claude-repl", "mcp"],
      "cwd": "/path/to/claude-repl"
    }
  }
}

Then in Claude Code:

  1. start_session(preload_code="import torch; from mylib import Model")
  2. execute_code(session_id, "model = Model(); model.forward(x)")

As Standalone Server

Terminal 1 - Start server:

uv run claude-repl server

Terminal 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

From Claude Code's Bash

# 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.sock

API

start_session

Create a new session with optional preloaded code.

execute_code

Execute Python code in a session. Variables persist between calls.

shutdown_session

Clean up a session.

list_sessions

List all active sessions.

About

Persistent Python REPL server for Claude Code - avoids package reload overhead

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages