Skip to content

feat: add Kimi CLI skills-only support#1003

Merged
TabishB merged 2 commits into
Fission-AI:mainfrom
Miss-you:codex/add-kimi-cli-skills-only-support
Apr 30, 2026
Merged

feat: add Kimi CLI skills-only support#1003
TabishB merged 2 commits into
Fission-AI:mainfrom
Miss-you:codex/add-kimi-cli-skills-only-support

Conversation

@Miss-you

@Miss-you Miss-you commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add Kimi CLI as a supported OpenSpec tool with skillsDir: '.kimi'
  • document Kimi as a skills-only integration using /skill:openspec-*
  • add a focused init regression test and a changeset
  • add a spec-driven change proposal for the Kimi CLI support work

Technical Analysis

Kimi CLI does not expose a stable file-based custom command surface like Claude Code or Codex. Its supported extension model is skill discovery from .kimi/skills/, and Kimi maps discovered skills to runtime /skill:<name> invocations. Because of that, this change treats Kimi as a skills-only tool and does not add a kimi command adapter.

The OpenSpec implementation follows the existing Trae skills-only precedent rather than the unmerged Trae adapter experiments:

  • baseline reference: #601 feat: Trae skills with proactive command invocation + docs alignment
  • current wording/reference alignment: #746 docs: realign defaults, profile workflows, and tool references

For Kimi specifically, this intentionally does not follow the stalled upstream attempt in #640, which remained open after assuming a Kimi command-adapter path that the Kimi CLI codebase does not actually provide. It also avoids the Trae adapter direction explored in #677 and #776, because those PRs pursue command adapters rather than the merged skills-only pattern.

Validation

  • openspec validate add-kimi-cli-skills-only-support
  • npm test -- test/core/init.test.ts
  • npm test -- test/cli-e2e/basic.test.ts
image image

Summary by CodeRabbit

  • New Features

    • Kimi CLI added as an init option (--tools kimi) with skills-only support.
    • OpenSpec installs Kimi skills under a .kimi skills directory; use skill-based invocations (/skill:openspec-*) to run them.
  • Documentation

    • Docs updated to list Kimi CLI, document skill-based invocation, and show init options.
  • Tests

    • Added init test covering Kimi’s skills-only workflow and skipped command generation.
  • Chores

    • Release metadata entry added for the minor release.

@coderabbitai

coderabbitai Bot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 28cda297-f16d-4575-954f-f990c6c271bd

📥 Commits

Reviewing files that changed from the base of the PR and between c08e0a1 and 624ad1a.

📒 Files selected for processing (1)
  • test/core/init.test.ts

📝 Walkthrough

Walkthrough

Adds Kimi CLI as an adapterless, skills-only AI tool: registers kimi with skillsDir: '.kimi', updates specs/docs/init to install skills under .kimi/skills/, and changes init behavior to skip slash-command file generation for tools without a command adapter.

Changes

