Rapport d'analyse approfondie du code source de Claude Code
1. Périmètre de recherche et conclusion générale
1.1 Ce qui a réellement été étudié
L'analyse n'a pas consisté à lire un seul fichier de prompt ni à survoler l'arborescence. Elle a reconstruit les fichiers depuis sourcesContent dans cli.js.map, puis a suivi le runtime de bout en bout.
Les sujets principaux :
- la structure globale du code source de Claude Code
- l'assemblage dynamique du prompt système principal
- les protocoles côté modèle de
AgentTooletSkillTool - la répartition des rôles entre les built-in agents
- la chaîne d'orchestration des agents
- l'intégration de plugins, skills, hooks et MCP
- la coopération entre permissions, tool execution et hook decisions
- les raisons pour lesquelles Claude Code paraît bien plus solide qu'un simple « LLM + tool caller »
1.2 Faits confirmés
Les éléments suivants sont établis :
cli.js.mapcontient bien unsourcesContentcomplet- au moins 4756 fichiers source ont pu être reconstruits
- le fichier central du main system prompt est
src/constants/prompts.ts - le prompt de l'Agent tool est dans
src/tools/AgentTool/prompt.ts - le prompt du Skill tool est dans
src/tools/SkillTool/prompt.ts - le cœur de l'orchestration d'agents inclut
src/tools/AgentTool/AgentTool.tsxetsrc/tools/AgentTool/runAgent.ts - la chaîne d'exécution d'outils repose notamment sur
src/services/tools/toolExecution.tsetsrc/services/tools/toolHooks.ts
1.3 Le jugement le plus important
La force de Claude Code ne vient pas d'un prompt magique, mais d'un système logiciel complet.
Ses avantages viennent de la combinaison de :
- prompt assembly modulaire
- exécution d'outils gouvernée
- modèle d'autorisations
- agents spécialisés
- packaging de workflows via les skills
- métadonnées et contraintes runtime des plugins
- hooks comme couche de politique
- MCP comme plan d'injection de capacités et d'instructions
- construction de prompts optimisée pour le cache
- gestion du cycle de vie asynchrone et en arrière-plan
En une phrase :
Claude Code n'est pas un prompt. C'est un Agent Operating System qui unifie prompts, outils, permissions, agents, skills, plugins, hooks, MCP, cache et runtime produit.
2. Architecture du code source : pourquoi cela ressemble à un Agent Operating System
2.1 La structure de haut niveau montre déjà la complexité
L'arborescence src/ expose des modules comme :
src/entrypoints/src/constants/src/tools/src/services/src/utils/src/commands/src/components/src/coordinator/src/memdir/src/plugins/src/hooks/src/bootstrap/src/tasks/
On n'est pas face à un simple emballage CLI, mais à une véritable plateforme runtime.
2.2 La couche d'entrée montre une logique de plateforme
Les entrypoints visibles incluent :
src/entrypoints/cli.tsxsrc/entrypoints/init.tssrc/entrypoints/mcp.tssrc/entrypoints/sdk/
La même runtime sert donc au CLI, à l'initialisation, au mode MCP et à des consommateurs SDK.
2.3 Le système de commandes est une control plane
Les commandes exposées comprennent notamment :
/mcp/memory/permissions/hooks/plugin/reload-plugins/skills/tasks/plan/review/status/model/output-style/agents/sandbox-toggle
Le système charge aussi des plugin commands, skill commands, bundled skills et dynamic skills. Il sert donc d'entrée à l'