* refactor(opencode): migrate agent promise helpers to kilocode module and adopt Effect-based tests Remove legacy promise-based helpers (`get`, `list`, `defaultAgent`, `remove`) from the core agent module and update callsites to use the dedicated `@/kilocode/agent` module directly. Migrate kilocode-specific tests from `WithInstance.provide` patterns to the `testEffect` helper with Effect generators for cleaner, more idiomatic test code. - Remove `makeRuntime` import and exported promise helpers from agent.ts - Update HTTP API handlers to import from `@/kilocode/agent` instead of re-exported `Agent` namespace - Rewrite agent tests to use `load()` helper or Effect service access - Convert agent-global-config-dirs and agent-skill-permissions tests to `testEffect` pattern - Reorder SDK type definitions (BackgroundProcessLogs/WorkspaceWarpError) * chore(auth): remove legacy promise helpers and replace with direct Effect service access Eliminate the exported promise-based convenience functions (`get`, `all`, `set`, `remove`) from the Auth module and replace all callsites with explicit `AppRuntime.runPromise` or `makeRuntime` invocations that access `Auth.Service` directly through Effect's service pattern. - Delete `makeRuntime`-backed promise helpers from auth/index.ts - Update CLI entrypoint, kilo-sessions, indexing, and server instance to use `AppRuntime.runPromise(Auth.Service.use(...))` for auth access - Inject `Auth.Service` as a dependency into the ModelsDev layer and consume it via Effect generator instead of promise wrapper - Create a local `makeRuntime` instance in model-cache.ts for non-Effect callsites that still need promise-based auth access - Rewrite tests to manipulate auth.json directly on disk with proper save/restore semantics instead of relying on removed helpers * refactor(suggestion): convert suggest tool to Effect-native with injected Command dependency Transform the suggestion tool from async/promise-based implementation to idiomatic Effect generators with explicit dependency injection of the Command service rather than importing and calling module-level helpers. - Convert `resolvePrompt` from async function to Effect generator that accepts a `Command.Interface` parameter - Refactor `SuggestTool` definition to yield `Command.Service` from the Effect context and thread it through to `resolvePrompt` - Add `Command.Service` as a dependency to the tool registry layer and provide `Command.defaultLayer` in both production and test wiring - Remove unused `makeRuntime` import and exported `get` helper from command/index.ts - Add explicit type annotations to Auth delegate in server instance - Rewrite suggestion tests to use `testEffect` helper with a mock `Command.Service` layer instead of spying on module exports * feat(git): migrate WorktreeFamily to Effect service and wire Git.Service as dependency Convert WorktreeFamily.list from an async function using legacy promise helpers to an Effect generator that yields Git.Service from context, eliminating the need for the removed `run` promise wrapper in git/index. - Replace `WorktreeFamily.list()` async function with Effect.fn generator that obtains Git.Service and InstanceState from the Effect context - Remove legacy `makeRuntime`/`run`/`runPromise` exports from git module - Update RecallTool to thread Git.Service through to WorktreeFamily calls via EffectBridge - Add Git.Service as a required dependency in tool registry and HTTP server route layers - Update all test layers to provide Git.defaultLayer * chore(mcp): replace legacy promise helpers with Effect-native AppRuntime calls Remove exported promise-based `status`, `connect`, and `disconnect` helpers from MCP module and convert the network recovery callsite in SessionNetwork to use AppRuntime.runPromise with Effect.gen directly. * refactor(auth): adopt makeRuntime helper for Auth service resolution in kilo modules Replace AppRuntime.runPromise with locally scoped makeRuntime instances in kilo-sessions and kilocode/indexing modules, removing the dependency on the global AppRuntime singleton for Auth service access. * fix(test): simplify cleanup error handling in provider test Replace try-catch block with promise .catch() for file unlink operation during test teardown.
Kilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.
- ✨ Generate code from natural language
- ✅ Checks its own work
- 🧪 Run terminal commands
- 🌐 Automate the browser
- ⚡ Inline autocomplete suggestions
- 🤖 Latest AI models
- 🎁 API keys optional
Quick Links
- VS Code Marketplace (download)
- Install CLI:
npm install -g @kilocode/cli - Official Kilo.ai Home page (learn more)
Key Features
- Code Generation: Kilo can generate code using natural language.
- Inline Autocomplete: Get intelligent code completions as you type, powered by AI.
- Task Automation: Kilo can automate repetitive coding tasks to save time.
- Automated Refactoring: Kilo can refactor and improve existing code efficiently.
- MCP Server Marketplace: Kilo can easily find, and use MCP servers to extend the agent capabilities.
- Multi Mode: Plan with Architect, Code with Coder, and Debug with Debugger, and make your own custom modes.
Get Started in Visual Studio Code
- Install the Kilo Code extension from the VS Code Marketplace.
- Create your account to access 500+ cutting-edge AI models including GPT-5.5, Claude Opus 4.7, Claude Sonnet 4.6, and Gemini 3.1 Pro Preview, with transparent pricing that matches provider rates exactly.
- Start coding with AI that adapts to your workflow. Watch our quick-start guide to see Kilo in action:
Get Started with the CLI
# npm
npm install -g @kilocode/cli
# Or run directly with npx
npx @kilocode/cli
Then run kilo in any project directory to start.
npm Install Note: Hidden .kilo File
On some systems and npm versions, installing @kilocode/cli can create a hidden .kilo file near the installed kilo command (for example in a global npm bin directory). This file is an npm-generated launcher helper, not project data.
- Why it exists: npm may create helper artifacts while wiring CLI executables.
- Size caveat: size can vary by platform, npm version, and install mode (symlink vs copied launcher), so a strict fixed size is not guaranteed.
- Safety: it is safe to leave in place. Do not edit it manually. Use your package manager's uninstall (
npm uninstall -g @kilocode/cli) to remove install artifacts cleanly.
Install from GitHub Releases (Optional)
Download the latest binary or source code from the Releases page, use this quick guide:
kilo-<os>-<arch>.zipis the CLI binary for your OS and CPU architecture on Windows and macOS. (kilo-linux-<arch>.tar.gzfor Linux)darwinmeans macOS.x64is standard 64-bit Intel/AMD CPUs.x64-baselineis a compatibility build for older x64 CPUs(do not support AVX Instruction).arm64is ARM-based Linux/MacOS.muslis statically linked Linux build for Alpine/minimal Docker without glibc. Alpine/minimal Docker users should prefer the matching *-musl asset.kilo-vscode-*.vsixis the VS Code extension package and not the CLI binary.Source codereleases are for building from source, not normal installation.
For most users:
- Windows (most PCs):
kilo-windows-x64.zip - macOS Apple Silicon:
kilo-darwin-arm64.zip - macOS Intel:
kilo-darwin-x64.zip - Linux x64:
kilo-linux-x64.tar.gz - Linux on ARM:
kilo-linux-arm64.tar.gz
Autonomous Mode (CI/CD)
Use the --auto flag with kilo run to enable fully autonomous operation without user interaction. This is ideal for CI/CD pipelines and automated workflows:
kilo run --auto "run tests and fix any failures"
Important: The --auto flag disables all permission prompts and allows the agent to execute any action without confirmation. Only use this in trusted environments like CI/CD pipelines.
Contributing
We welcome contributions from developers, writers, and enthusiasts! To get started, please read our Contributing Guide. It includes details on setting up your environment, coding standards, types of contribution and how to submit pull requests.
See RELEASING.md for the VS Code extension and CLI release process.
See packages/kilo-jetbrains/RELEASING.md for the JetBrains plugin release process.
Code of Conduct
Our community is built on respect, inclusivity, and collaboration. Please review our Code of Conduct to understand the expectations for all contributors and community members.
License
This project is licensed under the MIT License. You’re free to use, modify, and distribute this code, including for commercial purposes as long as you include proper attribution and license notices. See License.
FAQ
Where did Kilo CLI come from?
Kilo CLI is a fork of OpenCode, enhanced to work within the Kilo agentic engineering platform.
