# start-claude-code **Repository Path**: andy-w/start-claude-code ## Basic Information - **Project Name**: start-claude-code - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-31 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Start Claude Code > Run Claude Code `v2.1.88` from leaked source — one command setup. Both interactive TUI and non-interactive modes work. **GitHub**: https://github.com/JiaranI/start-claude-code ![Open source vs Official](screenshot.png) ## Quick Start ```bash 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.sh ``` First run will automatically install Bun, dependencies, and configure everything. --- ## Usage ### Interactive TUI (full terminal UI) ```bash # 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-permissions ``` ### Non-interactive mode (scripts/pipes) ```bash export ANTHROPIC_API_KEY="sk-ant-xxx" ./start.sh -p "explain this code" --dangerously-skip-permissions < /dev/null ``` ### Use a third-party proxy ```bash export 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 ``` ### Specify model ```bash ./start.sh --model claude-sonnet-4-20250514 ./start.sh --model claude-opus-4-20250514 ./start.sh --model claude-haiku-4-5-20241022 ``` --- ## Manual Setup If you prefer to set up step by step: ```bash # 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 ``` --- ## Environment Variables | 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` | --- ## Status | 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`) | --- ## What is this? On March 31, 2026, the full source code of Anthropic's Claude Code CLI was [leaked](https://x.com/Fried_rice/status/2038894956459290963) 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.** ### What was leaked vs what we had to reconstruct 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 | ### Tech Stack | 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 | ### Source Structure ``` 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!) └── ... ``` --- ## Troubleshooting ### "API Error: 400 ... invalid beta flag" Your proxy doesn't support Claude beta headers. Set: ```bash export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 export DISABLE_INTERLEAVED_THINKING=1 ``` Or use `--bare` mode which skips most features. ### "API Error: 400 ... cache_control" ```bash export DISABLE_PROMPT_CACHING=1 ``` ### "API Error: 400 ... /v1/v1/messages" Your `ANTHROPIC_BASE_URL` should NOT include `/v1`: ```bash # Wrong export ANTHROPIC_BASE_URL="https://proxy.com/v1" # Correct export ANTHROPIC_BASE_URL="https://proxy.com" ``` ### "API Error: 401" in interactive mode with proxy Interactive mode may use OAuth tokens from a previous official Claude Code login. Use `--bare` to force API key auth: ```bash ./start.sh --dangerously-skip-permissions --bare ``` ### Stuck / no output in non-interactive mode Always pipe `/dev/null` to stdin: ```bash ./start.sh -p "hello" --dangerously-skip-permissions < /dev/null ``` --- ## Disclaimer This repository archives source code that was leaked from Anthropic's npm registry. All original source code is the property of [Anthropic](https://www.anthropic.com).