A fully functional open source implementation of Anthropic's Claude Code CLI,
built from decompiled source intelligence using ruDevolution.
Automated Nightly Releases โ Open Claude Code automatically detects new Claude Code releases, runs 903+ tests to verify zero regressions, and publishes verified builds with AI-powered discovery analysis. See Releases | ADR-001 | pi.ruv.io
# Run instantly (no install)
npx @ruvnet/open-claude-code "explain this codebase"
# Or install globally
npm install -g @ruvnet/open-claude-code
occ "hello"
# Interactive mode
occRequires: ANTHROPIC_API_KEY environment variable set.
export ANTHROPIC_API_KEY=sk-ant-...
npx @ruvnet/open-claude-code "what files are in this directory?"A Cursor-style AI coding assistant built directly into VSCode โ no terminal required.
The extension package is included in the repo and ready to install:
code --install-extension vscode-extension/open-claude-code-1.4.0.vsixOr use Extensions โ โฆ โ Install from VSIXโฆ and pick the file from the vscode-extension/ folder.
cd vscode-extension
npm install
npm run package # prepackage โ package โ postpackage
code --install-extension open-claude-code-1.4.0.vsix- Dedicated activity bar icon โ opens a full Cursor-style chat panel in the sidebar
@claudechat participant โ access Claude directly from VS Code's built-in Chat panel- Full tool access โ all 25+ agent tools (Read, Write, Edit, Bash, Glob, Grep, WebFetch, โฆ)
- Rich markdown + syntax highlighting โ code blocks with copy & Apply-to-file buttons
- Copy whole answer โ โ Copy button on every assistant reply copies the full response to the clipboard
- Session memory โ the model remembers the full conversation from the beginning across VS Code restarts (Claude Premium-style); auto-saves after every response and restores on reopen
- Chat history โ History button shows all past conversations (Cursor-style panel); "New" auto-saves the current session; sessions persist across VS Code restarts; up to 30 sessions are retained
- โถ Resume โ any past session can be fully resumed: all messages are restored in the chat panel and the model's context is re-injected into the agent bridge
- โ Settings shortcut โ gear button in the header opens the extension settings directly โ no need to navigate through the marketplace
- Streaming responses โ tokens arrive in real time with an animated cursor
- Tool visualization โ collapsible cards showing each tool execution and result
@filecontext injection โ type@filenameor click ๐ to add a file to the prompt@gitcontext chip โ type@gitor click the git button to inject current branch, changed files, and diff summary into the conversation@errorscontext chip โ type@errorsor click the โ button to inject all workspace errors and warnings (VSCode diagnostics) into the conversation@openfilesautocomplete โ type@openfilesto pick from your currently open editor tabs- Auto-attach active file โ toggle the ๐ button (or
openClaudeCode.autoAttachActiveFilesetting) to automatically include the active editor with every message - Context-full warning โ a banner appears when the context window exceeds 85%, with a quick "New chat" shortcut
- Per-message response time โ each assistant reply shows how long it took to generate (visible on hover)
- Ctrl/Cmd+Enter โ additional keyboard shortcut for sending a message
- Multi-provider โ Anthropic Claude, OpenAI GPT, Google Gemini, NVIDIA NIM
- Model & permission-mode selector โ switch model and mode directly from the UI
- Session stats โ token count, cost estimate, and elapsed time always visible
- Proactive workspace analysis โ the agent explores your project automatically before answering; never asks you to paste code
See vscode-extension/README.md for the full setup and configuration guide.
Open Claude Code is a ground-up open source rebuild of Anthropic's Claude Code CLI, informed by ruDevolution's AI-powered decompilation of the published npm package.
It's not a copy โ it's a clean-room implementation that mirrors the actual Claude Code architecture: async generator agent loop, 25 tools, 4 MCP transports, 6 permission modes, hooks, settings chain, sessions, and more.
1,581 tests. 61 files. 8,314 lines. 100% functional.
npx @ruvnet/open-claude-code "your prompt here"npm install -g @ruvnet/open-claude-code
occ "your prompt here"git clone https://github.com/ruvnet/open-claude-code.git
cd open-claude-code/v2
export ANTHROPIC_API_KEY=sk-ant-...
node src/index.mjs "hello"occ "explain the auth module"
occ "fix the bug in server.js"
occ "create a REST API for user management"
occ "find all TODO comments in this project"occ
# > explain this codebase
# > /help
# > /tools
# > /model claude-opus-4-6
# > refactor the database layer
# > /cost
# > /exitocc [options] [prompt]
Options:
-m, --model <model> Model to use (default: claude-sonnet-4-6)
-p, --print Print mode (non-interactive, output only)
--permission-mode <mode> Permission mode: default, auto, plan, acceptEdits,
bypassPermissions, dontAsk
--system-prompt <text> Override system prompt
--add-dir <path> Additional CLAUDE.md directory
--max-turns <n> Maximum conversation turns
--allowedTools <tools> Comma-separated allowed tools
--disallowedTools <tools> Comma-separated denied tools
--output-format <fmt> Output: text, json, stream-json
-v, --verbose Verbose output
-d, --debug Debug mode
--version Show version
-h, --help Show help# Use a different model
occ -m claude-opus-4-6 "design a database schema for a blog"
# Print mode (for piping)
occ -p "list all functions in src/" > functions.txt
# Plan mode (read-only, no edits)
occ --permission-mode plan "review the security of auth.js"
# Restrict tools
occ --allowedTools "Read,Glob,Grep" "find all API endpoints"
# With custom system prompt
occ --system-prompt "You are a senior Go developer" "review main.go"40 slash commands available in REPL mode:
| Command | Description |
|---|---|
/help |
Show all commands |
/model <name> |
Switch model mid-conversation |
/tools |
List available tools |
/tokens |
Show current token usage |
/cost |
Show session cost estimate |
/compact |
Compact context window |
/undo |
Undo last file edit |
/clear |
Clear conversation history |
/doctor |
Check API connectivity + health |
/fast |
Toggle fast mode (Haiku) |
/effort <level> |
Set effort: low, medium, high, max |
/resume [id] |
Resume a previous session |
/sessions |
List saved sessions |
/agents |
List custom agents |
/skills |
List available skills |
/hooks |
Show active hooks |
/config |
Show current settings |
/permissions |
Show permission mode |
/mcp |
Show MCP server status |
/memory |
Show memory usage |
/exit |
Exit |
25 built-in tools matching Claude Code's tool system:
| Tool | Description |
|---|---|
| Bash | Execute shell commands (sandboxed) |
| Read | Read files with line numbers |
| Edit | Replace strings in files |
| Write | Create/overwrite files |
| Glob | Find files by pattern |
| Grep | Search file contents (regex) |
| LS | List directory contents |
| Agent | Spawn sub-agents |
| WebFetch | Fetch URL content |
| WebSearch | Web search |
| TodoWrite | Task management |
| NotebookEdit | Edit Jupyter notebooks |
| MultiEdit | Atomic multi-file edits |
| ToolSearch | Discover deferred tools |
| AskUser | Prompt user for input |
| Skill | Invoke a skill |
| SendMessage | Agent team messaging |
| CronCreate/Delete/List | Scheduled tasks |
| EnterWorktree/ExitWorktree | Git worktree isolation |
| RemoteTrigger | Remote execution |
| LSP | Language server protocol |
| ReadMcpResource | Read MCP resources |
Create .claude/settings.json in your project or ~/.claude/settings.json globally:
{
"model": "claude-sonnet-4-6",
"permissions": {
"defaultMode": "auto"
},
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "echo 'Running bash...'" }]
}]
},
"autoCompactEnabled": true,
"alwaysThinkingEnabled": true
}Settings are loaded from 4 sources (in priority order):
.claude/settings.local.json(local, gitignored).claude/settings.json(project, shared)~/.claude/settings.json(user global)- Managed policy (enterprise)
Create a CLAUDE.md in your project root to customize behavior:
# Project Rules
- Always use TypeScript
- Follow TDD
- Keep files under 500 linesCLAUDE.md files are loaded from: ~/.claude/CLAUDE.md โ parent directories โ project root โ .claude/CLAUDE.md.
Create .claude/agents/reviewer.md:
---
name: reviewer
description: Code review specialist
model: claude-sonnet-4-6
tools: [Read, Glob, Grep]
---
You are a thorough code reviewer. Check for bugs, security issues, and style.Create .claude/skills/deploy/SKILL.md:
---
name: deploy
description: Deploy to production
---
1. Run tests: npm test
2. Build: npm run build
3. Deploy: ./scripts/deploy.shInvoke with /deploy in the REPL.
Works with 5 AI providers:
# Anthropic (default)
ANTHROPIC_API_KEY=... occ "hello"
# OpenAI
OPENAI_API_KEY=... occ -m gpt-4o "hello"
# Google
GOOGLE_AI_API_KEY=... occ -m gemini-2.5-flash "hello"
# AWS Bedrock
AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... occ -m bedrock/claude-sonnet "hello"
# Google Vertex
GOOGLE_APPLICATION_CREDENTIALS=... occ -m vertex/claude-sonnet "hello"
# NVIDIA NIM (kimi-k2.5, deepseek-r1, and other thinking models supported)
NVIDIA_API_KEY=nvapi-... occ -m kimi-k2.5 "hello"Note โ NVIDIA models (Kimi K2.5, DeepSeek R1): These models support full tool-calling by default โ they can Read, Write, Bash, Grep, and run all 25+ agent tools exactly like Cursor or opencode. Set
NVIDIA_THINKING_MODE=true(or toggle theopenClaudeCode.nvidiaThinkingModesetting in the VSCode extension) to opt into extended reasoning mode; in that mode tools are replaced with a rich workspace snapshot injected into the system prompt (file tree + key file contents), since NVIDIA NIM does not allow tools and thinking simultaneously.
Connect to MCP servers for additional tools:
// .mcp.json
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": ["-y", "my-mcp-server"],
"env": { "API_KEY": "..." }
}
}
}Supports 4 transports: stdio, SSE, Streamable HTTP, WebSocket.
On March 31, 2026, Anthropic accidentally shipped source maps in the Claude Code npm package, exposing the full TypeScript source. This project takes a different approach โ we use ruDevolution to analyze the published npm package legally and rebuild from that intelligence.
| Discovery | Evidence |
|---|---|
| ๐ค Agent Teams | CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS |
| ๐ Auto Dream Mode | tengu_auto_dream_completed |
| ๐ฎ claude-opus-4-6 | Unreleased model ID |
| ๐ 6 "amber" codenames | Internal feature gates |
| โ๏ธ Cloud Code Runner | BYOC compute |
| ๐ก MCP Streamable HTTP | New transport |
Download decompiled releases โ
This is a clean-room implementation โ no leaked source used. Architecture informed by analysis of the published npm package, legal under US DMCA ยง1201(f), EU Software Directive Art. 6, UK CDPA ยง50B.
Richer context injection
@gitchip โ type@gitin the chat input (or click the new git toolbar button) to instantly inject the current branch name,git status, andgit diff --statas a context chip. The content is appended inline to your message so the model has full awareness of your working-tree state@errorschip โ type@errors(or click the โ toolbar button) to pull all workspace errors and warnings from the VSCode diagnostics API into the conversation, grouped by severity@openfilesautocomplete โ type@openfilesto populate the@autocomplete dropdown with every file currently open in the editor, making it easy to add multiple files without typing paths- Auto-attach active file โ click the new ๐ toolbar button (or set
openClaudeCode.autoAttachActiveFile: truein settings) to automatically include the currently active editor file with every message you send โ no need to type@every time
UX improvements
- Context-full warning banner โ a visible warning appears above the input when context usage exceeds 85%, with a one-click "New chat" shortcut to start fresh before responses degrade
- Per-message response time โ each assistant reply now shows how long it took to generate (e.g.
3.2s) in the message header, visible on hover - Ctrl/Cmd+Enter โ added as a second keyboard shortcut for sending messages (in addition to plain Enter)
- Consistent keyboard hint โ the input area now shows
Enter / Ctrl+Enter sendto surface the new shortcut
- Session memory loss fix โ agent bridge now auto-injects the full session history whenever a new bridge process is created (covers crashes, settings changes, and VS Code restarts)
- Bridge queue stability โ message queue is drained reliably on bridge restart so in-flight requests are not lost
- Max-turns UX hint โ when the agent loop hits its turn limit a visible
โ Max turns reachednotice is shown with instructions to continue
Session Memory algorithm โ the model now remembers the full conversation from the very beginning, just like Claude premium sessions:
- Auto-persist active session โ the current conversation is automatically saved to VS Code
globalStateafter every response. If you close and reopen VS Code, your conversation is fully restored โ messages in the chat panel and the model's context in the bridge subprocess - Session resume from history โ every past conversation in the History panel now has a โถ Resume button. Clicking it:
- Saves your current in-progress chat to history
- Restores all messages of the selected session in the main chat panel
- Re-injects the full conversation into the agent loop (
resumecommand inagent-bridge.mjs) so the model has complete memory of everything said โ no context lost
- New
resumebridge protocol โagent-bridge.mjsaccepts{"type":"resume","messages":[โฆ]}which converts the stored UI message format back to the Anthropic/OpenAI API message format and sets it directly on the agent loop's state - Auto-clear on new chat โ starting a new conversation clears the persisted active session so the next restart begins fresh
New UI features (this PR)
- โ Settings button โ a gear icon added to the chat header opens
openClaudeCodesettings directly; no more navigating through the Extensions marketplace - โ Copy whole answer โ each finalized assistant reply now has a
โ Copybutton in the message header; one click copies the full raw markdown response to the clipboard - Chat history panel (Cursor-style) โ clicking the new History header button opens a full-overlay panel listing all past sessions. Pressing New auto-saves the current conversation to history first. Sessions are persisted in VS Code
globalStateand survive restarts; up to 30 sessions are retained - Cursor-style session navigation โ click any session in the history list to view its messages read-only (with Copy buttons intact); a Back button returns to the session list
Fix: Proactive workspace analysis for all models
- All models now receive a strong agentic system prompt declaring the workspace
cwdand instructing them to explore files with LS / Glob / Read / Grep / Bash before answering โ never asking the user to paste code - New
buildWorkspaceSnapshothelper recursively walks the workspace (skippingnode_modules,.git,dist, etc.) and returns a compact indented file tree capped at 200 entries - New
buildWorkspaceContenthelper reads key project files (README, package.json, entry points, etc.) and returns their contents for inline injection โ capped at 64 KB total - Kimi K2.5 and DeepSeek R1 now use full tool-calling by default โ Read, Write, Bash, Grep, and all 25+ tools work exactly like Cursor or opencode; thinking/reasoning mode is an opt-in setting (
NVIDIA_THINKING_MODE=trueoropenClaudeCode.nvidiaThinkingModein VSCode settings) - When thinking mode IS enabled a rich workspace snapshot (file tree + key file contents) is injected into the system prompt with a purpose-built thinking-model system prompt
- Extension model descriptions updated; version bumped to 1.2.0
VSCode Extension โ Cursor-style sidebar panel (PR #2)
- New dedicated activity bar icon with a full-screen Cursor-style chat panel
- Rich markdown rendering, syntax-highlighted code blocks, copy & Apply-to-file buttons
- Streaming responses with animated cursor, tool visualization cards, extended thinking blocks
@filecontext injection, file picker, model/mode selector, session stats, and stop button- Pre-built VSIX committed to
vscode-extension/open-claude-code-1.1.0.vsixโ install with one command
VSCode Extension โ @claude Chat Participant (PR #1)
- New
vscode-extension/package exposing thev2/srcagent loop as a native VSCode Chat participant - Long-lived
agent-bridge.mjssubprocess keeps conversation history across turns - API key stored in VSCode
SecretStorageโ never written to disk in plaintext /clearand/modelslash commands; configurable permission mode, max turns, and tool visibility
Fix: NVIDIA NIM thinking models (PR #3)
kimi-k2.5,deepseek-r1, and other NVIDIA thinking models no longer crash with HTTP 400- Tool array is now omitted for thinking models (the two parameters are mutually exclusive)
- Clean system prompt (without tool descriptions) is used for thinking-model calls
VSCode extension package now tracked in git (PR #4)
*.vsixremoved from.gitignoreโ the built package lives atvscode-extension/open-claude-code-1.1.0.vsix
- ruDevolution โ AI-Powered JavaScript Decompiler
- Decompiled Releases โ Every Claude Code version
- v2 Architecture (ADR-001)
- Path to 100% (ADR-002)
Nightly Release Pipeline
Open Claude Code includes an automated nightly CI/CD pipeline that:
- Detects new Claude Code releases from npm registry (03:00 UTC daily)
- Verifies compatibility with 903+ tests, npm audit, and smoke tests
- Analyzes changes using Claude Sonnet 4.6 AI-powered discovery
- Publishes verified releases with detailed notes โ only if ALL gates pass
Cron 03:00 UTC โ npm check โ 903+ tests โ npm audit โ AI analysis โ verified release
Manual trigger:
gh workflow run nightly.yml -f force_release=trueRequired secrets:
GITHUB_TOKENโ automaticANTHROPIC_API_KEYโ optional, for AI discovery analysis
See ADR-001 for full architecture.
The rudevolution submodule provides AI-powered decompilation analysis of Claude Code releases, tracking 34,759+ functions with 95.7% name accuracy. Used by the nightly pipeline for change discovery.
MIT