Inkdown
Start writing

Claude-Code

62 filesยท4 subfolders

Shared Workspace

Claude-Code
codex

04-tools-system

Shared from "Claude-Code" on Inkdown

Tools System Architecture

Overview

Tools are how Claude interacts with the world. Every action - reading files, running commands, searching code - is a tool. The tool system is modular, type-safe, and extensible.

Plain text
0000_start_here_index_and_recommended_reading_order.md
0100_project_overview_tech_stack_runtime_modes_and_folder_map.md
0200_startup_flow_entry_points_and_cold_start_sequence.md
0300_codebase_modules_layers_state_models_and_schemas.md
0400_system_architecture_and_design_rationale.md
0500_interactive_repl_request_flow_end_to_end.md
0600_headless_sdk_and_print_mode_request_flow_end_to_end.md
0700_mcp_integration_connection_and_tool_call_flow.md
0800_external_services_sdks_storage_and_local_dependencies.md
0900_environment_variables_settings_feature_flags_and_failure_modes.md
1000_non_obvious_patterns_gotchas_and_debugging_traps.md
1100_full_codebase_file_inventory_grouped_by_directory.md
kimi
00-overview.md
01-entrypoints.md
02-state-management.md
03-query-system.md
04-tools-system.md
05-tasks-system.md
06-ui-components.md
07-bridge-remote.md
08-services.md
09-skills-plugins.md
10-commands.md
11-testing-architecture.md
12-permission-system.md
13-build-system.md
14-ink-internals.md
15-git-internals.md
16-context-compaction.md
17-vim-mode.md
18-mailbox-notifications.md
19-session-persistence.md
20-hooks-system.md
21-error-recovery.md
README.md
qwen
00-overview.md
01-entry-points.md
02-query-engine.md
03-tools-and-tasks.md
04-commands-and-skills.md
05-state-management.md
06-ink-rendering.md
07-bridge-remote.md
08-mcp-services.md
09-services-overview.md
10-multi-agent.md
11-system-prompt-constants.md
12-tool-interface.md
13-memory-system.md
14-buddy-companion.md
15-keybindings.md
16-stop-hooks.md
17-vim-mode.md
18-upstreamproxy.md
19-cost-tracking-history.md
20-contexts-styles-onboarding.md
21-hooks.md
22-screens.md
tweets-explain
claude-code-memory-analysis.md
compact
memory-system
agentic-architecture

Core Files

FilePurpose
Tool.tsBase Tool type definitions
tools.tsTool registry and getAllBaseTools()
tools/[Name]Tool/[Name]Tool.tsIndividual tool implementations
tools/[Name]Tool/prompt.tsTool descriptions for LLM
tools/[Name]Tool/UI.tsxTool-specific UI components
tools/[Name]Tool/constants.tsTool constants

Tool Interface

Every tool implements this interface:

TypeScript

Tool Anatomy

1. Definition
TypeScript
2. Prompt (LLM Description)
TypeScript
3. UI Component (Optional)
TypeScript

Tool Categories

File System Tools
ToolPurposePermission
FileReadToolRead file contentsBackground
FileWriteToolCreate new filesDangerous
FileEditToolEdit existing filesDangerous
GlobToolFind files by patternBackground
GrepToolSearch file contentsBackground
Execution Tools
ToolPurposePermission
BashToolRun shell commandsDangerous
PowerShellToolWindows PowerShellDangerous
REPLToolInteractive REPL (ant-only)Dangerous
Code Intelligence Tools
ToolPurpose
LSPToolLanguage server operations
GrepToolText search
GlobToolFile discovery
TungstenToolInternal symbol search
Agent & Task Tools
ToolPurpose
AgentToolSpawn sub-agents
TaskCreateToolCreate background tasks
TaskStopToolKill tasks
TaskGetToolGet task output
SendMessageToolMessage between agents
Utility Tools
ToolPurpose
WebSearchToolSearch the web
WebFetchToolFetch URLs
AskUserQuestionToolPrompt user for input
NotebookEditToolEdit Jupyter notebooks
TodoWriteToolManage todo lists
ConfigToolChange settings
Workflow Tools
ToolPurpose
EnterPlanModeToolStart planning mode
ExitPlanModeToolExit planning mode
EnterWorktreeToolCreate git worktree
ExitWorktreeToolRemove git worktree

Tool Execution Flow

Plain text

Permission System Integration

TypeScript

MCP Tool Integration

External tools via Model Context Protocol:

TypeScript

Progress Tracking

Tools can report progress:

TypeScript

Tool UI System

Tools can render custom UI during execution:

TypeScript
UI Integration
TypeScript

Creating a New Tool

TypeScript

Tool Testing

TypeScript

Key Concepts

1. Every Action is a Tool

Reading, writing, searching, even asking the user - all tools.

2. Schema-Driven

Zod schemas provide both type safety and runtime validation.

3. Permission Levels

Tools self-declare their danger level. System respects this.

4. Progress Streaming

Long operations can stream progress for better UX.

5. Custom UI

Complex tools can render their own UI components.

6. MCP Extensibility

External tools integrate seamlessly via MCP.


Common Tool Patterns

File-Reading Tool
TypeScript
Command-Executing Tool
TypeScript
User-Interactive Tool
TypeScript

Related Documentation

  • Query System - How tools are called
  • State Management - How tools update state
  • Permissions - Detailed permission system