How to Use Kimi-Code for Code Analysis: Complete Guide to TUI and ACP Workflows
Kimi-Code analyzes codebases through an interactive terminal UI or programmatically via the Agent Client Protocol (ACP), using sub-agents like explore to search indexed repositories and generate structured insights.
Kimi-Code is an AI-powered coding assistant developed by MoonshotAI that runs in a terminal UI (TUI) and can be integrated into editors through the Agent Client Protocol (ACP). Whether you need quick architectural overviews or deep programmatic analysis, Kimi-Code provides two distinct interfaces—interactive and headless—to fit your workflow.
Architecture Overview: How Kimi-Code Analyzes Code
Understanding Kimi-Code's layered architecture helps you choose the right entry point for code analysis.
Core Components
- CLI/TUI (
apps/kimi-code/src/tui) – Renders the terminal interface, handles keyboard input, and drives session lifecycle. - Agent Engine v1 (
packages/agent-core) – Orchestrates agents, manages sub-agents, tool selection, and turn-based interaction. - Agent Engine v2 (
packages/agent-core-v2) – DI-driven engine with lifecycle scopes (App → Workspace → Session → Agent) used by the server side. - Protocol Layer (
packages/protocol) – Zod-validated request/response schemas and WebSocket control messages. - Transcript Store (
packages/transcript) – Immutable log of all interactions for replay and debugging. - Search Index (
packages/minidb) – Fast full-text search backed by JSON document store with WAL persistence. - Server (
packages/kap-server) – Exposes REST + WebSocket endpoints for remote agents via ACP.
The search index in packages/minidb and the transcript store in packages/transcript/src/store/transcriptStore.ts are particularly critical for code analysis, enabling fast lookups and complete session reproducibility.
Interactive TUI Workflow for Code Analysis
The terminal interface provides the fastest path to analyzing code.
Step 1: Launch and Authenticate
Run kimi in your project directory. The TUI boots in milliseconds thanks to aggressive lazy loading.
cd /path/to/project
kimi
Once loaded, authenticate:
/login
Use OAuth or an API key depending on your setup.
Step 2: Request Analysis
Type natural-language queries directly:
Explain the architecture of the agent-core package
Step 3: Agent Selection and Execution
Kimi-Code's engine automatically selects the explore sub-agent defined in packages/agent-core-v2/src/features/explore/profile/explore.ts. This agent:
- Queries the MiniDB search index (
packages/minidb/src/minidb.ts) for relevant files - Executes targeted searches across the codebase
- Synthesizes findings into a structured response
Step 4: Interact with Results
The TUI displays results with follow-up actions:
- Open files directly in your configured editor
- Run shell commands suggested by the agent
- Spawn the coder sub-agent to implement changes based on analysis
Programmatic ACP Analysis with Klient
For integration into scripts, CI pipelines, or IDE extensions, use the ACP client.
Minimal Analysis Script
import { createKlient } from '#/packages/klient';
// Connect to locally-running Kimi-Code server
const klient = await createKlient({ url: 'http://localhost:3000/api/v1' });
// Start a new session
const session = await klient.session.create({});
// Ask the explore agent to summarize the agent-core package
const reply = await session.agent('explore').ask(
'Give me a high-level overview of the agent-core package and its main entry points.'
);
console.log(reply.text);
The klient facade in packages/klient/src/client.ts wraps the protocol defined in packages/protocol, handling WebSocket connections, request validation, and response streaming.
Starting the Server
First, launch the Kimi-Code server that powers ACP connections:
kimi server --port 3000
# or for ACP specifically
kimi /acp
The server entry point in packages/kap-server/src/server.ts initializes the v2 agent engine, registers features like explore, and exposes REST endpoints at /api/v1.
Deep-Dive: Key Analysis Features
Full-Text Search with MiniDB
The packages/minidb layer provides Kimi-Code's fast code search. Unlike naive grep, it maintains a persisted JSON document store with:
- Write-ahead logging for durability
- Full-text indexing with ranking
- Incremental updates as files change
This enables the explore agent to answer queries like "find all usages of the Session class" in sub-second times even on large repositories.
Session Replay and Debugging
Every interaction is stored immutably in packages/transcript/src/store/transcriptStore.ts. Benefits include:
- Complete conversation history with tool calls and their outputs
- Step-by-step replay via
apps/kimi-inspectUI - Export to markdown for documentation
- Regression testing of agent behavior
Sub-Agent Specialization
Kimi-Code routes analysis tasks to specialized agents:
| Agent | Purpose | Source Location |
|---|---|---|
| explore | Codebase navigation, architecture summaries, finding definitions | packages/agent-core-v2/src/features/explore/profile/explore.ts |
| coder | Implementation, refactoring, test generation | packages/agent-core-v2/src/features/coder/profile/coder.ts |
| plan | Task decomposition, design documentation | packages/agent-core-v2/src/features/plan/profile/plan.ts |
Performance Optimization for Large Codebases
When analyzing massive repositories, Kimi-Code employs several strategies:
- Lazy indexing – Only relevant files are loaded into MiniDB per query
- Input latency tracking –
apps/kimi-code/src/tui/utils/input-latency.tsmeasures UI responsiveness - Streaming responses – Partial results appear before completion
- Agent context windows – v2 engine manages memory across long sessions
Summary
- Kimi-Code offers two analysis modes: interactive TUI (
kimicommand) and programmatic ACP (klientlibrary) - Core analysis pipeline: explore sub-agent → MiniDB search → synthesized response with source citations
- Key integration points:
packages/klientfor clients,packages/kap-serverfor servers,packages/protocolfor custom implementations - All sessions are reproducible via the immutable transcript store in
packages/transcript
Frequently Asked Questions
Can I use Kimi-Code for code analysis without the terminal UI?
Yes. Run kimi server or kimi /acp to start the backend, then use createKlient() from packages/klient to drive analysis programmatically. This enables headless operation in CI/CD pipelines or custom tools.
How does the explore agent find relevant code so quickly?
It queries the MiniDB full-text index (packages/minidb/src/minidb.ts), which maintains a persisted, incrementally updated search layer over your repository. This beats raw filesystem traversal by orders of magnitude.
Where are my analysis sessions stored?
All turns, tool calls, and responses are written to the transcript store (packages/transcript/src/store/transcriptStore.ts). You can replay sessions via kimi-inspect or export them for documentation.
Can I extend Kimi-Code with custom analysis agents?
Yes. The v2 agent engine in packages/agent-core-v2 uses dependency injection and feature registration. Implement the Feature interface, register your agent profile, and the engine will route appropriate queries to it.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →