feat: add Kilo Code agent support#1254
Conversation
b8e2a3d to
d31d7bc
Compare
|
Thank you for the PR @michaelzeidler! Are there any other differences besides the path? If not, would it make sense to just have the KiloCode preset wrap the opencode preset and allow it to override the paths? And same re the plugin -- maybe even just symlink it in our repo? Not sure how likely they are to diverge in the future, but we try to maintain a single codebase for forks (Ex: vscode/windsurf/cursor IDE extensions share a single codebase) |
5d497f7 to
1a9892c
Compare
|
Thanks, @svarlamov for the feedback! You're right — the only real differences between Kilo and OpenCode are paths/names. I've refactored to share code: Preset: Both now delegate to a shared parse_opencode_family() function. Kilo's preset is just a config struct + one-liner: Installer: Same pattern — shared generate_family_plugin_content() handles placeholder substitution, Kilo just provides a different config. Plugin: Single template at agent-support/opencode/git-ai.ts with CHECKPOINT_PRESET and PLUGIN_PACKAGE placeholders (alongside the existing GIT_AI_BINARY_PATH). Deleted the separate agent-support/kilo/ directory entirely. Adding another OpenCode fork in the future would be ~30 lines (config struct + wrapper). |
Kilo Code (https://kilo.ai) is a fork of OpenCode that uses the same plugin API and SQLite database schema, but stores data under different paths (~/.local/share/kilo/kilo.db) and uses its own plugin package (@kilocode/plugin). Changes: - Add checkpoint preset (kilo) with Kilo-specific data paths - Add hook installer deploying plugin to ~/.config/kilo/plugins/ - Add TypeScript plugin adapted for @kilocode/plugin - Add Agent::Kilo variant for bash tool classification - Register transcript agent (reuses OpenCodeAgent, same DB schema)
…tool Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3668b66 to
138899f
Compare
|
hey @svarlamov, |
Kilo Code (https://kilo.ai) is a fork of OpenCode that uses the same plugin API and SQLite database schema, but stores data under different paths (~/.local/share/kilo/kilo.db) and uses its own plugin package (@kilocode/plugin).
Changes: