Set your AI context once.
It follows every branch.

Lacis gives VS Code a context tree — your identity, rules and skills, auto-injected only when relevant. Then branch your chat like git: every exploration keeps its own clean context, and they never bleed into each other.

The problem

Every new chat, the AI forgets who you are and how you work — so you re-paste the same context again and again. And the longer a thread runs, the dumber it gets, as unrelated detours pile into one ever-growing history.

The heart of Lacis

A context tree that travels with you

Define a small tree of typed branches once. On every message, a lightweight router reads each branch's “load when…” signal and pulls in only what your request actually needs — on any branch of any conversation. A banner shows exactly what was loaded, so it's never a black box.

⬡ Context root — Lacis · VS Code · TypeScript/React
  • identity Senior TS dev, minimal code priority
  • rule Never touch files outside /src priority
  • context Store & tree architecture routed
  • reference npm commands, key paths routed
  • skill Run a code review routed
Auto-routed. Identity & rules are prioritised — and guaranteed if routing ever fails; the rest loads only when relevant — no token bloat.
AI-assisted. Generate a context tree from a project description, or have Lacis suggest reusable branches from a conversation.
Yours to keep. Share a context tree by link, reuse it across projects. It's your IP — independent of the model you run.

What the model sees

git branch, but for your AI conversations. Every message is a node; fork from any of them, and each branch keeps its own clean history.

            [root]
               │
   ┌───────────┼───────────┐
   ▼           ▼           ▼
[REST]      [GraphQL]    [gRPC]
   │
   ▼
[JWT auth] → [refresh tokens]

Send a message from refresh tokens and the model receives exactly root → REST → JWT auth → refresh tokens. GraphQL and gRPC never enter the context. You can compare the branches — the model can't confuse them.

Not just chat

A repo agent that acts — with your approval

Lacis isn't a web page beside your work. It runs in your editor, on your repo: the agent reads, creates and edits files, and runs commands.

Human-gated. Every file write and every command goes through an explicit approval with a native diff view — you see the change before it lands.
Your MCP tools work. Tools you've registered in VS Code are available to the agent, behind the same approval gate.
Editor-aware. It can work from your current selection, the active file or its diagnostics — not a paste of them.

Bring your model

Copilot native, or any key. No lock-in.

GitHub Copilot — zero config

Already have Copilot (Free, Individual or Business)? Lacis uses it through the official VS Code API. No API key, no setup — install and go.

🔑

Your own API key — everywhere

Point Lacis at OpenAI, Anthropic, OpenRouter, Groq, Mistral, or a local Ollama / LM Studio endpoint. First-class on Cursor, Windsurf and VSCodium, where Copilot isn't available.

Also in the box

🧩

Editor-native

Ask about the current selection, file or diagnostics. Insert a reply at the cursor. Continue a conversation from any node.

💸

Token & cost counter

See exactly what a turn will cost — tokens and money — before you press send.

🖼️

Images

Attach an image to any message and use vision models on it.

🔗

Share a tree by link

Send a read-only conversation or context tree. Zero backend: the tree travels in the URL itself.

🗺️

Built for big trees

Tree view, focus mode, tags, bookmarks and search — navigate hundred-node conversations fast.

🔒

Local by default

No account, no mandatory cloud. Conversations stay on your machine; keys stay in your editor’s secret store.

FAQ

Questions people actually ask

What is Lacis?

Lacis is a VS Code extension for branching AI conversations. Every reply can fork into a new branch, and the model only ever sees the current path — never the sibling branches. On top of that, a routed context tree auto-injects your identity, rules and skills into every reply, only when relevant. It works with GitHub Copilot or any OpenAI-compatible API key, and also runs in Cursor, Windsurf and VSCodium.

How is this different from ChatGPT’s branching?

ChatGPT branches a web page. Lacis branches inside your editor, on your files — with your Copilot or your own key, an approval-gated repo agent, and true context isolation per branch: each branch sends only its own ancestor chain to the model.

Why branch instead of editing an earlier message?

Editing keeps everything in the same context window, which keeps growing and drifting from the goal. A branch sees only its own path — clean context, sharper answers — and both versions coexist so you can compare them side by side.

How is it different from Copilot Chat?

Lacis runs on your Copilot rather than replacing it. It adds the conversation tree, per-branch context isolation, the auto-routed context tree, and multi-conversation management that a linear chat panel doesn’t have.

Do I need an API key?

Not if you have GitHub Copilot (Free, Individual or Business) — Lacis uses it through the official VS Code API with zero configuration. Otherwise, bring any OpenAI-compatible key: OpenAI, Anthropic, OpenRouter, Groq, Mistral, or a local Ollama / LM Studio endpoint.

Is Lacis free?

The extension is free to install. You bring your own model — your Copilot subscription or your API key — so you pay your provider directly, and Lacis shows you the token cost before every send.

What happens to my data?

Everything is local by default: no account, no mandatory cloud. Conversations are stored on your machine and API keys live in your editor’s secret store. Optional telemetry is anonymous and structure-only — never message content — and is documented in full on the transparency page.

Something else? Ask us directly — every message is read.

Stop re-pasting context. Start branching.