Skip to the content.

Kiro public surface: integration points for Kelix

Surveyed 2026-07 from the public docs at kiro.dev/docs (index: kiro.dev/llms.txt). Kelix uses only the interfaces documented here. If a page moves, everything below is discoverable from the docs index.

Kiro ships three surfaces: the IDE, the CLI (kiro-cli), and Web. Kelix’s primary integration target is the Kiro CLI, because it is the only surface that supports unattended, scriptable agent invocation — which is what a Ralph loop needs. The IDE integration package (steering/specs/hooks) rides on shared .kiro/ file conventions that both IDE and CLI read.

1. Headless invocation (the loop’s engine) — docs/cli/headless

export KIRO_API_KEY=ksk_...        # from app.kiro.dev, Pro/Pro+/Power plans
kiro-cli chat --no-interactive --trust-all-tools "prompt"

Kelix adapter command (default): kiro-cli chat --no-interactive --trust-all-tools --agent kelix <prompt-from-file>

2. Steering files — docs/steering, docs/cli/steering

Kelix ships .kiro/steering/kelix.md (inclusion: auto, description keyed to Kelix/loop/backlog requests) teaching Kiro’s agent the loop contract: how to read .kelix/backlog.md, the one-task rule, verified-done, and how to start runs. This makes interactive Kiro sessions cooperate with the loop instead of fighting it.

3. Custom agents — docs/cli/custom-agents/*

JSON at .kiro/agents/<name>.json (workspace) or ~/.kiro/agents/: prompt (inline or file://), tools, allowedTools (glob patterns), toolsSettings (e.g. shell.allowedCommands / deniedCommands, write.allowedPaths), resources (file://, skill:// globs), hooks (agentSpawn, preToolUse with matcher — can block, postToolUse, stop), mcpServers, model.

Kelix ships .kiro/agents/kelix.json:

4. Hooks — docs/hooks (IDE), docs/cli/hooks (CLI)

IDE hooks: JSON in .kiro/hooks/, triggers SessionStart, Stop, PreToolUse (blocking), PostToolUse, PreTaskExec/PostTaskExec (spec tasks), UserPromptSubmit, PostFileCreate/Save/Delete; actions are agent prompts or shell commands; exit code 2 blocks for blockable triggers, stdout of SessionStart/UserPromptSubmit command hooks joins context.

Kelix ships example hooks (opt-in): “on spec task file save, offer to seed the Kelix backlog” and “on tests failing, propose a fixer run”. Agent-config hooks (§3) are used for in-loop auditing.

5. Specs — docs/specs

.kiro/specs/<feature>/requirements.md + design.md + tasks.md; tasks.md is a checklist Kiro tracks and can execute in dependency waves.

Kelix maps tasks.md checklist items → backlog tasks (owner-authored priority class), preserving the spec path as the task’s rationale link. kelix init --from-spec <name> performs the import; Kelix writes results back as files (PR links in retrospectives) that Kiro naturally reads.

6. Skills — docs/skills, docs/cli/skills

Open Agent Skills standard (agentskills.io): folder with SKILL.md, YAML frontmatter name (≤64 chars, kebab) + description (≤1024 chars), optional references/. Workspace .kiro/skills/, global ~/.kiro/skills/. Loaded progressively: metadata at start, body on demand.

Kelix’s skills live at .kelix/skills/<name>/SKILL.md in the same format. Because the format is identical, a shareable skill can be copied into .kiro/skills/ so Kiro sessions benefit from what the loop learned. (Kept separate so .kelix/ stays gitignored-by-default while curated skills can be committed.) NOTE (as-built): kelix init creates .kelix/skills/ but does not auto-copy into .kiro/skills/; that copy is a documented manual step.

7. MCP — docs/mcp, docs/cli/mcp/*

Config at .kiro/settings/mcp.json (workspace) or ~/.kiro/settings/mcp.json (global); stdio servers via command/args/env. kiro-cli mcp add|list|....

Kelix ships kelix mcp (stdio MCP server exposing start/status/memory/ stop tools) plus a documented one-liner to register it with Kiro. This is how “Kiro drives Kelix” works without any non-public interface.

8. Other relevant surfaces (noted, not depended on)

Consequences for Kelix’s design

  1. The agent adapter interface is one function: run(prompt-file, cwd, env) → (exit code, transcript). Default adapter shells out to kiro-cli chat --no-interactive. A mock adapter (scripted responses) powers CI.
  2. Everything Kelix teaches Kiro is files under .kiro/ — steering, agent config, hooks, skills, MCP registration. No plugin API, no internals.
  3. Kiro’s permission system (allowedTools, toolsSettings, preToolUse hooks) gives Kelix a second, independent enforcement layer for its command policy — the runner’s own checks remain primary because they’re agent-agnostic.