Key capabilities
File editing
Read, write, and partially modify files across your project, including images, PDFs, and Jupyter notebooks.
Shell execution
Run arbitrary shell commands via
BashTool, with a configurable permission model that prompts before executing.Codebase search
Search file contents with ripgrep (
GrepTool) and match file paths with glob patterns (GlobTool) across repositories of any size.Git workflows
Create commits (
/commit), review pull requests (/review), diff changes (/diff), and manage git worktrees for isolated parallel work.Multi-agent orchestration
Spawn sub-agents with
AgentTool, coordinate parallel work with TeamCreateTool, and manage tasks across a swarm of agents via the coordinator/ subsystem.MCP integration
Connect to any Model Context Protocol server to extend Claude Code with custom tools and resources, managed through the
/mcp command and MCPTool.Architecture overview
Claude Code is structured around a React + Ink terminal UI, meaning the interactive REPL and all full-screen interfaces (such as/doctor and session choosers) are React component trees rendered to the terminal via Ink. The CLI entry point (src/main.tsx) uses Commander.js to parse arguments and subcommands, then hands off to the Ink renderer.
The runtime is Bun, which also handles bundling and dead-code elimination via feature flags (bun:bundle). Heavy modules such as OpenTelemetry (~400 KB) and gRPC (~700 KB) are deferred with dynamic import() until they are actually needed, keeping startup fast.
All tools and slash commands are self-contained modules registered at startup. Schema validation throughout the codebase uses Zod v4. Two external protocols are integrated: MCP (Model Context Protocol) for connecting to external tool servers, and LSP (Language Server Protocol) for language intelligence.
Tech stack
Ready to install Claude Code? Head to the quick start.