1a36cfbb10
* refactor(opencode): remove raw LLM interface in favor of stream-based text helper Introduce KiloLLM.text() to consume Effect streams and extract text while propagating error/abort events. Replace all usages of the removed LLM.raw() method and the legacy LLM.stream() async wrapper with dedicated runtime helpers (CommitMessageRuntime.generate, PlanFollowupRuntime.handover) that leverage the new stream-based approach. - Add KiloLLM.text() stream combinator in kilocode/session/llm.ts - Remove Interface.raw and the exported LLM.stream() async function - Refactor commit-message generation to use CommitMessageRuntime - Refactor plan-followup handover to use PlanFollowupRuntime.handover - Update all test LLM mocks to remove raw() stubs - Add unit tests for KiloLLM.text() covering text joining, error propagation, and abort handling * feat(skill): migrate Skill module to Effect service pattern and remove legacy promise wrappers Remove the makeRuntime-based promise helpers (Skill.all, Skill.get, Skill.dirs) from the skill module and convert the builtin-skills test suite to use Effect generators with the testEffect harness. - Delete legacy runPromise wrappers from packages/opencode/src/skill/index.ts - Rewrite builtin-skills.test.ts to use testEffect and Effect.gen - Replace WithInstance.provide/tmpdir with TestInstance yield pattern - Use Skill.Service directly within Effect generators for all assertions * refactor(session-status): drop makeRuntime promise helpers and wire Service through Effect context Replace the standalone `SessionStatus.list`, `.get`, `.set` promise wrappers with direct `SessionStatus.Service` usage via Effect generators and `AppRuntime.runPromise` at Kilo callsites that remain imperative. - Remove makeRuntime-based exports from session/status.ts - Update kilo-sessions.ts and plan-followup.ts to use AppRuntime.runPromise with SessionStatus.Service - Thread SessionStatus.Service as a dependency through SuggestTool and ToolRegistry layers - Replace spy-based mocks in suggestion tool tests with an in-memory service stub for deterministic assertions
Kilo Code CLI
The AI coding agent built for the terminal. Generate code from natural language, automate tasks, and run terminal commands -- powered by 500+ AI models.
Install
npm install -g @kilocode/cli
Or run directly with npx:
npx --package @kilocode/cli kilo
Getting Started
Run kilo in any project directory to launch the interactive TUI:
kilo
Run a one-off task:
kilo run "add input validation to the signup form"
Features
- Code generation -- describe what you want in natural language
- Terminal commands -- the agent can run shell commands on your behalf
- 500+ AI models -- use models from OpenAI, Anthropic, Google, and more
- MCP servers -- extend agent capabilities with the Model Context Protocol
- Multiple modes -- Plan with Architect, code with Coder, debug with Debugger, or create your own
- Sessions -- resume previous conversations and export transcripts
- API keys optional -- bring your own keys or use Kilo credits
Commands
| Command | Description |
|---|---|
kilo |
Launch interactive TUI |
kilo run "<task>" |
Run a one-off task |
kilo auth |
Manage authentication |
kilo models |
List available models |
kilo mcp |
Manage MCP servers |
kilo session list |
List sessions |
kilo session delete |
Delete a session |
kilo export |
Export session transcripts |
Run kilo --help for the full list.
Alternative Installation
Homebrew (macOS/Linux)
brew install Kilo-Org/tap/kilo
GitHub Releases
Download pre-built binaries from the Releases page.
Documentation
Links
License
MIT