Skip to content

LSP Server

The bifrost command no longer serves the Language Server Protocol (LSP). The language server is a separate program named bifrost-lsp. It comes from the BrokkAi/bifrost-lsp repository.

Bifrost buildbifrost --lsp
Released 0.12.0 and earlierServes LSP over stdio.
Built from later source, including development builds that still report version 0.12.0Prints the LSP server has moved out of this repository and exits with status 1.

bifrost --server lsp behaves the same way as bifrost --lsp. Until a bifrost-lsp release exists, you have two working options:

  • In VS Code or Cursor, install the published extension. It downloads its own Bifrost 0.11.5 binary. See VS Code LSP.
  • In another editor, start a released Bifrost 0.12.0 or earlier binary with bifrost --root <workspace-root> --lsp.

The Claude Code agent plugin registers an LSP server that runs bifrost --lsp. It works only with the plugin’s pinned release, Bifrost 0.12.0. See Claude Code.

Editors start the server as a child process and talk to it over stdin and stdout:

Terminal window
bifrost-lsp --root <workspace-root>

--root names the fallback workspace root. The VS Code extension passes the first workspace folder. It also appends the strings from its bifrost.extraArgs setting after --root. The extension runs bifrost-lsp --version to check a downloaded binary before it starts the server.

These are the only command-line arguments that the published sources show. The server’s full option list is not published yet.

The VS Code extension sets these variables when it starts bifrost-lsp. The bifrost CLI does not read them.

VariableValue the extension setsMeaning
BIFROST_LSP_DEBUG1 when bifrost.debug is on; otherwise the inherited value, or 0Log the start and end of every LSP request and notification.
BIFROST_LSP_SLOW_MSThe bifrost.slowRequestMs setting; default 2000Log requests and notifications that take at least this many milliseconds.
RUST_BACKTRACEThe inherited value, or 1Print a backtrace if the server panics.

The VS Code extension copies the server’s stderr to Output > Bifrost. In other editors, look for stderr in the editor’s language-server log.

The VS Code extension sends this object as the LSP initializationOptions. It sends the same object when the server requests the bifrost section through workspace/configuration.

FieldTypeMeaning
rootsarray of absolute pathsDirectories to index instead of the whole workspace. An empty array means the whole workspace.
excludearray of absolute pathsFiles or directories to leave out of indexing and lookups.
formatterCommandsarray of formatter rulesExternal formatters to run for document formatting. See VS Code LSP for the rule fields.
unrecognizedSymbolDiagnosticsbooleanReport symbols and members that Bifrost cannot resolve. Experimental. Default false.

The extension turns relative paths in its settings into absolute paths before it sends them. When you configure another editor, send absolute paths too.

Three version numbers are independent of each other:

VersionWhere it comes fromCurrent value in the bifrost-lsp source
Extension versionThe VS Code extension’s version0.12.0 (not published)
Server versionThe bifrost-lsp release tag, v<server>Preferred 0.1.0, minimum 0.1.0
Engine versionThe Bifrost analysis engine built into bifrost-lspThe extension accepts >=0.11.0 <1.0.0

When the server starts, it must identify itself in its initialize result:

{
"capabilities": {
"experimental": {
"bifrost": {
"protocolVersion": 1,
"engineVersion": "0.12.0"
}
}
}
}

protocolVersion must be 1. engineVersion must be a three-part version inside the extension’s engine range. If either value is missing, malformed, or out of range, the extension stops the server and shows the error in its status bar item and output channel. Other editors do not run this check.

Each bifrost-lsp release on GitHub will contain one archive and one SHA-256 file for each platform:

PlatformArchive
macOS (Intel and Apple silicon)bifrost-lsp-v<server>-universal-apple-darwin.tar.gz
Linux x64bifrost-lsp-v<server>-x86_64-unknown-linux-gnu.tar.gz
Linux arm64bifrost-lsp-v<server>-aarch64-unknown-linux-gnu.tar.gz
Windows x64bifrost-lsp-v<server>-x86_64-pc-windows-msvc.zip
Windows arm64bifrost-lsp-v<server>-aarch64-pc-windows-msvc.zip

The checksum file has the archive name plus .sha256. The archive contains a top-level directory with the archive’s base name and the bifrost-lsp executable (bifrost-lsp.exe on Windows) inside it.

Agents do not need the language server. Bifrost’s code intelligence for agents runs over the Model Context Protocol (MCP) from the bifrost command:

Terminal window
bifrost --root /path/to/project --mcp searchtools

See Claude Code and OpenCode for host setup, and Capabilities for what the tools answer. For terminal checks and scripts, use one-shot CLI tool mode.