InLine Ghosting
Repository-aware inline code completions for VS Code.
InLine Ghosting supports two completion lanes:
- Local FIM lane for automatic low-latency ghost text through loopback backends such as Ollama,
llama.cpp, or OpenAI-compatible local completion servers.
- Cloud/manual lane through Claude Code and other CLI backends when you explicitly configure or
invoke them.
The extension is independent and is not affiliated with Anthropic, GitHub, Microsoft, or Copilot.
Quick Start
For local automatic completions:
- Install a local backend such as Ollama or llama.cpp.
- Pull or run a base/FIM coding model, for example
qwen2.5-coder:3b-base.
- Set
wisp.backend to ollama, llamacpp, or auto.
- Keep
wisp.privacyMode at localOnly if source context must stay on loopback.
For Claude CLI manual/cloud completions:
- Install Claude Code:
npm install -g @anthropic-ai/claude-code.
- Run
claude once and sign in.
- Set
wisp.backend to claude.
- Use
cloudManual privacy mode unless you intentionally want automatic cloud requests.
Open the control panel with Ctrl+Alt+G (Cmd+Alt+G on macOS). Use Ctrl+Alt+O to stop or
resume automatic suggestions.
Current Capabilities
- FIM-capable local backend path.
- Backend/model selection and privacy mode controls.
- Prefix-compatible radix cache and continuation reuse.
- Recent edit context.
- Lifecycle accounting for request/display/accept/reject paths.
- Candidate ranking and cached candidate cycling with
Alt+] / Alt+[.
- Token-budgeted context sizing using a dependency-free estimator.
- Language-aware multiline decisions for JavaScript, TypeScript, and Python.
- Workspace trust and sensitive-path boundaries.
Still Experimental
The project is moving toward Copilot-like ghost text quality, but it does not claim exact Copilot
parity. True streaming display, backend-generated multi-candidate responses, exact tokenizer
budgets, partial-accept lifecycle hooks, parser-backed language adapters, and a larger comparative
evaluation corpus are still tracked in docs/upgrade/.
Privacy and Usage
Local loopback backends are preferred for automatic suggestions. Non-local automatic dispatch is
blocked unless wisp.privacyMode is set to cloudAutomatic.
Sensitive paths, dependency folders, VCS metadata, and common build outputs are excluded.
Repository memory remains in RAM unless persistence is explicitly enabled.
Development
npm install
npm test
npm run package