Skip to content

Repository files navigation

Kai Logo

Kai

Semantic infrastructure for code change.

Kai understands what code means — functions, dependencies, behavior impact — not just which lines changed. This semantic graph powers precise CI, context-aware IDEs, and verifiable AI coding agents.

atlas.kaicontext.com · Docs · Slack


Install

# curl
curl -sSL https://get.kaicontext.com | sh
# Homebrew
brew install kaicontext/kai/kai

Quick Start

kai init # One-shot setup: graph, MCP, account, remote
kai code # Launch the interactive coding experience
kai capture -m "Initial"# Snapshot your code with a message
kai push # Push to atlas.kaicontext.com
kai diff # Semantic change impact

kai code is the single front door to Kai's interactive coding agent. On first use it downloads its backing component to ~/.kai/bin automatically, then launches it — no extra setup, on any install path (curl, Homebrew, or manual). Every flag after code is forwarded to the experience unchanged.

kai init runs a single, low-friction setup flow:

  1. Creates the semantic graph in .kai/ and builds the first capture.
  2. Imports git history automatically (for repos with ≤1000 commits) — no prompt.
  3. Installs git hooks for auto-capture on commit and auto-push on git push.
  4. Installs the Kai MCP server for any detected AI coding tool (Claude Code, Codex). If the kai MCP is already registered, it's left alone; otherwise it's added automatically — no prompt.
  5. Signs you up for atlas.kaicontext.com in-place: asks for your email, emails you a login link, you paste the token back, and Kai creates a personal org named after you plus a repo for the current directory. Your first push goes out at the end of init.

Every step runs by default. Press Ctrl+C to skip the account step if you'd rather stay local; everything else is automatic.

For full command reference, see docs/cli-reference.md.


MCP Server

Kai ships an MCP server that gives AI coding assistants access to call graphs, dependency maps, impact analysis, and test coverage.

# Claude Code
claude mcp add kai -- kai mcp serve
# Or without installing kai (npx downloads it automatically)
claude mcp add kai -- npx -y kai-mcp

No setup required — the server lazily initializes the semantic graph on first use.

12 tools: kai_status, kai_symbols, kai_files, kai_diff, kai_impact, kai_callers, kai_callees, kai_context, kai_dependencies, kai_dependents, kai_tests, kai_refresh.

See docs/mcp.md for Cursor setup, tool reference, and troubleshooting.


Bring Your Own Model

Kai's agentic coding experience (kai code) uses kailab as the default LLM provider — you sign in with kai auth login and the server holds the upstream key. If you'd rather use your own API key (or a local model), set KAI_PROVIDER and the matching key.

Kailab credentials are still used for sync, shared safety gates, and team features when present, regardless of which LLM provider you pick.

Anthropic (direct)

export KAI_PROVIDER=anthropic
export ANTHROPIC_API_KEY=sk-ant-...
kai code

Same wire shape and prompt-caching behavior as kailab. Costs and rate limits are billed to your Anthropic account.

OpenAI / OpenAI-compatible

export KAI_PROVIDER=openai
export OPENAI_API_KEY=sk-...
export KAI_OPENAI_MODEL=gpt-4o
kai code

Works with OpenAI, Together, Groq, OpenRouter, and any endpoint that speaks the chat.completions protocol. No prompt caching — every turn re-sends the conversation at full cost. Expect 5–10× the per-session cost of an equivalent Anthropic run.

Local models (Ollama, vLLM, LM Studio)

# `openai-compatible` (or `local`) is an alias for `openai` —# more honest about the fact that the endpoint isn't actually# OpenAI. Same wire protocol, different vendor.export KAI_PROVIDER=openai-compatible
export KAI_OPENAI_BASE_URL=http://localhost:11434/v1
export KAI_OPENAI_MODEL=llama3.1:70b
kai code

OPENAI_API_KEY is optional for endpoints that don't require auth. Tool-use quality varies sharply by model — pick one that natively supports the OpenAI tool-call protocol (Llama 3.1 70B+, Qwen 2.5 32B+, Hermes-tuned models). Smaller models often emit tool calls as text, which Kai can extract with limited fidelity (set KAI_OPENAI_TOOL_FORMAT=hermes|llama3 to opt into a specific text format).

Provider tradeoffs

kailabAnthropic directOpenAI / compatLocal
Setupkai auth loginAPI keyAPI keyLocal server
Prompt cachingYes (server)YesNoNo
Per-session costLowestLow~5–10× higherFree (compute)
Tool-use fidelityHighHighHighVaries by model
Sync + team gatesYesOnly if logged into kailabOnly if logged into kailabOnly if logged into kailab

