LizorCube Pilot
lizorcube.com · GitHub
LizorCube Pilot is an AI pair-programmer that lives in your VS Code sidebar — a Cline/Claude-style
coding agent from LizorCube. It doesn't just answer questions: it classifies what you're asking for,
drafts a plan when the task is multi-step, inspects your real project (reads files, runs read-only
shell commands) instead of guessing, and proposes file edits as a native diff you approve before
anything touches disk.
Works with OpenAI, Qwen (DashScope), or any OpenAI-compatible endpoint. API keys are stored in
VS Code's SecretStorage (your OS keychain) — never written to settings.json.

What it does
- Chat — ask questions, get explanations, have a normal conversation about your code.
- Plan before acting — multi-step requests get an explicit, reviewable plan before any file changes.
- Real project inspection — a dedicated sub-agent runs read-only shell commands (each one gated
behind your approval, unless you've switched modes — see below) to ground answers in what's
actually in your repo, not a guess.
- Bug fixing — describe what's broken; a dedicated agent investigates the real files and proposes
a fix.
- Code explanation — ask how something works and get an answer backed by files it actually read.
- Review before write — every proposed file change opens as a native VS Code diff by default;
nothing is written until you click ✓.
- Approval modes — switch between Manual (asks every time), Auto (read-only commands run
without asking), Edit automatically (non-high-risk file writes run without asking too), and
Plan mode (investigates and drafts a plan, never writes) from the picker next to the send button.
- File attachments — attach text files from the "+" button to add their contents as context.
- Context management — a ring next to the input shows how full the context window is; compact
it manually with one click, or let it auto-compact as you approach the limit.
- Memory across conversations — remembers durable facts you've told it (not scratch state) so you
don't have to repeat yourself in a new chat.
Getting started
- Install the extension and open the LizorCube Pilot icon in the activity bar.
- Click the gear icon, pick a provider (OpenAI, Qwen, or a custom OpenAI-compatible endpoint), and
paste an API key.
- Start chatting from the sidebar, or use LizorCube Pilot: Open Chat in Editor for a full editor-tab view.
Project layout
src/ extension host (TypeScript, bundled with esbuild)
extension.ts activation, command registration
panel/ webview host (sidebar view + editor-tab panel)
core/
ChatController.ts orchestration: routing, sub-agents, plans, replies
routing/MessageRouter.ts intent classifier (simple/complex, needs plan/inspection/bug fix/explanation)
planning/ turns a request into an ordered plan + file edits
agents/ sub-agents: project inspector, bug fixer, code explainer
context/ProjectContextManager.ts cached project index (file tree, imports, symbols)
facts/VerifiedFactsStore.ts ground-truth facts from real command output
memory/ cross-conversation memory (mem0-style)
tools/ shell command + file write tools, approval-gated
providers/ OpenAI / Qwen / custom endpoint presets + streaming client
shared/messages.ts webview <-> extension message protocol
webview-ui/ React + Vite chat UI (builds to webview-ui/dist)
src/
App.tsx chat/settings view switching, message bus
components/ chat pane, input, tool/plan/agent cards, settings pane
Develop
npm install
npm run build # builds webview-ui then bundles the extension into dist/
Press F5 in VS Code (or run the "Run Extension" launch config) to open an Extension Development
Host with LizorCube Pilot loaded.
For iterating on the webview UI with hot reload outside VS Code:
cd webview-ui && npm run dev
Adding another OpenAI-compatible provider
Add an entry to PROVIDER_PRESETS in both src/core/providers/presets.ts and
webview-ui/src/presets.ts (default base URL, default model, key help link) — the streaming client
and settings UI need no other changes since the wire protocol is shared.
License
Apache-2.0 — see LICENSE.