Lime for VS Code
Lime is an AI coding assistant that lives where you work. A streaming
chat sidebar with the full agentic loop, editor surfaces (Code Actions,
CodeLens, SCM, inline completions), and a terminal companion for running
lime in your shell while VS Code handles diff review.
Quick start
- Install the engine. The extension talks to a local
lime binary
over stdio — install it once and put it on your PATH. The
Get started with Lime walkthrough has download links and tells you
how to point the extension at a custom path.
- Open the Lime sidebar from the Activity Bar (the lime tile).
- Send a message. The first message lazily spawns the engine; from
there you have streaming markdown, slash commands, file mentions,
permission prompts, session history, and fork.
You can also keep using lime in the terminal — VS Code will detect it
and route diff review, selection context, and diagnostics to the editor
automatically.
What you get
- Streaming markdown with VS Code-themed syntax highlighting.
/slash autocomplete sourced live from the engine.
@file mentions backed by vscode.workspace.findFiles.
- Permission prompts with rule-pattern picker — pick
bash(git:*) or
write_file(src/*), not just the bare tool name.
- Session list, continue, fork (with optional branch name).
- Tool-call cards updated in place when results land.
bash /
bash_session output renders in a real VS Code Pseudoterminal with
ANSI colors and native scrollback.
Editor surfaces
- Code Actions on diagnostics ("Ask Lime to fix") and selections
("Refactor with Lime", "Explain selection").
- CodeLens above functions — Explain · Test · Refactor (off by
default; flip
lime.codeLens.enabled).
- Source Control group "Edited by Lime" tracking files the agent
touched in the current session, with one-click diff vs
HEAD.
- Inline completions via a fast single-shot bridge RPC (off by
default).
Copilot Chat integration
@lime chat participant in the built-in VS Code Chat panel
(off by default; requires GitHub Copilot Chat).
- Read-only Lime tools (
lime_grep, lime_glob, lime_read,
lime_lsp) registered as vscode.lm tools so other Copilot agents
can call them.
MCP
- Lime's configured MCP servers are surfaced to VS Code via the
McpServerDefinitionProvider API — Copilot Chat sees the same
catalog without duplicating .vscode/mcp.json.
IDE companion (terminal users)
- Per-window WebSocket server, lockfile-discovered by the
lime CLI.
- Bearer-token gated upgrade, localhost-only.
- The CLI delegates diff review, selection access, and diagnostics to
VS Code via the registered MCP tools.
Requirements
- VS Code 1.95 or newer.
- A local
lime binary (the extension does not bundle one). The
walkthrough has install instructions; you can also point at any
custom path via lime.engine.path.
Settings
| Setting |
Default |
What it does |
lime.engine.path |
lime |
Path / PATH name of the engine binary |
lime.engine.extraArgs |
[] |
Extra args inserted before bridge |
lime.engine.cwd |
(empty) |
Working directory for the engine |
lime.codeLens.enabled |
false |
Show Explain/Test/Refactor lenses |
lime.editorActions.autoSend |
true |
Auto-send code-action prompts vs. drop into composer |
lime.inlineCompletions.enabled |
false |
Enable Lime as an inline completion provider |
lime.inlineCompletions.debounceMs |
300 |
Inline completion debounce window |
lime.chat.participantEnabled |
false |
Register @lime in Copilot Chat |
lime.mcp.shareWithEditor |
true |
Surface lime's MCP servers to VS Code |
lime.telemetry.enabled |
true |
Honor #telemetry.telemetryLevel# for Lime events |
lime.ide.companionEnabled |
true |
Expose the editor to a CLI lime over WS |
lime.diff.autoCloseOnAccept |
true |
Close the proposed-edit diff tab on save/reject |
lime.bridge.serverUrl |
(empty) |
WebSocket URL for VS Code for the Web |
Privacy & telemetry
Telemetry is double-gated: the global VS Code
#telemetry.telemetryLevel# setting and lime.telemetry.enabled must
both be on. Events carry counts, durations, status enums, and tool
families — never prompts, file contents, paths, session IDs, model
IDs, or tool arguments / outputs.
Open the Lime output channel to see exactly what would be sent.
Trust model
The extension declares limited support for both untrusted and virtual
workspaces:
- In an untrusted workspace Lime still works, but
lime.ide.lockfileDir
is restricted because it can change where the companion publishes its
lockfile.
- In a virtual workspace the companion is disabled (it requires a
local CLI process).
Edits and shell commands run through the engine and are gated by the
permission prompt; nothing escapes the agent loop unconfirmed.
Support
Use the Q&A tab on this extension's Marketplace page for questions
and feedback.
License
MIT — see the bundled LICENSE file.