About Claude Code CLI
Claude Code CLI is an MCP server published by TaGoat in the Developer Tools category: 这是 Claude Code 的 CLI 客户端主体(src/ 目录),即整个终端交互层的源码。具体包含: 1. CLI 入口与命令解析 — main.tsx(4684行)、entrypoints/(CLI 模式、SDK 模式、MCP 模式) 2. 终端 UI 渲染 — components/(144 个组件,用 React + Ink 渲染终端界面) 3. 工具系统 — tools/(43 个工具,Bash、文件读写编辑、Grep、Glob、Web 搜索等) 4. API 通信层 — services/api/(与 Anthropic 后端通信) 5. MCP 协议 6. 多 Agent/Team 协作 l 7. 认证与策略 8. 辅助服务 等.
The repository has 104 stars and 144 forks, with the last commit 6 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/TaGoat/claude_code_cliThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (6)
get_architectureHigh-level architecture overview
Parameters not published.
get_command_sourceRead source of any slash command (e.g. review, mcp)
Parameters not published.
list_commandsList all ~50 slash commands with source files
Parameters not published.
list_directoryBrowse `src/` directories
Parameters not published.
read_source_fileRead any file from `src/` by path
Parameters not published.
search_sourceGrep across the entire source tree
Parameters not published.
Ask AI
Ask AI about Claude Code CLI
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Claude Code CLI
The raw imported snapshot is preserved in this repository's
backupbranch. Themainbranch contains added documentation, tooling, and repository metadata.
Table of Contents
- What Is Claude Code?
- Documentation
- Explore with MCP Server
- Directory Structure
- Architecture
- Key Files
- Tech Stack
- Design Patterns
- GitPretty Setup
- Contributing
- Disclaimer
What Is Claude Code?
Claude Code is an official CLI tool for interacting with Claude directly from the terminal: editing files, running commands, searching codebases, managing git workflows, and more.
| Language | TypeScript (strict) |
| Runtime | Bun |
| Terminal UI | React + Ink |
| Scale | ~1,900 files · 512,000+ lines of code |
Documentation
For in-depth guides, see the docs/ directory:
| Guide | Description |
|---|---|
| Architecture | Core pipeline, startup sequence, state management, rendering, data flow |
| Tools Reference | Complete catalog of all ~40 agent tools with categories and permission model |
| Commands Reference | All ~85 slash commands organized by category |
| Subsystems Guide | Deep dives into Bridge, MCP, Permissions, Plugins, Skills, Tasks, Memory, Voice |
| Exploration Guide | How to navigate the codebase — study paths, grep patterns, key files |
Also see: CONTRIBUTING.md · MCP Server README
Explore with MCP Server
This repo also ships an MCP server that lets any MCP-compatible client (Claude Code, Claude Desktop, VS Code Copilot, Cursor) explore the codebase interactively.
Install from npm
The MCP server is published as claude-code-explorer-mcp on npm — no need to clone the repo:
# Claude Code
claude mcp add claude-code-explorer -- npx -y claude-code-explorer-mcp
One-liner setup (from source)
git clone https://github.com/TaGoat/claude_code_cli.git ~/claude_code_cli \
&& cd ~/claude_code_cli/mcp-server \
&& npm install && npm run build \
&& claude mcp add claude-code-explorer -- node ~/claude_code_cli/mcp-server/dist/index.js
# 1. Clone the repo
git clone https://github.com/TaGoat/claude_code_cli.git
cd claude_code_cli/mcp-server
# 2. Install & build
npm install && npm run build
# 3. Register with Claude Code
claude mcp add claude-code-explorer -- node /absolute/path/to/claude-code-source-code/mcp-server/dist/index.js
Replace /absolute/path/to/claude-code-source-code with your actual clone path.
VS Code — add to .vscode/mcp.json:
{
"servers": {
"claude-code-explorer": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/mcp-server/dist/index.js"],
"env": { "CLAUDE_CODE_SRC_ROOT": "${workspaceFolder}/src" }
}
}
}
Claude Desktop — add to your config file:
{
"mcpServers": {
"claude-code-explorer": {
"command": "node",
"args": ["/absolute/path/to/claude-code-source-code/mcp-server/dist/index.js"],
"env": { "CLAUDE_CODE_SRC_ROOT": "/absolute/path/to/claude-code-source-code/src" }
}
}
}
Cursor — add to ~/.cursor/mcp.json (same format as Claude Desktop).
Available tools & prompts
| Tool | Description |
|---|---|
list_tools |
List all ~40 agent tools with source files |
list_commands |
List all ~50 slash commands with source files |
get_tool_source |
Read full source of any tool (e.g. BashTool, FileEditTool) |
get_command_source |
Read source of any slash command (e.g. review, mcp) |
read_source_file |
Read any file from src/ by path |
search_source |
Grep across the entire source tree |
list_directory |
Browse src/ directories |
get_architecture |
High-level architecture overview |
| Prompt | Description |
|---|---|
explain_tool |
Deep-dive into how a specific tool works |
explain_command |
Understand a slash command's implementation |
architecture_overview |
Guided tour of the full architecture |
how_does_it_work |
Explain any subsystem (permissions, MCP, bridge, etc.) |
compare_tools |
Side-by-side comparison of two tools |
Try asking: "How does the BashTool work?" · "Search for where permissions are checked" · "Show me the /review command source"
Custom source path / Remove
# Custom source location
claude mcp add claude-code-explorer -e CLAUDE_CODE_SRC_ROOT=/path/to/src -- node /path/to/mcp-server/dist/index.js
# Remove
claude mcp remove claude-code-explorer
Directory Structure
src/
├── main.tsx # Entrypoint — Commander.js CLI parser + React/Ink renderer
├── QueryEngine.ts # Core LLM API caller (~46K lines)
├── Tool.ts # Tool type definitions (~29K lines)
├── commands.ts # Command registry (~25K lines)
├── tools.ts # Tool registry
├── context.ts # System/user context collection
├── cost-tracker.ts # Token cost tracking
│
├── tools/ # Agent tool implementations (~40)
├── commands/ # Slash command implementations (~50)
├── components/ # Ink UI components (~140)
├── services/ # External service integrations
├── hooks/ # React hooks (incl. permission checks)
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
├── screens/ # Full-screen UIs (Doctor, REPL, Resume)
│
├── bridge/ # IDE integration (VS Code, JetBrains)
├── coordinator/ # Multi-agent orchestration
├── plugins/ # Plugin system
├── skills/ # Skill system
├── server/ # Server mode
├── remote/ # Remote sessions
├── memdir/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
│
├── voice/ # Voice input
├── vim/ # Vim mode
├── keybindings/ # Keybinding configuration
├── schemas/ # Config schemas (Zod)
├── migrations/ # Config migrations
├── entrypoints/ # Initialization logic
├── query/ # Query pipeline
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite (Easter egg 🐣)
├── native-ts/ # Native TypeScript utils
├── outputStyles/ # Output styling
└── upstreamproxy/ # Proxy configuration
Architecture
1. Tool System
src/tools/— Every tool Claude can invoke is a self-contained module with its own input schema, permission model, and execution logic.
| Tool | Description |
|---|---|
| File I/O | |
FileReadTool |
Read files (images, PDFs, notebooks) |
FileWriteTool |
Create / overwrite files |
FileEditTool |
Partial modification (string replacement) |
NotebookEditTool |
Jupyter notebook editing |
| Search | |
GlobTool |
File pattern matching |
GrepTool |
ripgrep-based content search |
WebSearchTool |
Web search |
WebFetchTool |
Fetch URL content |
| Execution | |
BashTool |
Shell command execution |
SkillTool |
Skill execution |
MCPTool |
MCP server tool invocation |
LSPTool |
Language Server Protocol integration |
| Agents & Teams | |
AgentTool |
Sub-agent spawning |
SendMessageTool |
Inter-agent messaging |
TeamCreateTool / TeamDeleteTool |
Team management |
TaskCreateTool / TaskUpdateTool |
Task management |
| Mode & State | |
EnterPlanModeTool / ExitPlanModeTool |
Plan mode toggle |
EnterWorktreeTool / ExitWorktreeTool |
Git worktree isolation |
ToolSearchTool |
Deferred tool discovery |
SleepTool |
Proactive mode wait |
CronCreateTool |
Scheduled triggers |
RemoteTriggerTool |
Remote trigger |
SyntheticOutputTool |
Structured output generation |
2. Command System
src/commands/— User-facing slash commands invoked with/in the REPL.
| Command | Description | Command | Description | |
|---|---|---|---|---|
/commit |
Git commit | /memory |
Persistent memory | |
/review |
Code review | /skills |
Skill management | |
/compact |
Context compression | /tasks |
Task management | |
/mcp |
MCP server management | /vim |
Vim mode toggle | |
/config |
Settings | /diff |
View changes | |
/doctor |
Environment diagnostics | /cost |
Check usage cost | |
/login / /logout |
Auth | /theme |
Change theme | |
/context |
Context visualization | /share |
Share session | |
/pr_comments |
PR comments | /resume |
Restore session | |
/desktop |
Desktop handoff | /mobile |
Mobile handoff |
3. Service Layer
src/services/— External integrations and core infrastructure.
| Service | Description |
|---|---|
api/ |
Anthropic API client, file API, bootstrap |
mcp/ |
Model Context Protocol connection & management |
oauth/ |
OAuth 2.0 authentication |
lsp/ |
Language Server Protocol manager |
analytics/ |
GrowthBook feature flags & analytics |
plugins/ |
Plugin loader |
compact/ |
Conversation context compression |
extractMemories/ |
Automatic memory extraction |
teamMemorySync/ |
Team memory synchronization |
tokenEstimation.ts |
Token count estimation |
policyLimits/ |
Organization policy limits |
remoteManagedSettings/ |
Remote managed settings |
4. Bridge System
src/bridge/— Bidirectional communication layer connecting IDE extensions (VS Code, JetBrains) with the CLI.
Key files: bridgeMain.ts (main loop) · bridgeMessaging.ts (protocol) · bridgePermissionCallbacks.ts (permission callbacks) · replBridge.ts (REPL session) · jwtUtils.ts (JWT auth) · sessionRunner.ts (session execution)
5. Permission System
src/hooks/toolPermission/— Checks permissions on every tool invocation.
Prompts the user for approval/denial or auto-resolves based on the configured permission mode: default, plan, bypassPermissions, auto, etc.
6. Feature Flags
Dead code elimination at build time via Bun's bun:bundle:
import { feature } from 'bun:bundle'
const voiceCommand = feature('VOICE_MODE')
? require('./commands/voice/index.js').default
: null
Notable flags: PROACTIVE · KAIROS · BRIDGE_MODE · DAEMON · VOICE_MODE · AGENT_TRIGGERS · MONITOR_TOOL
Key Files
| File | Lines | Purpose |
|---|---|---|
QueryEngine.ts |
~46K | Core LLM API engine — streaming, tool loops, thinking mode, retries, token counting |
Tool.ts |
~29K | Base types/interfaces for all tools — input schemas, permissions, progress state |
commands.ts |
~25K | Command registration & execution with conditional per-environment imports |
main.tsx |
— | CLI parser + React/Ink renderer; parallelizes MDM, keychain, and GrowthBook on startup |
Tech Stack
| Category | Technology |
|---|---|
| Runtime | Bun |
| Language | TypeScript (strict) |
| Terminal UI | React + Ink |
| CLI Parsing | Commander.js (extra-typings) |
| Schema Validation | Zod v4 |
| Code Search | ripgrep (via GrepTool) |
| Protocols | MCP SDK · LSP |
| API | Anthropic SDK |
| Telemetry | OpenTelemetry + gRPC |
| Feature Flags | GrowthBook |
| Auth | OAuth 2.0 · JWT · macOS Keychain |
Design Patterns
MDM settings, keychain reads, and API preconnect fire in parallel as side-effects before heavy module evaluation:
// main.tsx
startMdmRawRead()
startKeychainPrefetch()
OpenTelemetry (~400KB) and gRPC (~700KB) are loaded via dynamic import() only when needed.
Sub-agents spawn via AgentTool, with coordinator/ handling orchestration. TeamCreateTool enables team-level parallel work.
Defined in skills/ and executed through SkillTool. Users can add custom skills.
Built-in and third-party plugins loaded through the plugins/ subsystem.
GitPretty Setup
# Apply emoji commits
bash ./gitpretty-apply.sh .
# Optional: install hooks for future commits
bash ./gitpretty-apply.sh . --hooks
# Push as usual
git push origin main
Contributing
Contributions to Claude Code, the MCP server, and exploration tooling are welcome. See CONTRIBUTING.md for guidelines.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.