fill-in-middle (fim) code completion with configurable generation time limits
Provides real-time inline code suggestions using the Fill-In-Middle pattern, where the LLM predicts code between cursor position and surrounding context. The extension sends the current file content with cursor position to a local llama.cpp server, which generates completions constrained by a configurable max generation time (preventing UI blocking). Suggestions appear as inline overlays in the editor and can be accepted via Tab, Shift+Tab for first line only, or Ctrl+Right for next word.
Unique: Uses Fill-In-Middle pattern with configurable generation time limits and smart context reuse mechanism (--cache-reuse 256) to support low-end hardware; predefined hardware-specific model presets (30B for >64GB VRAM down to 0.5B for CPU-only) eliminate manual tuning
vs alternatives: Faster than cloud-based completers (Copilot, Codeium) for latency-sensitive workflows because inference runs locally; more resource-efficient than Ollama-based setups due to llama.cpp's optimized server implementation and context caching
configurable context window with multi-file awareness
Dynamically constructs context for completions by combining the current file content with configurable window size around cursor position, plus optional chunks from other open/edited files. The extension maintains a smart context reuse cache to avoid redundant re-computation on low-end hardware. Context scope and cache reuse parameters are user-configurable via settings, allowing developers to trade off suggestion quality vs inference latency.
Unique: Implements smart context reuse caching (--cache-reuse 256) to avoid redundant re-computation on low-end hardware; combines current file + open files + clipboard in single context vector, with user-configurable window size and cache parameters for hardware-specific tuning
vs alternatives: More efficient than Copilot's cloud-based context management because caching happens locally and can be tuned per-machine; more flexible than Tabnine's fixed context window because scope is fully configurable
hardware-specific model presets with automatic parameter tuning
Provides predefined llama.cpp command configurations optimized for five hardware tiers: >64GB VRAM (Qwen2.5-Coder 30B), >16GB VRAM (7B), <16GB VRAM (3B), <8GB VRAM (1.5B), and CPU-only (0.5B or 1.5B). Each preset includes optimized batch size (-b, -ub), context size (--ctx-size), and cache reuse (--cache-reuse 256) parameters. Users select hardware tier via environment selection, and extension applies preset parameters automatically without manual tuning.
Unique: Five-tier hardware presets with Qwen2.5-Coder model variants (30B-0.5B) provide granular hardware-specific optimization; automatic parameter application eliminates manual llama.cpp CLI tuning; cache-reuse mechanism (--cache-reuse 256) specifically optimizes for low-end hardware
vs alternatives: More user-friendly than raw llama.cpp which requires manual parameter research; more granular than Ollama's single-model approach because presets support multiple model sizes per-task
model storage and caching with os-specific cache directories
Manages model file storage in OS-specific cache directories: ~/Library/Caches/llama.cpp/ (Mac OS), ~/.cache/llama.cpp (Linux), LOCALAPPDATA (Windows). Models are downloaded from Huggingface or user-provided paths and cached locally to avoid re-downloading. The extension maintains a model registry tracking available models and their locations. Cache directory location is OS-specific and not user-configurable.
Unique: OS-specific cache directories (~/Library/Caches on Mac, ~/.cache on Linux, LOCALAPPDATA on Windows) provide system integration; automatic model caching eliminates manual file management; model registry tracks available models and locations
vs alternatives: More integrated than manual model management; OS-standard cache directories vs Ollama's single models directory
plaintext and code file support with language-agnostic completion
Supports code completion and chat for multiple file types including JavaScript, TypeScript, Python, and plaintext. The extension sends file content to llama.cpp without language-specific preprocessing, allowing FIM models to handle language detection and completion. No explicit language detection or syntax-aware parsing documented; completion works uniformly across supported file types.
Unique: Language-agnostic completion using single FIM model across JavaScript, TypeScript, Python, and plaintext — no language-specific model selection required; Qwen2.5-Coder series trained on diverse languages enabling polyglot support
vs alternatives: Simpler than language-specific completion engines (e.g., Copilot's per-language models); more flexible than Tabnine which requires language selection
clipboard/yanked text context inclusion in completions
Includes clipboard or yanked text as part of the context sent to the LLM for completions and chat. This allows users to reference code snippets, documentation, or other text without manually copying into the file. Clipboard content is automatically detected and included in the context window alongside current file and open files.
Unique: Automatic clipboard inclusion in context without explicit user action; allows implicit reference to external code/documentation without copy-paste workflow
vs alternatives: More implicit than Copilot which requires explicit context selection; reduces friction vs manual copy-paste workflows
chat interface with local llm models
Provides a conversational chat UI accessible via the Explorer sidebar, allowing users to interact with selected chat models running on the local llama.cpp server. Chat context includes access to current file, open files, and clipboard content. The extension manages model selection per-task (completion vs chat vs embeddings) and supports both predefined models (Qwen2.5-Coder, gpt-oss 20B) and custom models via add/remove/export/import functionality.
Unique: Chat runs entirely locally on llama.cpp server with no cloud dependency; supports per-task model selection (completion vs chat vs embeddings) via environment concept, allowing users to run lightweight completion models alongside heavier chat models
vs alternatives: Maintains full data privacy compared to ChatGPT/Claude integrations; allows model switching per-task unlike Copilot Chat which uses single backend model
agentic coding workflows with autonomous task execution
Enables Llama Agent functionality for autonomous coding tasks, where the AI can decompose user requests into sub-tasks and execute them with access to MCP (Model Context Protocol) tools. The agent runs locally on the llama.cpp server and can invoke selected MCP tools from VS Code-installed MCP Servers. Documentation indicates support for local models (gpt-oss 20B recommended) but details are incomplete.
Unique: Integrates MCP (Model Context Protocol) tools directly into local agent execution; agent runs on llama.cpp server without cloud dependency; supports tool-calling models with schema-based function invocation
vs alternatives: Full local execution vs GitHub Copilot Workspace (cloud-based); MCP integration provides standardized tool protocol vs custom API integrations in other agents
+6 more capabilities