Run Claude Code
v2.1.88from leaked source — one command setup. Both interactive TUI and non-interactive modes work.
GitHub: https://github.com/JiaranI/start-claude-code
git clone https://github.com/JiaranI/start-claude-code.git
cd start-claude-code
# Set API key (or use existing OAuth login from official Claude Code)
export ANTHROPIC_API_KEY="sk-ant-xxx"
# Run!
./start.shFirst run will automatically install Bun, dependencies, and configure everything.
# With API key
export ANTHROPIC_API_KEY="sk-ant-xxx"
./start.sh --dangerously-skip-permissions
# Or with existing OAuth login (if you've used official Claude Code before)
./start.sh --dangerously-skip-permissionsexport ANTHROPIC_API_KEY="sk-ant-xxx"
./start.sh -p "explain this code" --dangerously-skip-permissions < /dev/nullexport ANTHROPIC_BASE_URL="https://your-proxy.com" # Don't include /v1
export ANTHROPIC_API_KEY="your-key"
export DISABLE_PROMPT_CACHING=1
export DISABLE_INTERLEAVED_THINKING=1
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
# Non-interactive (recommended for proxies)
./start.sh -p "hello" --model claude-sonnet-4-20250514 \
--dangerously-skip-permissions --no-session-persistence < /dev/null
# Interactive TUI with proxy
./start.sh --model claude-sonnet-4-20250514 --dangerously-skip-permissions --bare./start.sh --model claude-sonnet-4-20250514
./start.sh --model claude-opus-4-20250514
./start.sh --model claude-haiku-4-5-20241022If you prefer to set up step by step:
# 1. Install Bun
curl -fsSL https://bun.sh/install | bash
export PATH="$HOME/.bun/bin:$PATH"
# 2. Run setup
node scripts/setup.mjs
# 3. Run
bun src/entrypoints/cli.tsx --dangerously-skip-permissions| Variable | Description | Default |
|---|---|---|
ANTHROPIC_API_KEY |
API key (not needed if using OAuth) | - |
ANTHROPIC_BASE_URL |
API base URL (no /v1 suffix) |
https://api.anthropic.com |
ANTHROPIC_MODEL |
Default model | claude-sonnet-4-6 |
DISABLE_PROMPT_CACHING |
Disable prompt caching (needed for most proxies) | 0 |
DISABLE_INTERLEAVED_THINKING |
Disable interleaved thinking (needed for some proxies) | 0 |
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS |
Disable experimental beta headers (needed for some proxies) | 0 |
CLAUDE_CODE_FORCE_FULL_LOGO |
Show full welcome screen with border and tips | 0 |
| Feature | Status |
|---|---|
--version / --help |
Working |
-p non-interactive mode |
Working (full API call + tool use) |
| Interactive TUI | Working (full UI rendering + input) |
| OAuth login | Working (reuses existing official Claude Code login) |
| Third-party proxy | Working (set ANTHROPIC_BASE_URL) |
On March 31, 2026, the full source code of Anthropic's Claude Code CLI was leaked via a .map file in their npm registry. This repository contains:
- The complete
src/directory (~1,900 files, 512,000+ lines of TypeScript) - Build shims and stubs to make it runnable from source
- A one-click setup script
Source authenticity: Verified by comparing all 1,902 source files against @anthropic-ai/claude-code@2.1.88's source map — 100% byte-identical match, zero differences.
The leak only contains src/ — raw TypeScript before compilation. Running from source required reverse-engineering the missing build infrastructure:
| Missing piece | What it is | Our workaround |
|---|---|---|
bun:bundle |
Compile-time feature flag API (dead code elimination) | Runtime shim returning false for all flags |
MACRO.* |
Build-time constant injection (MACRO.VERSION etc.) |
Global variable definition in preload |
package.json |
Dependency declarations (94 packages) | Reverse-engineered from import statements |
| Private npm packages | @anthropic-ai/sandbox-runtime, @ant/*, @anthropic-ai/mcpb |
Empty stub modules with fake exports |
| Generated files | coreTypes.generated.ts etc. (built by internal scripts) |
Manually created type stubs |
| Feature-gated files | Files deleted at compile time (connectorText.ts, TungstenTool/*) |
Empty stub files |
| Keybinding dispatch | registerHandler callbacks gated behind chord-only check |
Removed wasInChord guard |
| Component | Technology |
|---|---|
| Runtime | Bun |
| Language | TypeScript |
| Terminal UI | React + Ink (custom fork) |
| CLI Parser | Commander.js |
| API | Anthropic SDK |
| Code Search | ripgrep (bundled) |
| Protocols | MCP, LSP |
src/
├── main.tsx # CLI entrypoint
├── QueryEngine.ts # Core LLM API caller
├── tools/ # ~40 agent tools (Bash, Edit, Read, etc.)
├── commands/ # ~50 slash commands (/commit, /review, etc.)
├── components/ # ~140 Ink UI components
├── services/ # API, MCP, OAuth, analytics
├── bridge/ # IDE integration (VS Code, JetBrains)
├── coordinator/ # Multi-agent orchestration
├── skills/ # Skill system
├── plugins/ # Plugin system
├── memdir/ # Persistent memory
├── buddy/ # Companion sprites (19 animals!)
└── ...
Your proxy doesn't support Claude beta headers. Set:
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export DISABLE_INTERLEAVED_THINKING=1Or use --bare mode which skips most features.
export DISABLE_PROMPT_CACHING=1Your ANTHROPIC_BASE_URL should NOT include /v1:
# Wrong
export ANTHROPIC_BASE_URL="https://proxy.com/v1"
# Correct
export ANTHROPIC_BASE_URL="https://proxy.com"Interactive mode may use OAuth tokens from a previous official Claude Code login. Use --bare to force API key auth:
./start.sh --dangerously-skip-permissions --bareAlways pipe /dev/null to stdin:
./start.sh -p "hello" --dangerously-skip-permissions < /dev/nullThis repository archives source code that was leaked from Anthropic's npm registry. All original source code is the property of Anthropic.
