# samuellin967/claude-code architecture

> Architecture diagram of the GitHub repository samuellin967/claude-code, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/samuellin967/claude-code
- Repository: https://github.com/samuellin967/claude-code

## Overview

Claude Code is a terminal-based AI software-engineering agent. The main workflow runs from a developer’s prompt through the interactive CLI and query engine to model responses and tool execution, with results presented and session state persisted. Commands and integrations add distinct workflows for permissions, agents, tasks, memory, plugins, MCP, and IDE/remote bridging. The README documents several subsystems whose implementation files are not in the supplied tree; those are represented at documented directory level, and their detailed internal wiring is omitted.

Main entry points: [`src/tools`](https://github.com/samuellin967/claude-code/tree/main/src/tools) (Tool system), [`src/QueryEngine.ts`](https://github.com/samuellin967/claude-code/blob/main/src/QueryEngine.ts) (Query engine), [`src/components/App.tsx`](https://github.com/samuellin967/claude-code/blob/main/src/components/App.tsx) (Terminal UI), [`src/commands.ts`](https://github.com/samuellin967/claude-code/blob/main/src/commands.ts) (Slash commands)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["CLI interaction"]
  node_terminal_ui["Terminal UI<br/>[App.tsx]"]
  node_commands["Slash commands<br/>[commands.ts]"]
end

subgraph group_agent_runtime["Agent runtime"]
  node_query_engine["Query engine<br/>[QueryEngine.ts]"]
  node_query_pipeline["Query pipeline"]
  node_tool_system["Tool system"]
  node_permission_flow["Tool permissions"]
  node_session_storage[("Session storage<br/>[sessionStorage.ts]")]
  node_portable_sessions["Portable session access"]
end

subgraph group_capabilities["Agent capabilities"]
  node_mcp["MCP servers"]
  node_subagents["Agent coordination"]
  node_skills["Skills"]
  node_memory[("Persistent memory")]
  node_tasks["Task management"]
end

subgraph group_integrations["Integrations"]
  node_plugins["Plugins"]
  node_bridge["IDE bridge<br/>[bridgeMain.ts]"]
  node_remote_sessions["Remote sessions"]
end

node_developer(("Developer"))
node_anthropic_api(("Anthropic API"))
node_file_shell(("Project files and shell"))

node_developer -->|"enters prompts"| node_terminal_ui
node_developer -->|"invokes commands"| node_commands
node_terminal_ui -->|"submits input"| node_query_engine
node_commands -->|"starts workflows"| node_query_engine
node_query_engine -->|"runs queries"| node_query_pipeline
node_query_pipeline -->|"sends model requests"| node_anthropic_api
node_query_pipeline -->|"dispatches tool calls"| node_tool_system
node_tool_system -->|"checks authorization"| node_permission_flow
node_permission_flow -->|"requests approval"| node_developer
node_tool_system -->|"operates on project"| node_file_shell
node_tool_system -.->|"invokes server tools"| node_mcp
node_query_engine -->|"flushes session state"| node_session_storage
node_session_storage -->|"uses transcript reads"| node_portable_sessions
node_query_engine -->|"coordinates agents"| node_subagents
node_tool_system -->|"executes skills"| node_skills
node_tool_system -->|"manages tasks"| node_tasks
node_query_engine -->|"uses memory context"| node_memory
node_commands -->|"manages plugins"| node_plugins
node_terminal_ui -.->|"connects IDE"| node_bridge
node_bridge -.->|"supports remote sessions"| node_remote_sessions

click node_terminal_ui "https://github.com/samuellin967/claude-code/blob/main/src/components/App.tsx"
click node_commands "https://github.com/samuellin967/claude-code/blob/main/src/commands.ts"
click node_query_engine "https://github.com/samuellin967/claude-code/blob/main/src/QueryEngine.ts"
click node_query_pipeline "https://github.com/samuellin967/claude-code/tree/main/src/query"
click node_tool_system "https://github.com/samuellin967/claude-code/tree/main/src/tools"
click node_permission_flow "https://github.com/samuellin967/claude-code/tree/main/src/hooks/toolPermission"
click node_session_storage "https://github.com/samuellin967/claude-code/blob/main/src/utils/sessionStorage.ts"
click node_portable_sessions "https://github.com/samuellin967/claude-code/blob/main/src/utils/sessionStoragePortable.ts"
click node_mcp "https://github.com/samuellin967/claude-code/tree/main/src/services/mcp"
click node_subagents "https://github.com/samuellin967/claude-code/tree/main/src/coordinator"
click node_skills "https://github.com/samuellin967/claude-code/tree/main/src/skills"
click node_memory "https://github.com/samuellin967/claude-code/tree/main/src/memdir"
click node_tasks "https://github.com/samuellin967/claude-code/tree/main/src/tasks"
click node_plugins "https://github.com/samuellin967/claude-code/tree/main/src/plugins"
click node_bridge "https://github.com/samuellin967/claude-code/blob/main/src/bridge/bridgeMain.ts"
click node_remote_sessions "https://github.com/samuellin967/claude-code/tree/main/src/remote"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_terminal_ui,node_commands toneBlue
class node_query_engine,node_query_pipeline,node_tool_system,node_permission_flow,node_session_storage,node_portable_sessions toneAmber
class node_mcp,node_subagents,node_skills,node_memory,node_tasks,node_anthropic_api toneMint
class node_plugins,node_bridge,node_remote_sessions toneRose
class node_developer,node_file_shell toneIndigo
```

## Components

### CLI interaction

- [Terminal UI](https://github.com/samuellin967/claude-code/blob/main/src/components/App.tsx): `src/components/App.tsx`
- [Slash commands](https://github.com/samuellin967/claude-code/blob/main/src/commands.ts): `src/commands.ts`

### Agent runtime

- [Query engine](https://github.com/samuellin967/claude-code/blob/main/src/QueryEngine.ts): `src/QueryEngine.ts`
- [Query pipeline](https://github.com/samuellin967/claude-code/tree/main/src/query): `src/query`
- [Tool system](https://github.com/samuellin967/claude-code/tree/main/src/tools): `src/tools`
- [Tool permissions](https://github.com/samuellin967/claude-code/tree/main/src/hooks/toolPermission): `src/hooks/toolPermission`
- [Session storage](https://github.com/samuellin967/claude-code/blob/main/src/utils/sessionStorage.ts): `src/utils/sessionStorage.ts`
- [Portable session access](https://github.com/samuellin967/claude-code/blob/main/src/utils/sessionStoragePortable.ts): `src/utils/sessionStoragePortable.ts`

### Agent capabilities

- [MCP servers](https://github.com/samuellin967/claude-code/tree/main/src/services/mcp): `src/services/mcp`
- [Agent coordination](https://github.com/samuellin967/claude-code/tree/main/src/coordinator): `src/coordinator`
- [Skills](https://github.com/samuellin967/claude-code/tree/main/src/skills): `src/skills`
- [Persistent memory](https://github.com/samuellin967/claude-code/tree/main/src/memdir): `src/memdir`
- [Task management](https://github.com/samuellin967/claude-code/tree/main/src/tasks): `src/tasks`

### Integrations

- [Plugins](https://github.com/samuellin967/claude-code/tree/main/src/plugins): `src/plugins`
- [IDE bridge](https://github.com/samuellin967/claude-code/blob/main/src/bridge/bridgeMain.ts): `src/bridge/bridgeMain.ts`
- [Remote sessions](https://github.com/samuellin967/claude-code/tree/main/src/remote): `src/remote`

### Other components

- **Developer**
- **Anthropic API**
- **Project files and shell**

## Connections

- Developer → Terminal UI: enters prompts
- Developer → Slash commands: invokes commands
- Terminal UI → Query engine: submits input
- Slash commands → Query engine: starts workflows
- Query engine → Query pipeline: runs queries
- Query pipeline → Anthropic API: sends model requests
- Query pipeline → Tool system: dispatches tool calls
- Tool system → Tool permissions: checks authorization
- Tool permissions → Developer: requests approval
- Tool system → Project files and shell: operates on project
- Tool system → MCP servers: invokes server tools
- Query engine → Session storage: flushes session state
- Session storage → Portable session access: uses transcript reads
- Query engine → Agent coordination: coordinates agents
- Tool system → Skills: executes skills
- Tool system → Task management: manages tasks
- Query engine → Persistent memory: uses memory context
- Slash commands → Plugins: manages plugins
- Terminal UI → IDE bridge: connects IDE
- IDE bridge → Remote sessions: supports remote sessions