Environment variables

VariablePurpose
KAI_PROVIDERkailab (default), anthropic, or openai. Aliases: openai-compatible / oai-compat / local for openai; anthropic-direct / claude for anthropic.
ANTHROPIC_API_KEYRequired for anthropic
KAI_ANTHROPIC_BASE_URLOverride Anthropic endpoint (rare)
KAI_ANTHROPIC_MODELOverride default model on Anthropic
OPENAI_API_KEYUsed by openai (optional for local)
KAI_OPENAI_BASE_URLOpenAI-compatible endpoint URL
KAI_OPENAI_MODELOverride default model on OpenAI
KAI_OPENAI_TOOL_FORMATraw (default), hermes, or llama3
KAI_MAX_SESSION_COST_USDPause and prompt before exceeding this cap

Run kai auth status to see which provider is active and whether kailab sync is connected.

→ Full reference, troubleshooting, and per-provider model recommendations: docs.kaicontext.com/bring-your-own-model


Code Reviews

Kai reviews are anchored to semantic changesets, not line diffs.

kai review open --title "Add auth middleware"# Create a review
kai push # Push to atlas.kaicontext.com
kai fetch --review abc123 # Sync comments from web
kai review comments abc123 # View inline comments locally

On the web, reviews show semantic diffs (what functions changed, not just which lines), inline commenting, and one-click merge that updates snap.main.


CI Integration

Kai CI runs workflows defined in .kailab/workflows/ with semantic checkout, parallel jobs, and 30-minute default timeouts.

kai ci runs # List CI runs
kai ci logs 42 # View logs for run #42
kai ci cancel 42 # Cancel a run
kai capture -m "Fix bug"# Message shows as CI run headline

Email notifications on pipeline completion are sent to the snapshot author via Postmark.


What Kai Builds

For every capture, Kai constructs a queryable semantic model:

LayerWhat It Captures
Functions & methodsSignatures, bodies, call graphs
DependenciesModule relationships, imports, data flow
Behavior changesWhat actually changed in meaning, not just text
Test coverageWhich tests cover which source files (static + transitive)

This graph is immutable, content-addressed, and designed for machine reasoning.


Use Cases

Selective CI

Kai determines which tests actually need to run based on behavioral impact, not file diffs. Result: 80% CI time reduction for early users.

AI Code Context

12 MCP tools give AI assistants structured access to your codebase's dependency graph, call graph, impact analysis, and test coverage.

Code Reviews

Semantic diff shows what changed (function added, condition modified, API changed) instead of raw line diffs. Inline comments anchored to symbols, not lines.

Verified AI Agents

Agent proposes edit → Kai validates impact → agent executes with proof, not generation with hope.


Language Support

Kai uses tree-sitter for parsing and builds semantic graphs for 9 languages. Each language is validated with end-to-end tests against real open-source projects:

LanguageSymbolsCallers/CalleesDependenciesTestsImpactE2E Fixtures
Gofunctions, methods, interfaces, structscross-package via import aliasesGo package resolutionsame-dir _test.go + transitivevia dependency graphchi, lo
Rustfunctions, structs, enums, traits, impl methods, macroscross-file via exportscrate::, super::, self::, mod, wildcardsfilename pattern matching for integration testsvia dependency graphjust, miniserve
TypeScript/JavaScriptfunctions, classes, methods, variablesvia importsrelative + workspace resolution*.test.ts, __tests__/ patternsvia dependency graph
Pythonfunctions, classes, methodsvia importsdotted module resolutiontest_*.py, *_test.py patternsvia dependency graph
Rubymethods, classes, modulesvia exportsrequire, require_relative, Zeitwerk autoload*_spec.rb, *_test.rb patternsvia dependency graph
SQL
PHPfunctions, classes, methods
C#functions, classes, methods

92 E2E tests across Go, Rust, and push completeness, all passing.


Architecture

The Kai CLI is open source under Apache 2.0. The core engine (kai-core) ships as a prebuilt module statically linked into the kai binary you download; the server components are distributed separately. Kai Cloud is the hosted version — managed infrastructure on top of the same engine.

kai capture → local semantic graph (SQLite)
kai push → atlas.kaicontext.com (Postgres + GCS)
├── File viewer with search, language breakdown
├── CI with SSE live updates
├── Code reviews with semantic diffs
└── Email notifications (Postmark)

License

License: Apache-2.0

See LICENSE.


Community & Contributing

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages