Documentation

Resources

Everything you need to install, configure, and operate LineageLens — from a 30-second extension install to a full Kubernetes deployment.

Quickstart

There are two capture paths. Start with the one that matches your setup — you can add the other later.

Easy Mode — the extension (30 seconds)

code --install-extension karnatipraveen.lineagelens-base

The extension activates the moment it installs — no configuration, no backend, no API key. It works in VS Code, Cursor, and Windsurf. The status bar shows LL: Easy (local) and captures appear in the LineageLens sidebar whenever 4+ lines are inserted in one change.

Power Mode — the proxy (5 minutes)

git clone https://github.com/karnati-praveen/lineagelens
cd lineagelens
bash lineagelens-scripts/quickstart-lite.sh    # macOS / Linux
# Windows (PowerShell 5.1+):
.\lineagelens-scripts\quickstart-lite.ps1

Open http://localhost:8787/setup, create an admin, then point your AI tools at the proxy:

export ANTHROPIC_BASE_URL=http://localhost:8788   # Claude Code / claude CLI
export OPENAI_BASE_URL=http://localhost:8788      # Codex CLI / Goose

The extension polls /proxy-health every 30s, detects the proxy, and flips the status bar to LL: Power with no restart.

Easy vs Power is a capture path, not a tier. "Easy" = capturing without the proxy (file + lines only). "Power" = the proxy is running (full prompt + model). The tier (Base/Lite/Plus/Max) describes the backend.

Operating modes

Pick the tier that matches your team and storage needs. The full capability matrix lives in lineagelens-config/tiers.json — the single source of truth.

ModeWhoStoragePrompt + model
BaseAnyone — zero setupVS Code global stateNo — file + lines
LiteSolo or team ≤ 10SQLite + DockerYes
PlusTeams 10–100, CI gatePostgreSQLYes
MaxCompliance, graph, SSOPostgreSQL + Neo4jYes

What gets captured

Every record carries the origin and intent of a block of AI code:

FieldExample
Prompt"add rate limiting to /api/login"
Modelclaude-opus-4-5
ToolClaude Code
File / linessrc/routes/auth.py · +47 / -3
Statusapplied / rejected / errored
RiskHIGH (auth + network pattern)
Confidencevery_high (0.92) — five-signal score

The proxy parses each provider’s native tool-calling protocol — Anthropic tool_use blocks, OpenAI Responses function_call with the apply_patch DSL, and Gemini functionCall parts — then correlates each edit with the next turn’s tool_result to resolve whether the edit actually landed.

The blame CLI

lineagelens blame annotates any file line-by-line with the AI that wrote it. lineagelens report answers "how much of this repo is AI-written?"

$ lineagelens blame src/users.py
AI  claude-opus-4-8  2026-06-01   3 │ def fetch_user(user_id):
AI  claude-opus-4-8  2026-06-01   4 │     """Load a user by id."""
                                  7 │ def main():
── 3/7 lines AI-attributed (42.9%) — claude-opus-4-8: 3 lines

It works on every tier, even Base with no backend — it reads your local capture export. report outputs a per-file table, per-model totals, paste-ready markdown for READMEs and PRs, and JSON for CI gates.

Tool guides

Per-tool setup and capture detail lives in the repo’s lineagelens-docs/tools/ directory:

  • Claude Code — full capture via ANTHROPIC_BASE_URL
  • OpenAI Codex CLI — Responses API + apply_patch DSL
  • Gemini CLIfunctionCall / functionResponse
  • Cursor / Copilot / Windsurf — editor-only capture (file + lines)
  • Continue — full or editor-only depending on provider

See the API reference for the ingest, search, integrity, and export endpoints, and the proxy setup guide for routing each tool.