Skip to content

kumiko agent

Terminal window
kumiko agent lint

kumiko agent ships with @cosmicdrift/kumiko-cli. Its only subcommand is lint. Run it from the app directory as bun kumiko agent lint. Any other subcommand prints the usage line and exits with code 1.

The command loads kumiko.config.ts from the current directory. The file default-exports an object with a features array:

kumiko.config.ts
import { myFeature } from "./src/features/my-feature";
export default { features: [myFeature] };

The command only checks the features in that list. Pass the same list the server mounts. If the file is missing, or its default export has no features array, the command prints an example and exits with code 1.

It runs findAgentDocGaps() from @cosmicdrift/kumiko-bundled-features/agent-tools and reports four kinds of gap:

GapCause
Handler without descriptionA write or query handler has no non-empty description and does not set agent: { expose: false }.
Input schema not expressibleA handler is exposed to the agent, but its input schema cannot be converted to JSON Schema. The agent manifest leaves it out.
Custom screen without descriptionA custom screen that the agent can see has no description.
Exposed entity without descriptionAn entity is reachable through an agent-visible handler and has no description.

Each gap prints as one line with the qualified name and a message that says how to fix it. The list is sorted by qualified name:

1 AI-agent doc gap found:
shop:write:archive-order — This write handler has no description, so it stays invisible to the AI agent — set `description` to expose it, or `agent: { expose: false }` to opt out deliberately.
CodeMeaning
0No gaps found
1At least one gap, a missing kumiko.config.ts, or an invalid config

The exit code lets you use the command as a CI step. Mounting the agent-tools feature runs the same check at boot, where gaps only produce a warning.