- Category
- Developer Tools
- Rank
- No. 517Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- ggml-org
- GitHub
- 2.2k stars
- Latest release
- v0.1.0
- Date
About
Vim plugin for LLM-assisted code and text completion — powered by llama.cpp under the hood, no cloud dependency.
What it does
llama.vim watches editing activity, gathers nearby and previously handled text, then presents inline continuations. You can accept a whole suggestion, one line, or one word. It also rewrites selected text from instructions and exposes timing and context statistics.
Why it's ranked here
This is a focused editor extension with unusually explicit control over context, generation limits, caching, and key bindings. Its ring of text chunks can carry useful material across buffers. The narrow scope and required server setup make it best for users who value control over convenience.
What's good
Completion fits normal editing habits: suggestions can appear during insert mode, while manual triggering remains available. Multiple cached candidates can be cycled. Context can include nearby lines, open or edited buffers, and yanked text. A debug pane and inline performance figures make latency and context use visible.
Tradeoffs
You must install curl, run a separate llama.cpp server, and supply compatible completion and instruction models. Hardware and model choice directly shape practical latency and context capacity. One documented prompt-time limit is not yet supported. Default key bindings may also conflict with established editor mappings.
How to use it well
It suits Vim or Neovim users willing to operate and tune their own inference server. Start with automatic suggestions, then adjust context size, prediction time, and acceptance bindings around actual latency. It does not replace model acquisition, server administration, or broader IDE tooling.
Technical notes+
plugin/llama.vim contains a single call to llama#init(). autoload/llama.vim holds configuration, endpoint handling, completion caching, ring-context behavior, mappings, and enablement state; the supplied excerpt is truncated. Its defaults target http://127.0.0.1:8012/infill and http://127.0.0.1:8012/v1/chat/completions, maintain an LRU-ordered completion cache, and retain multiple responses per cache key when configured. autoload/llama_debug.vim implements a timestamped in-memory log rendered into a scratch split through deferred timer-based flushes. doc/llama.txt documents commands, requirements, server tuning, mappings, and configuration, while doc/tags supplies help tags.
Observed
- License
- MIT License
- Primary language
- Vim script
- Editor support
- Neovim or Vim 9.1 and newer
- Installation surface
- vim-plug, Vundle, lazy.nvim, or direct Git clone
- Runtime requirements
- curl, a running llama.cpp server, and compatible completion and instruction models
- Interface
- Vim and Neovim plugin using HTTP completion and chat-completion endpoints
- Platform guidance
- llama.cpp installation is documented for macOS, Windows, and other operating systems
Read from README.md, LICENSE, doc/tags, doc/llama.txt, plugin/llama.vim, autoload/llama.vim, autoload/llama_debug.vim, .pi/gg/SYSTEM.md.
What it can do
Complete code snippets
Partial code in Vim editor → Completed code suggestions
Complete text passages
Partial text in Vim editor → Text completion suggestions
Generate code from comments
Code comments describing functionality → Generated code implementation
Suggest variable and function names
Code context and partial identifiers → Relevant naming suggestions
Auto-complete programming syntax
Programming language context and partial syntax → Syntactically correct code completions
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
