Skip to content

Add Kilo Code as a compile/install target #2642

Description

@fm-knopfler

Feature request

Add Kilo Code as a supported target for apm compile / apm install, alongside claude, codex, cursor, gemini, grok-build, copilot, opencode, windsurf, and kiro.

  • Target slug: kilo
  • Deploy root (project): .kilo/
  • Detection signal: .kilo/ directory (distinct from existing kiro target's .kiro/)

Target mapping

Sources: skills, subagents, custom-modes, AGENTS.md, custom-instructions, MCP.

Primitive Global (user) Project
Instructions (AGENTS.md) ~/.config/kilo/AGENTS.md AGENTS.md (root and distributed subdirectories)
Skills (SKILL.md trees) ~/.agents/skills/ (shared) .agents/skills/ (shared)
Agents ~/.config/kilo/agents/*.md .kilo/agents/*.md
Prompts / Commands ~/.config/kilo/commands/*.md .kilo/commands/*.md
MCP Servers ~/.config/kilo/kilo.jsonc .kilo/kilo.jsonc
  • Instructions: Kilo reads root + per-directory AGENTS.md (agents-md). apm compileAGENTS.md (agents family, distributed by default per applyTo: globs); apm compile -g~/.config/kilo/AGENTS.md (custom-instructions).
  • Skills: Standard Agent Skills format — folder + SKILL.md with name, description frontmatter. Reuses the shared .agents/skills/ path (following opencode / codex conventions) as Kilo scans .agents/skills/ by default (skills).
  • Agents: Markdown + YAML frontmatter; body is system prompt; filename (minus .md) = agent name (custom-modes).
  • Prompts / Commands: Markdown workflow files located in .kilo/commands/*.md (workflows).
  • MCP Servers: Configured under the top-level "mcp" key in kilo.jsonc (using-in-kilo-code).

Notes on user-scope paths (.config used only where no alternative exists)

  • Global skills: Follows opencode / codex convention and targets ~/.agents/skills/ (skills).
  • Global agents, commands, and instructions: Currently have no Home-relative documented location — all live in ~/.config/kilo/ (subagents, custom-instructions).

Key facts

  1. Skills reuse .agents/skills/: Kilo automatically scans EXTERNAL_DIRS = [".claude", ".agents"]~/.agents/skills/ (global) and .agents/skills/**/SKILL.md up the project tree (skills). APM's existing .agents/skills/ deploy is picked up without requiring duplicate deployments to .kilo/skills/.
  2. Agents require native deployment: Agent files are discovered from .kilo/agents/ (project) and ~/.config/kilo/agents/ (global) (subagents).
  3. MCP integration: apm install --mcp writes server configurations to .kilo/kilo.jsonc (bootstrapping the file if it does not exist) or ~/.config/kilo/kilo.jsonc at global scope.

Registration

  • Add kilo to apm.yml targets: validation, apm targets table, and --target / --all catalog (non-explicit ⇒ included in all).
  • Targets matrix: project root .kilo/; instructions via AGENTS.md; agents.kilo/agents/*.md; prompts.kilo/commands/*.md; skills → reused .agents/skills/; mcp.kilo/kilo.jsonc.
  • User-scope compile → ~/.config/kilo/AGENTS.md.
  • Tests mirroring opencode / kiro target tests.

Config / env surface

  • Config: global ~/.config/kilo/kilo.jsonc (Windows C:\Users\<user>\.config\kilo\kilo.jsonc), project ./.kilo/kilo.jsonc or ./kilo.jsonc (settings, CLI).
  • Extra skill dirs: skills.paths / skills.urls in kilo.jsonc.
  • Env overrides: KILO_CONFIG, KILO_CONFIG_DIR, KILO_CONFIG_CONTENT, KILO_DISABLE_EXTERNAL_SKILLS (CLI, architecture).

Testing

  • .kilo/ activates kilo; no collision with .kiro/.
  • apm compile -t kiloAGENTS.md (root and distributed); apm compile -g~/.config/kilo/AGENTS.md.
  • apm install -t kilo.kilo/agents/*.md, .kilo/commands/*.md, and skills via .agents/skills/.
  • apm install --mcp <name> -t kilo → writes to .kilo/kilo.jsonc (bootstrapped if absent).
  • apm targets --json lists kilo.
  • Manual verification: kilo CLI picks up skills, subagents, commands, and MCP servers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/cliCLI command surface, flags, help text (cross-cutting).priority/lowAccepted but not time-sensitivestatus/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.type/featureNew capability, new flag, new primitive.

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions