feat: add Kilo CLI (KiloCode) as fully supported platform#146
feat: add Kilo CLI (KiloCode) as fully supported platform#146Exc1D wants to merge 4 commits intotirth8205:mainfrom
Conversation
Kilo CLI is a fork of OpenCode and uses the same MCP server format. It stores its config at .opencode/opencode.jsonc (vs OpenCode's .opencode.json at repo root), so a separate platform entry is needed. Changes: - Add 'kilocode' platform entry to PLATFORMS dict in skills.py - config_path: repo/.opencode/opencode.jsonc - detect: checks for .opencode/opencode.jsonc existence - format/object/needs_type: same as OpenCode - Add 'kilocode' to --platform choices in both install and init subcommands in cli.py - Update docs/USAGE.md platform table with Kilo CLI entry and fix OpenCode config path (.opencode/config.json -> .opencode.json)
Adds generate_kilo_skills() which writes 4 skill files to .kilocode/skills/: - explore-codebase.md - review-changes.md - debug-issue.md - refactor-safely.md Each skill has identical body to Claude Code versions but lives in .kilocode/skills/ so Kilo CLI agents can discover and use them. Also updated CLI to call generate_kilo_skills() during init and made the print message distinguish Claude Code vs Kilo skills.
Kilo skills must be a directory containing SKILL.md, not flat .md files. Fixes: .kilocode/skills/explore-codebase/SKILL.md (not .md directly)
tirth8205
left a comment
There was a problem hiding this comment.
Thanks for adding Kilo CLI support! The platform entry follows our patterns well. A few things to address:
-
No tests. Every other platform has tests in
test_skills.py(seeTestPlatformInstall). Please add tests forgenerate_kilo_skills()and thekilocodeplatform config. -
JSONC parsing issue. The config path is
.opencode/opencode.jsonc— JSONC allows comments, but ourinstall_platform_configsreads withjson.loads()which will crash on commented files. This would silently destroy the user's config (caught by the try/except, but the file gets overwritten). Consider using a JSONC-tolerant reader or documenting this limitation. -
Kilo skills generated unconditionally.
initcallsgenerate_kilo_skills()regardless of whether Kilo is installed. This creates a.kilocode/directory in every repo. Should this be gated behind detection or--platform kilocode?
Summary
Adds Kilo CLI (KiloCode) as a first-class supported platform — MCP config, auto-detection, platform instructions, AND Kilo-native skill files.
Changes
code_review_graph/skills.py1. MCP config:
kilocodeplatform entryAdded
kilocodeto thePLATFORMSdict:config_path:.opencode/opencode.jsonc(Kilo stores config inside.opencode/dir — the only structural difference from OpenCode)detect: checks for.opencode/opencode.jsoncexistenceformat,key,needs_type: identical to OpenCode2. Skill files:
generate_kilo_skills()New function that generates 4 skill files to
.kilocode/skills/:explore-codebase.mdreview-changes.mddebug-issue.mdrefactor-safely.mdEach skill mirrors the Claude Code
.claude/skills/versions — same body, same frontmatter, just in Kilo's skill directory.code_review_graph/cli.pygenerate_kilo_skillsto importsinitnow calls bothgenerate_skills()andgenerate_kilo_skills()docs/USAGE.md.opencode/config.json)Platform comparison
.mcp.json.opencode.json.opencode/opencode.jsonc.cursor/mcp.json~/.codeium/...AGENTS.md(graph instructions).claude/skills/.kilocode/skills/Testing
Note
The README's
diagram8_supported_platforms.pngshows supported platforms visually and will need to be regenerated to include Kilo CLI. Left unchanged since it requires the maintainer's design tools.