One CLI. Ten surfaces. kolm compile works the same way from Claude Desktop, Cursor, VS Code, your CI pipeline, your Python REPL, and the bare terminal. The artifact it produces is the same byte-exact .kolm in every case.
If your agent speaks MCP, it can drive kolm. If your editor speaks Cursor rules or Claude Code skills, it can drive kolm.
Add kolm as an MCP server in ~/.claude/mcp.json. Claude can synthesize, run, and verify recipes as MCP tools - no extra glue.
npm i -g github:sneaky-hippo/kolmogorov-stack
# in ~/.claude/mcp.json
{ "mcpServers": { "kolm": { "command": "kolm", "args": ["serve", "--mcp"] } } }
Drop the .cursorrules template into your project. Cursor can call kolm compile, swap LLM-as-judge calls for deterministic recipes, and inspect .kolm manifests inline.
curl -O https://kolm.ai/docs/cursor-rules.txt mv cursor-rules.txt .cursorrules
Marketplace-publishable extension at sdk/vscode/. Selects an LLM-as-judge call, mints a kolm recipe, and swaps the call inline. Requires KOLM_API_KEY.
cd sdk/vscode && npm install && vsce package code --install-extension recipe-vscode-0.1.0.vsix
Drop CLAUDE.md into your project. Claude Code reads the skill rules, runs kolm compile when it detects a repeated LLM-as-judge pattern, and ships the .kolm to your registry.
curl -O https://kolm.ai/docs/claude-skill.md mv claude-skill.md CLAUDE.md
Compile on every push. Gate the build on K-score. Publish the artifact as a build attachment.
Composite action at .github/actions/kolm-compile. Drops into any workflow; uploads the .kolm as a build artifact.
- uses: sneaky-hippo/kolmogorov-stack/.github/actions/kolm-compile@main
with:
task: 'classify support tickets'
examples: ./labels.jsonl
api-key: ${{ secrets.KOLM_API_KEY }}
Bare CLI works in any container. Pin node:20-alpine, run npm i -g github:sneaky-hippo/kolmogorov-stack, then kolm compile.
image: node:20-alpine script: - npm i -g github:sneaky-hippo/kolmogorov-stack - kolm compile "$TASK" --examples ./labels.jsonl - kolm eval ./artifacts/$ARTIFACT.kolm
Same compile contract. Different host language. Same byte-exact .kolm artifact.
Browser-native SDK at /sdk.js + a Node wrapper at sdk/node. TypeScript types included.
npm i github:sneaky-hippo/kolmogorov-stack
import { RecipeClient } from 'kolmogorov-stack/sdk/node/index.mjs';
const k = new RecipeClient({ apiKey: process.env.KOLM_API_KEY });
const job = await k.synthesize({ positives, negatives });
Stdlib-only client at sdk/python/kolm. from kolm import Kolm works the same as the Node SDK.
pip install -e sdk/python from kolm import Kolm k = Kolm(api_key="ks_...") job = k.compile(task=..., examples_path="./tickets.jsonl")
Pick whatever your machine ships with.
Node 20 is the runtime. The npm install is the canonical path on macOS and Linux.
brew install node npm i -g github:sneaky-hippo/kolmogorov-stack
The Node CLI runs natively on Windows. Install Node, then npm-install the CLI.
winget install OpenJS.NodeJS npm i -g github:sneaky-hippo/kolmogorov-stack
Reproducible build. Pinned node:22-alpine. Useful for CI where you want a hermetic compile environment.
docker run --rm -v $PWD:/work -w /work \ -e KOLM_API_KEY node:22-alpine sh -c \ "npm i -g github:sneaky-hippo/kolmogorov-stack \ && kolm compile '...' --examples ./labels.jsonl"
Open a thread in GitHub Discussions. RS-1 is open. The HTTP API is stable. The integration you need is usually thirty lines; we'll review the PR.