Files
Kilo-Org_kilocode/packages/opencode
Imanol Maiztegui 1a36cfbb10 Effect Migration for Kilo callsites (follow-up 2) (#10616)
* 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
2026-05-27 15:42:09 +02:00
..
2026-05-22 09:01:40 +02:00
2026-05-21 14:48:36 +02:00
2026-05-26 20:02:42 +00:00
2026-05-26 20:58:33 +00:00

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

License

MIT