VixlVixl
Docs
Changelog
GitHub
Docs
Changelog
GitHub
  • Get Started

    • Overview
    • Philosophy
    • Installation
    • Set up providers and models
    • Add a project
    • Create a project group
    • Your first chat
  • Concepts

    • How Vixl works
    • Chat modes
    • Permissions and approvals
    • Projects and home chats
    • Models and roles
    • Context
    • Code graphs
    • The .vixl directory
  • Using Vixl

    • Manage chats
    • Queue and stop messages
    • Review and restore changes
    • Compact and hand off long chats
    • Export a transcript
    • Work with plans
    • Orchestrate sub-agents
    • Best practices
    • Use the workbench
    • Shortcuts and the command palette
  • Customize

    • Providers
    • Models
    • MCP servers
    • Skills
    • Custom agents
    • Rules and AGENTS.md
    • Language servers
    • Appearance
    • Permission settings
  • Reference

    • settings.json
    • mcp.json
    • Custom agent frontmatter
    • SKILL.md format
    • Keyboard shortcuts
    • Chat statuses
    • .vixl layout
    • Managed components
  • Resources

    • Troubleshooting
    • FAQ
    • Privacy
    • Comparison
    • Roadmap
    • Brand and press
    • Changelog

Language servers

Language servers power hover, completion, and diagnostics in the workbench editor, and they back the agent's lsp and diagnostics tools. Settings > LSP is personal: enable/disable and install state live in ~/.vixl/lsp.json, auto-download in settings.json (lsp.autoDownload, default on). A project folder cannot override lsp.*. Language servers require the desktop app.

Editor tab with the language servers menu open, listing TypeScript, Vue, Markdown, and a config diagnostic

Which languages

Vixl can download servers for TypeScript / JavaScript, JSON, YAML, Markdown, Vue / Nuxt, Python, Rust, Go, Bash, HTML, CSS, Tailwind CSS, Svelte, Astro, Prisma, GraphQL, Dockerfile, Lua, C / C++, Terraform, TOML, Zig, PHP, Kotlin, XML, Postgres, Clojure, and Java.

These catalog rows are not downloaded. They use a binary already on PATH: Deno, Ruby, C# (csharp-ls), Swift, Elixir, Haskell, OCaml, Dart, Gleam, Nix, R, and Scala.

ESLint, Oxlint, and Biome are project-local. Vixl does not install them. They need workspace trust for the active project.

Vue / Nuxt also installs a TypeScript hybrid helper, shown as TypeScript (Vue / Nuxt Hybrid): an install-only row with no disable toggle.

Package names, versions, and download sources are on Managed components.

Download

When you activate a project, Vixl prefetches the default set (TypeScript / JavaScript, JSON, YAML, Markdown) if lsp.autoDownload is on. Settings > LSP has the same action. Turn auto-download off for airgapped machines.

You can still install or uninstall an individual downloadable server from its row. Uninstall applies to managed installs only.

Where they are stored

Install and disable state: personal ~/.vixl/lsp.json (see .vixl layout). Managed downloads: ~/.vixl/lsp/<server-id>/<version>/. PATH toolchains are not copied there.

Use your own

Resolution order for a server: a personal absolute command in lsp.json, then the managed download, then an allowlisted basename on PATH, then (if the workspace is trusted) a project-relative path or node_modules/.bin.

To prefer a binary you installed:

  • Put an allowlisted name on PATH, and uninstall the managed copy if one is present (managed wins over PATH).
  • Or set command in lsp.json to an absolute path.

To add a language that is not in the catalog, add an id in lsp.json with command (argv array) and extensions. The program must be an absolute path or an allowlisted basename. Project-relative commands and node_modules/.bin require workspace trust. There is no Settings control to add a custom server; edit the file.

For toolchain rows (Deno, Ruby, and the rest above), install that toolchain so the binary is on PATH. Vixl will not download it.

What the agent uses

The workbench uses language servers for hover, completion, and diagnostics. The agent calls lsp for go-to-definition, find-references, hover, document symbols, workspace symbols, and per-file diagnostics, and diagnostics for file or workspace issue summaries. Prefer those over grep when you need precise symbols.

See Use the workbench for the editor status chip, and Managed components for upstream sources.

Edit this page
Last Updated: 10/6/26, 8:58 PM
Prev
Rules and AGENTS.md
Next
Appearance