# minomiao/dolphincode-cli architecture

> Architecture diagram of the GitHub repository minomiao/dolphincode-cli, 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/minomiao/dolphincode-cli
- Repository: https://github.com/minomiao/dolphincode-cli

## Overview

Dolphin CLI is a model-backed coding agent: the user interacts through a terminal command loop, which manages conversations and sends chat turns to an LLM; tool calls extend those turns with skills, plugins, and file operations. Conversation state and workspace restrictions are distinct from pending file-change backups, which users can apply or revert. The graph preserves documented extension and safety capabilities; several internal call paths are inferred only where excerpts are partial, so uncertain wiring is omitted.

Main entry points: [`modules/chater/chat.py`](https://github.com/minomiao/dolphincode-cli/blob/main/modules/chater/chat.py) (Chat engine), [`modules/loader/skill_manager.py`](https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/skill_manager.py) (Skill manager), [`modules/CLIserver/commands.py`](https://github.com/minomiao/dolphincode-cli/blob/main/modules/CLIserver/commands.py) (CLI commands), [`modules/core/services/conversation_service.py`](https://github.com/minomiao/dolphincode-cli/blob/main/modules/core/services/conversation_service.py) (Conversation service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["CLI interaction"]
  node_entry["Application startup<br/>[main.py]"]
  node_cli["Command loop<br/>[main_loop.py]"]
  node_cli_ops["CLI commands<br/>[commands.py]"]
end

subgraph group_agent["Agent runtime"]
  node_chat["Chat engine<br/>[chat.py]"]
  node_prompts["Prompt manager<br/>[prompt_manager.py]"]
  node_requests["Request dispatcher<br/>[request_manager.py]"]
end

subgraph group_extensions["Tools and extensions"]
  node_skill_manager["Skill manager<br/>[skill_manager.py]"]
  node_builtin_skills["Built-in skills"]
  node_plugin_loader["Plugin skills"]
  node_standard_loader["Standard skills"]
  node_mcp["MCP tools<br/>[mcp_manager.py]"]
  node_file_ops["File operations<br/>[file_operation.py]"]
  node_powershell["PowerShell runner"]
end

subgraph group_workspace["Workspace and state"]
  node_conversations["Conversation service"]
  node_conversation_store[("Conversation metadata<br/>[dpc_manager.py]")]
  node_workdir[("Workspace files")]
  node_config[("Configuration<br/>[config.py]")]
  node_backup_service["Backup service<br/>[backup_service.py]"]
  node_backup_manager["Backup manager<br/>[backup_manager.py]"]
end

node_user(("User"))
node_model{{"LLM API"}}

node_user -->|"enters commands"| node_cli
node_entry -->|"starts loop"| node_cli
node_cli -->|"dispatches commands"| node_cli_ops
node_cli -->|"submits chat turns"| node_chat
node_chat -->|"requests completion"| node_model
node_chat -->|"requests prompts"| node_prompts
node_chat -->|"uses tools"| node_skill_manager
node_skill_manager -->|"loads skills"| node_builtin_skills
node_skill_manager -.->|"loads standard skills"| node_standard_loader
node_skill_manager -.->|"loads plugins"| node_plugin_loader
node_chat -.->|"calls MCP tools"| node_mcp
node_requests -->|"handles prompt requests"| node_prompts
node_requests -->|"handles file requests"| node_file_ops
node_cli_ops -->|"manages conversations"| node_conversations
node_conversations -->|"reads and writes metadata"| node_conversation_store
node_conversations -->|"loads conversation"| node_chat
node_conversations -->|"reloads skills"| node_skill_manager
node_file_ops -->|"reads and modifies files"| node_workdir
node_cli_ops -->|"updates settings"| node_config
node_cli_ops -->|"manages pending changes"| node_backup_service
node_backup_service -->|"queries or applies changes"| node_backup_manager
node_builtin_skills -.->|"runs scripts"| node_powershell
node_powershell -->|"executes in workspace"| node_workdir

click node_entry "https://github.com/minomiao/dolphincode-cli/blob/main/main.py"
click node_cli "https://github.com/minomiao/dolphincode-cli/blob/main/modules/CLIserver/main_loop.py"
click node_cli_ops "https://github.com/minomiao/dolphincode-cli/blob/main/modules/CLIserver/commands.py"
click node_chat "https://github.com/minomiao/dolphincode-cli/blob/main/modules/chater/chat.py"
click node_prompts "https://github.com/minomiao/dolphincode-cli/blob/main/modules/main_server/prompt_manager.py"
click node_requests "https://github.com/minomiao/dolphincode-cli/blob/main/modules/main_server/middleware/request_manager.py"
click node_skill_manager "https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/skill_manager.py"
click node_builtin_skills "https://github.com/minomiao/dolphincode-cli/tree/main/skills"
click node_plugin_loader "https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/plugin_skill_loader.py"
click node_standard_loader "https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/standard_skill_loader.py"
click node_mcp "https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/mcp_manager.py"
click node_file_ops "https://github.com/minomiao/dolphincode-cli/blob/main/modules/functions/file_operation.py"
click node_conversations "https://github.com/minomiao/dolphincode-cli/blob/main/modules/core/services/conversation_service.py"
click node_conversation_store "https://github.com/minomiao/dolphincode-cli/blob/main/modules/chater/dpc_manager.py"
click node_config "https://github.com/minomiao/dolphincode-cli/blob/main/modules/main_server/config.py"
click node_backup_service "https://github.com/minomiao/dolphincode-cli/blob/main/modules/core/services/backup_service.py"
click node_backup_manager "https://github.com/minomiao/dolphincode-cli/blob/main/modules/functions/backup_manager.py"
click node_powershell "https://github.com/minomiao/dolphincode-cli/blob/main/modules/functions/powershell_manager.py"

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_entry,node_cli,node_cli_ops,node_user toneBlue
class node_chat,node_prompts,node_requests toneAmber
class node_skill_manager,node_builtin_skills,node_plugin_loader,node_standard_loader,node_mcp,node_file_ops,node_powershell,node_model toneMint
class node_conversations,node_conversation_store,node_workdir,node_config,node_backup_service,node_backup_manager toneRose
```

## Components

### CLI interaction

- [Application startup](https://github.com/minomiao/dolphincode-cli/blob/main/main.py): `main.py`
- [Command loop](https://github.com/minomiao/dolphincode-cli/blob/main/modules/CLIserver/main_loop.py): `modules/CLIserver/main_loop.py`
- [CLI commands](https://github.com/minomiao/dolphincode-cli/blob/main/modules/CLIserver/commands.py): `modules/CLIserver/commands.py`

### Agent runtime

- [Chat engine](https://github.com/minomiao/dolphincode-cli/blob/main/modules/chater/chat.py): `modules/chater/chat.py`
- [Prompt manager](https://github.com/minomiao/dolphincode-cli/blob/main/modules/main_server/prompt_manager.py): `modules/main_server/prompt_manager.py`
- [Request dispatcher](https://github.com/minomiao/dolphincode-cli/blob/main/modules/main_server/middleware/request_manager.py): `modules/main_server/middleware/request_manager.py`

### Tools and extensions

- [Skill manager](https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/skill_manager.py): `modules/loader/skill_manager.py`
- [Built-in skills](https://github.com/minomiao/dolphincode-cli/tree/main/skills): `skills`
- [Plugin skills](https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/plugin_skill_loader.py): `modules/loader/plugin_skill_loader.py`
- [Standard skills](https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/standard_skill_loader.py): `modules/loader/standard_skill_loader.py`
- [MCP tools](https://github.com/minomiao/dolphincode-cli/blob/main/modules/loader/mcp_manager.py): `modules/loader/mcp_manager.py`
- [File operations](https://github.com/minomiao/dolphincode-cli/blob/main/modules/functions/file_operation.py): `modules/functions/file_operation.py`
- [PowerShell runner](https://github.com/minomiao/dolphincode-cli/blob/main/modules/functions/powershell_manager.py): `modules/functions/powershell_manager.py`

### Workspace and state

- [Conversation service](https://github.com/minomiao/dolphincode-cli/blob/main/modules/core/services/conversation_service.py): `modules/core/services/conversation_service.py`
- [Conversation metadata](https://github.com/minomiao/dolphincode-cli/blob/main/modules/chater/dpc_manager.py): `modules/chater/dpc_manager.py`
- **Workspace files**
- [Configuration](https://github.com/minomiao/dolphincode-cli/blob/main/modules/main_server/config.py): `modules/main_server/config.py`
- [Backup service](https://github.com/minomiao/dolphincode-cli/blob/main/modules/core/services/backup_service.py): `modules/core/services/backup_service.py`
- [Backup manager](https://github.com/minomiao/dolphincode-cli/blob/main/modules/functions/backup_manager.py): `modules/functions/backup_manager.py`

### Other components

- **User**
- **LLM API**

## Connections

- User → Command loop: enters commands
- Application startup → Command loop: starts loop
- Command loop → CLI commands: dispatches commands
- Command loop → Chat engine: submits chat turns
- Chat engine → LLM API: requests completion
- Chat engine → Prompt manager: requests prompts
- Chat engine → Skill manager: uses tools
- Skill manager → Built-in skills: loads skills
- Skill manager → Standard skills: loads standard skills
- Skill manager → Plugin skills: loads plugins
- Chat engine → MCP tools: calls MCP tools
- Request dispatcher → Prompt manager: handles prompt requests
- Request dispatcher → File operations: handles file requests
- CLI commands → Conversation service: manages conversations
- Conversation service → Conversation metadata: reads and writes metadata
- Conversation service → Chat engine: loads conversation
- Conversation service → Skill manager: reloads skills
- File operations → Workspace files: reads and modifies files
- CLI commands → Configuration: updates settings
- CLI commands → Backup service: manages pending changes
- Backup service → Backup manager: queries or applies changes
- Built-in skills → PowerShell runner: runs scripts
- PowerShell runner → Workspace files: executes in workspace
