DEV.co
AI Coding Agents · huggingface

llm-ls

llm-ls is a Language Server Protocol (LSP) server that integrates large language models into code editors for intelligent code completion. It works with multiple LLM backends (Hugging Face, OpenAI, Ollama, llama.cpp) and currently supports Neovim, VS Code, and IntelliJ IDEs.

Source: GitHub — github.com/huggingface/llm-ls
878
GitHub stars
71
Forks
Rust
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryhuggingface/llm-ls
Ownerhuggingface
Primary languageRust
LicenseApache-2.0 — OSI-approved
Stars878
Forks71
Open issues27
Latest release0.5.3 (2024-05-24)
Last updated2026-05-26
Sourcehttps://github.com/huggingface/llm-ls

What llm-ls is

A Rust-based LSP server that tokenizes code context, uses fill-in-the-middle prompting, and parses AST to determine completion type (single-line, multi-line, or none). It supports Hugging Face Inference API, text-generation-inference, Ollama, and OpenAI-compatible endpoints with local telemetry logging.

Quickstart

Get the llm-ls source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/huggingface/llm-ls.gitcd llm-ls# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Self-hosted development environments

Organizations wanting LLM-powered code completion without sending code to third-party APIs can self-host with Ollama or llama.cpp backends, keeping all context local.

Multi-IDE extension platform

Teams standardizing on LSP can build lightweight IDE extensions on top of llm-ls rather than reimplementing LLM integration logic for each editor.

Fine-tuned or custom model deployment

Projects running proprietary or retrained models can leverage OpenAI-compatible API support to integrate their own inference infrastructure without modifying the LSP server.

Implementation considerations

  • Requires a running LLM inference endpoint (Ollama, llama.cpp server, Hugging Face, or OpenAI). Evaluate latency and resource constraints of your chosen backend.
  • AST parsing is language-dependent; verify your primary development language is properly supported for completion accuracy.
  • Telemetry is logged locally to ~/.cache/llm_ls/llm-ls.log; plan log rotation and retention policies to avoid disk space issues.
  • Context window management is handled by tokenization, but operators must understand token limits of their chosen model and tune prefix/suffix ratio.
  • Multiple IDE extensions need separate installation and configuration; consider standardizing on one primary editor for rollout.

When to avoid it — and what to weigh

  • Requires production-grade stability — README explicitly states 'expect things to be broken' and project is marked work-in-progress. Not recommended for mission-critical workflows without thorough validation.
  • Need built-in model management — llm-ls is a LSP server only; it assumes you already have a model endpoint running. It does not handle model downloading, versioning, or lifecycle management.
  • Require enterprise support or SLA — This is a community-driven open-source project with no commercial backing. No guaranteed response times, feature roadmap commitments, or vendor support.
  • JupyterLab integration is critical — JupyterCoder extension is not yet implemented (marked incomplete in compatible extensions list), so Jupyter notebook code completion is not currently supported.

License & commercial use

Apache License 2.0 (Apache-2.0) permits commercial use, modification, and distribution under standard Apache terms (attribution, license inclusion, state changes).

Apache-2.0 is a permissive OSI-approved license that explicitly allows commercial use and derivative works. However, verify that any LLM backend you integrate (OpenAI, Hugging Face, custom model) has compatible commercial terms, as those are separate dependencies outside llm-ls's license scope.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityModerate
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Local telemetry logging only (not exported by default). No built-in encryption of cached logs. Depends on security posture of: (1) chosen LLM endpoint (network isolation, API key management), (2) IDE extension (code context sent to LSP server), (3) local file permissions on ~/.cache/llm_ls/. Requires security review before use with sensitive codebases or regulated data.

Alternatives to consider

GitHub Copilot

Mature, production-grade, supported in major IDEs, cloud-hosted. Trade-off: closed-source, no self-hosted option, code telemetry to GitHub, licensing costs.

Tabnine

Multi-backend LSP server with enterprise support and stricter privacy controls. Trade-off: proprietary SaaS option, less community-driven, different model selection.

Continue.dev

Open-source IDE plugin with LLM integration and local model support. Trade-off: plugin-based architecture (not LSP), different backend abstraction model.

Software development agency

Build on llm-ls with DEV.co software developers

Evaluate llm-ls for your development environment. Verify backend compatibility, test with your IDE, and plan for endpoint management and security.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

llm-ls FAQ

Can I use llm-ls without sending code to OpenAI?
Yes. Use Ollama, llama.cpp with local models, or self-hosted text-generation-inference backend. All inference happens at your chosen endpoint; llm-ls only sends tokenized context.
What happens if the LLM endpoint goes down?
LSP server will likely timeout or error; IDE completion will fail or block. No built-in fallback or retry logic documented. Endpoint availability is your responsibility.
Does llm-ls track or export my code?
No. Telemetry is logged locally only, not exported anywhere. User agent is sent when querying the model API endpoint, nothing more. Review the endpoint's privacy policy separately.
Is this ready for production?
No. README explicitly warns 'expect things to be broken.' Treat as alpha/beta. Use in production only after extensive testing and acceptance of instability risk.

Custom software development services

Need help beyond evaluating llm-ls? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and ai coding agents integrations — and maintain them long-term.

Ready to integrate intelligent code completion?

Evaluate llm-ls for your development environment. Verify backend compatibility, test with your IDE, and plan for endpoint management and security.