* refactor(vscode): replace collapsible diff summary with clickable banner Replace the expandable accordion-based diff summary in session turns with a simpler clickable button that opens the dedicated changes view via a postMessage to the extension host. This removes the inline file list expansion in favor of the native VS Code changes panel. - Remove Collapsible/Accordion/StickyAccordionHeader components - Remove getDirectory/getFilename helpers and expanded state management - Add openChanges action via useVSCode context - Style the trigger as a minimal button with hover chevron indicator - Update story name/description to reflect new behavior * feat(vscode/diff): simplify DiffSource interface to declarative fetch model Convert DiffSource from a class-based lifecycle pattern (initialFetch/start/dispose) to a minimal declarative interface where sources only implement `fetch()` and optionally `fetchFile`/`revert`/`dispose`. Move all polling, hash-dedup, loading state, and message posting responsibility into SourceController. - Replace class-based SessionDiffSource/WorktreeDiffSource with factory functions - Introduce DiffSourceFetch return type with stopPolling flag for terminal states - Remove DiffSourcePost/DiffSourceMessage types in favor of controller-owned posting - SourceController now owns setInterval polling and hash-based dedup logic - Rename requestFile → fetchFile, revertFile → revert, make dispose optional - Update all unit tests to match the new declarative source contract * refactor(vscode): add per-turn diff viewing with hidden picker mode Introduce a TurnDiffSource that fetches diffs scoped to a single user message rather than the full session snapshot. The diff viewer can now open in a fixed, non-switchable mode when invoked from a specific turn. - Add `turn.ts` source with factory, descriptor, and id helpers - Extend PanelContext with `hidePicker` flag to suppress source selector - Thread `turnId` from webview message through sidebar handler to command - Catalog returns empty descriptors when picker is hidden - Export `toSessionDiffFile` from session source for reuse in turn source - Add `turn` to DiffSourceType union - Add unit tests for turn source fetch behavior and catalog integration * fix(vscode/diff): always log DiffSource fetch errors Initial-fetch errors were only posted as a discarded 'error' message and had no console trace, making them invisible in production. Log on both initial and polling ticks so Extension Host output captures the failure. * chore: update kilo-vscode visual regression baselines * feat(vscode/diff): self-cancel polling when source reports completion Convert polling callback to async and use runFetch return value to stop the interval once the diff source signals it is done, avoiding unnecessary continued fetches after completion. --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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 Gemini 3.1 Pro, Claude 4.6 Sonnet & Opus, and GPT-5.4 – 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 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.
Where did Kilo CLI come from?
Kilo CLI is a fork of OpenCode, enhanced to work within the Kilo agentic engineering platform.
