tally provides real-time diagnostics in your editor via a built-in Language Server Protocol (LSP) server. Official extensions are available for VS Code and JetBrains IDEs. Any other editor that supports LSP can connect usingDocumentation Index
Fetch the complete documentation index at: https://tally.wharflab.com/llms.txt
Use this file to discover all available pages before exploring further.
tally lsp --stdio.
VS Code
Install the official
wharflab.tally extension from the Visual Studio Marketplace.JetBrains
Install the Tally plugin from JetBrains Marketplace (plugin ID 30255-tally).
Generic LSP
Run
tally lsp --stdio to connect any LSP-compatible editor.VS Code
Install the official extension from the Visual Studio Marketplace: Extension ID:wharflab.tally
Install from Marketplace
The extension provides:
- Real-time linting diagnostics as you type.
- Inline violation messages with rule codes and doc links.
- Squiggles and Problems panel integration.
- Picks up
.tally.tomlconfig files automatically from your workspace.
tally lsp --stdio under the hood. If tally is not on your PATH, the extension will use npx -y tally-cli lsp --stdio as a
fallback.
JetBrains IDEs
Install the official plugin from JetBrains Marketplace: Plugin ID:30255-tally
Install from JetBrains Marketplace
The plugin works in all IntelliJ-based IDEs including IntelliJ IDEA, GoLand, PyCharm, WebStorm, and Rider.
Invocation-aware diagnostics
By default, the LSP server lints the Dockerfile document you are editing. If your workspace builds that Dockerfile through Bake or Compose, configure invocation entrypoints so diagnostics use the same build args, target stage, platform, and build context as the real build. User-facing setting:tally/bake:api or tally/compose:worker.
If a code action request spans diagnostics from more than one invocation context, mutating quick fixes and fix-all actions are hidden. This prevents
one edit from being applied as if it were valid for every target or service.
See Build invocations for CLI behavior and orchestrator limitations.
Generic LSP
Any editor that supports the Language Server Protocol can use tally’s built-in LSP server over stdio.Start the LSP server
If tally is installed globally:Editor configuration examples
The exact configuration depends on your editor’s LSP client. The general pattern is to configure your LSP client to runtally lsp --stdio for
Dockerfile files (dockerfile language ID).
tally’s LSP server uses cascading config discovery — it finds the nearest
.tally.toml relative to each Dockerfile being edited, the same way the CLI does.