Cohort / File(s) Summary
Release & Change Archive
​.changeset/kind-rings-notice.md, openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/*
New changeset and archive files: release note, metadata, README, design, proposal, specs, tasks for Kimi skills-only support.
Docs / CLI
docs/cli.md, docs/commands.md, docs/supported-tools.md
Document kimi in --tools list; describe .kimi/skills/ installation and /skill:openspec-* usage; note no command adapter/files are generated for Kimi.
Specs
openspec/specs/ai-tool-paths/spec.md, openspec/specs/cli-init/spec.md, openspec/specs/..., openspec/changes/.../specs/*
Require skillsDir for Agent Skills tools; update cli-init so slash-command files are generated only for tools with adapters and skipped (with logged message) for adapterless tools like kimi.
Core Config
src/core/config.ts
Add kimi entry to exported AI_TOOLS with skillsDir: '.kimi' and metadata.
Tests
test/core/init.test.ts
Add test covering openspec init --tools kimi: verifies .kimi/skills/... created, .kimi/commands not created, and log includes Commands skipped for: kimi (no adapter).

Sequence Diagram(s)

sequenceDiagram
    participant User as User
    participant CLI as CLI (openspec init)
    participant Config as Config (AI_TOOLS lookup)
    participant Files as Filesystem
    participant Logger as Logger
    User->>CLI: run `openspec init --tools kimi`
    CLI->>Config: resolve tool metadata for `kimi`
    Config-->>CLI: { id: "kimi", skillsDir: ".kimi", adapter: null }
    CLI->>Files: install skills under `.kimi/skills/...`
    alt adapter present
        CLI->>Files: generate `/opsx:*` command files
        Logger-->>User: "Commands generated for: kimi"
    else no adapter
        Logger-->>User: "Commands skipped for: kimi (no adapter)"
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested reviewers

  • TabishB

Poem

🐰
I hopped through configs, light and nimble,
Planted .kimi/skills/—no adapter, simple.
Skills arrive where quiet pathways run,
No command files needed—just gentle fun.
Hooray for Kimi—soft hops, well done.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: add Kimi CLI skills-only support' accurately and specifically describes the main change: adding Kimi CLI as a supported tool with skills-only functionality.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Miss-you Miss-you force-pushed the codex/add-kimi-cli-skills-only-support branch from ac19140 to ba95e0c Compare April 23, 2026 12:00
@Miss-you Miss-you marked this pull request as ready for review April 23, 2026 12:01
@Miss-you Miss-you requested a review from TabishB as a code owner April 23, 2026 12:01
Copilot AI review requested due to automatic review settings April 23, 2026 12:01
@Miss-you Miss-you changed the title [codex] feat: add Kimi CLI skills-only support feat: add Kimi CLI skills-only support Apr 23, 2026
@Miss-you Miss-you force-pushed the codex/add-kimi-cli-skills-only-support branch from ba95e0c to c08e0a1 Compare April 23, 2026 12:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Kimi CLI as a supported skills-only OpenSpec tool (no command adapter) by registering .kimi as its skills root, aligning specs/docs with “adapterless command skipping”, and adding a focused init regression test + release changeset.

Changes:

  • Register Kimi CLI in AI_TOOLS with skillsDir: '.kimi' (skills-only; no adapter).
  • Document Kimi CLI usage via /skill:openspec-* and clarify adapterless command skipping in specs.
  • Add an init regression test for --tools kimi plus a minor-release changeset and spec-driven change artifacts.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
test/core/init.test.ts Adds a regression test asserting .kimi/skills generation and command skipping behavior for Kimi.
src/core/config.ts Registers kimi in AI_TOOLS with .kimi skills directory metadata.
openspec/specs/cli-init/spec.md Updates CLI init spec to explicitly allow adapterless tools and specify command generation skipping + output messaging.
openspec/specs/ai-tool-paths/spec.md Adds Kimi CLI path requirement (skillsDir: .kimi).
openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md Tracks the work items for the Kimi skills-only support change.
openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md Captures the delta spec for cli-init adapterless behavior + Kimi scenario.
openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md Captures the delta spec for ai-tool-paths adding .kimi.
openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md Provides rationale/scope for skills-only Kimi integration.
openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md Design notes explaining why Kimi is treated as skills-only and how it fits existing behavior.
openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md Brief archive README describing the change.
openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml Spec-driven archive metadata for the change.
docs/supported-tools.md Adds Kimi CLI row (skills-only) and includes kimi in the --tools ID list.
docs/commands.md Documents Kimi CLI invocation via /skill:openspec-* (no generated opsx-* files).
docs/cli.md Adds kimi to the documented --tools supported IDs list.
.changeset/kind-rings-notice.md Minor version bump notes announcing Kimi CLI skills-only support.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/core/init.test.ts Outdated
expect(await directoryExists(commandsDir)).toBe(false);

const logCalls = (console.log as unknown as { mock: { calls: unknown[][] } }).mock.calls.flat().map(String);
expect(logCalls).toContain('Commands skipped for: kimi (no adapter)');

Copilot AI Apr 23, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assertion is brittle because the init implementation logs the message via chalk.dim(...), which can add ANSI color codes depending on environment. Consider asserting with .some(entry => entry.includes('Commands skipped for: kimi') && entry.includes('(no adapter)')) (or disabling color via NO_COLOR/--no-color) so the test is stable across TTY/CI settings.

Suggested change
expect(logCalls).toContain('Commands skipped for: kimi (no adapter)');
expect(
logCalls.some(
(entry) => entry.includes('Commands skipped for: kimi') && entry.includes('(no adapter)'),
),
).toBe(true);

Copilot uses AI. Check for mistakes.
Comment thread docs/cli.md
Comment thread docs/supported-tools.md

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
openspec/specs/cli-init/spec.md (1)

229-234: Consider explicitly mentioning that skill generation proceeds for Kimi CLI.

The configuration claim is accurate—Kimi CLI is correctly configured with skillsDir: '.kimi' in src/core/config.ts—and the scenario correctly states that command-file generation is skipped. However, the scenario focuses only on what's skipped without explicitly stating that skills are generated. For clarity and completeness, consider expanding the scenario with an additional THEN clause: "AND skill generation SHALL proceed, creating 9 skills in .kimi/skills/"

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@openspec/specs/cli-init/spec.md` around lines 229 - 234, Update the "Kimi CLI
skips command-file generation" scenario to explicitly state that skill
generation still occurs: reference the scenario header "Kimi CLI skips
command-file generation" and add a THEN clause such as "AND skill generation
SHALL proceed, creating 9 skills in '.kimi/skills/'" (you can cite the
configured value skillsDir: '.kimi' from src/core/config.ts to justify the
path). Ensure the new clause sits after the existing THEN and AND clauses so the
spec documents both the skipped command-file generation and the successful
creation of skills.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@openspec/specs/cli-init/spec.md`:
- Around line 229-234: Update the "Kimi CLI skips command-file generation"
scenario to explicitly state that skill generation still occurs: reference the
scenario header "Kimi CLI skips command-file generation" and add a THEN clause
such as "AND skill generation SHALL proceed, creating 9 skills in
'.kimi/skills/'" (you can cite the configured value skillsDir: '.kimi' from
src/core/config.ts to justify the path). Ensure the new clause sits after the
existing THEN and AND clauses so the spec documents both the skipped
command-file generation and the successful creation of skills.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1fdac035-f80c-4498-8b5a-b2037848b3e9

📥 Commits

Reviewing files that changed from the base of the PR and between ba95e0c and c08e0a1.

📒 Files selected for processing (15)
  • .changeset/kind-rings-notice.md
  • docs/cli.md
  • docs/commands.md
  • docs/supported-tools.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md
  • openspec/specs/ai-tool-paths/spec.md
  • openspec/specs/cli-init/spec.md
  • src/core/config.ts
  • test/core/init.test.ts
✅ Files skipped from review due to trivial changes (10)
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md
  • docs/cli.md
  • src/core/config.ts
  • docs/commands.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md
  • docs/supported-tools.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md
  • openspec/specs/ai-tool-paths/spec.md
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml
  • .changeset/kind-rings-notice.md
  • test/core/init.test.ts
  • openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md

@Miss-you

Copy link
Copy Markdown
Contributor Author

@RealKai42 Is there any plan for the support of the kimi cli slash command?
RealKai42

@TabishB TabishB added this pull request to the merge queue Apr 30, 2026
Merged via the queue into Fission-AI:main with commit 342ed43 Apr 30, 2026
9 checks passed
pull Bot pushed a commit to ben-vargas/ai-openspec that referenced this pull request Apr 30, 2026
* docs: sync tool ID lists with AI_TOOLS source of truth

Fixes missing tool IDs in docs/cli.md and docs/supported-tools.md that
drifted from src/core/config.ts (AI_TOOLS).

- docs/cli.md: add bob, forgecode, junie, lingma (25 -> 29)
- docs/supported-tools.md: add lingma, align order with config.ts (28 -> 29)

Follow-up to Fission-AI#1003.

* docs: address AICR feedback on tool ID ordering and table entry

Address review comments from Copilot and CodeRabbit on PR Fission-AI#1027:

- docs/cli.md: reorder lingma to match AI_TOOLS position (between qoder and qwen)
- docs/supported-tools.md: same reordering in the --tools list
- docs/supported-tools.md: add missing Lingma row to Tool Directory Reference
  table (inserted alphabetically between Kiro and OpenCode, matching existing
  table convention)

Verified all three documentation surfaces against AI_TOOLS (29 tools):
- cli.md list: order matches src/core/config.ts
- supported-tools.md list: order matches src/core/config.ts
- supported-tools.md table: set equals AI_TOOLS (alphabetical-by-display-name
  order preserved per existing convention).
kaze-droid pushed a commit to kaze-droid/OpenSpec that referenced this pull request May 10, 2026
* feat: add Kimi CLI skills-only support

* test: relax Kimi adapterless log assertion
kaze-droid pushed a commit to kaze-droid/OpenSpec that referenced this pull request May 10, 2026
* docs: sync tool ID lists with AI_TOOLS source of truth

Fixes missing tool IDs in docs/cli.md and docs/supported-tools.md that
drifted from src/core/config.ts (AI_TOOLS).

- docs/cli.md: add bob, forgecode, junie, lingma (25 -> 29)
- docs/supported-tools.md: add lingma, align order with config.ts (28 -> 29)

Follow-up to Fission-AI#1003.

* docs: address AICR feedback on tool ID ordering and table entry

Address review comments from Copilot and CodeRabbit on PR Fission-AI#1027:

- docs/cli.md: reorder lingma to match AI_TOOLS position (between qoder and qwen)
- docs/supported-tools.md: same reordering in the --tools list
- docs/supported-tools.md: add missing Lingma row to Tool Directory Reference
  table (inserted alphabetically between Kiro and OpenCode, matching existing
  table convention)

Verified all three documentation surfaces against AI_TOOLS (29 tools):
- cli.md list: order matches src/core/config.ts
- supported-tools.md list: order matches src/core/config.ts
- supported-tools.md table: set equals AI_TOOLS (alphabetical-by-display-name
  order preserved per existing convention).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants