karst
MCP-native · 100% local · Apache 2.0

know what your
change breaks

karst gives Claude, Cursor, and any AI agent a local map of your codebase — cited answers plus a real call-graph that shows the blast radius of a change. It runs 100% on your machine over MCP; your code never leaves the box. (And packs cut ~60% of the tokens.)

Using something else? Add to VS Code · Claude, Windsurf, Zed & more

🔒 Regulated or air-gapped team? karst runs fully offline, with no telemetry and source you can audit — deploy it inside your perimeter →

343s → 2.3s
Re-index after first run. Incremental, content-addressed.
$0.019
Real cost per query — exact tokens, priced for the model you actually use. Or $0 on a local model.
60%
Token reduction with packs vs. raw file dumping.

How it works

Three steps. No vector DB to babysit, no embeddings drift, no surprise bills. See the interactive walkthrough →

01 / INDEX

Parse the repo

karst walks your tree, parses each file with tree-sitter, and writes a content-addressed index of symbols, calls, and imports. The first pass takes 343s on a 2M-line repo; subsequent runs are 2.3s because only changed blobs are re-parsed.

02 / PACK

Group into packs

Files that change together and call each other get grouped into packs — small, named bundles like auth or billing-stripe. karst packs suggest proposes them; you review, tag, and apply. Packs are the unit of context.

03 / SERVE

Serve over MCP

karst exposes packs as MCP resources. Claude Desktop, Cursor, and any MCP client can pull just the pack they need — 60% fewer tokens than dumping raw files, with the cost estimated up front and the real per-model token spend printed after each answer.

Install in 60 seconds

Python 3.10+. Works on macOS, Linux, WSL.

# 1. install  (or: uv tool install karst)
pip install karst

# 2. from your repo folder — index + suggest packs in one step
cd my-repo
karst quickstart

# 3. ask anything — real per-model token cost printed after the answer
karst ask "How does auth work?"

Or wire it into your AI tool: MCP setup for Claude, Cursor, VS Code & more →

Guides

Understand karst, then wire it into your workflow. New here? Start with Why karst?

START HERE

Why karst?

What it is and the problem it solves — in plain English, no jargon.

Read →
5 MINUTES

Quickstart

Zero to cited answers about your own code in five minutes — no API key.

Read →
NO CLI

For vibe coders

Use karst from Cursor or Claude Desktop by just chatting — never touch a command.

Read →
SETUP

Connect your AI tool

Copy-paste MCP config for Claude, Cursor, Windsurf, VS Code, Zed, JetBrains & more.

Read →
RECIPES

Cookbook

Real scenarios — onboarding, blast radius, cutting token cost — with real output.

Read →
REFERENCE

MCP & internals

Transport details, remote hosting, and how karst works under the hood.

Read →
PRIVATE

Self-hosted & air-gapped

Run karst — and the AI answers — fully on your machine with a local model. Your code never leaves the building.

Read →
For teams & regulated orgs

One governed karst for your whole org

The free CLI is per-developer. The enterprise gateway is one authenticated, metered MCP endpoint every dev's AI tool points at — self-hosted inside your perimeter, so code never leaves the building.

01

Per-team isolation, enforced. A key scoped to its repos is checked on every call — team A can't read team B's code. SSO (OIDC) or API keys.

02

Usage & audit metering. Every call logged with team, tool, repo — who touched what, on-prem.

03

Deploy in minutes. Docker Compose + PostgreSQL, air-gappable, no telemetry, source you can audit.

No public pricing — we'll scope a quote to your team. Prefer to read first? Self-hosted guide →

Animation: a team's API key is allowed to read its own repo but blocked with 403 from another team's repo

Get early access

We're rolling out hosted packs, team sync, and a usage-aware MCP gateway. Drop your email and we'll send a build invite when your slot opens.

Questions or feedback?

Hit a bug, have an idea, or just want to ask something about karst? Send it straight to us — leave your email if you'd like a reply.

Prefer email? karst.support@gmail.com