Skip to content

mise lsp ​

Run the language server for mise config files over stdin/stdout

Editors start this command and exchange Language Server Protocol messages with it.

It serves mise.toml and the other config files mise loads (.mise.toml, mise.<env>.toml, mise.local.toml, mise/config.toml, and the files of a conf.d). It ignores every other file, including files that [task_config] includes lists, so it can be attached to the TOML language without touching Cargo.toml or pyproject.toml.

It offers:

  • diagnostics: TOML syntax errors, unknown keys with a suggestion, values of the wrong type, deprecated keys, task names no task defines (unknown-task), and dependency cycles (task-cycle)
  • completion of keys, including inside inline tables, and of values that have a fixed set
  • hover documentation for keys
  • for tools: completion of tool names under [tools] from the registry, and hover with the tool's description and backends
  • quick fixes that replace an unknown key or task name with the suggested one, and rewrite a deprecated key to its replacement when the schema names one
  • formatting, as mise fmt does
  • for tasks: completion of task names in depends, depends_post, wait_for and run = [{ task = "..." }] (and of templates in extends), hover with the task's description and command, go to definition, find references, and rename together with every reference in the file

Tasks come from the open file, the configs in the directories above it and the TOML files their [task_config] includes name.

A client that runs another TOML server beside this one can switch features off with initializationOptions: {"formatting": false, "hover": false, "completion": false, "definition": false, "references": false, "rename": false}.

The server only parses a config. It never renders templates or runs anything, so opening an untrusted file is safe.

A mise that predates this command runs a task named lsp instead, so a client that needs to know whether the command exists can check that mise help lsp prints Usage: mise lsp.

See https://mise.jdx.dev/ide-integration.html for editor configuration.

Flags ​

  • -h --help — Print help

Examples ​

Start the server; an editor's LSP configuration runs this command

mise lsp
MIT LicenseCopyright © 2026jdx.dev