Tally for VS Code
Lint, format, and auto-fix Dockerfiles and Containerfiles in VS Code using
tally: a BuildKit-native linter + formatter with safe auto-fixes (and optional AI-powered fixes).
What you get
- Inline diagnostics powered by BuildKit checks + Hadolint-compatible rules + tally's own modernization rules.
- Production-grade: 92% code coverage and 2,900+ Go tests executed in CI.
- Quick Fixes and a one-shot Fix All command to apply auto-fixable improvements.
- Formatter support (format on save) using the same engine as
tally lint --fix.
- Semantic highlighting for Dockerfile structure and embedded shell snippets via the tally LSP server.
- Config-aware: respects
.tally.toml / tally.toml discovery in your repo.
- No daemon: runs locally without Docker Desktop or a Docker daemon.
- Zero setup: Marketplace builds bundle the
tally binary for your platform (you can also bring your own).
Quick start
- Install the extension (
wharflab.tally).
- Open a
Dockerfile or Containerfile.
- Run
Tally: Fix all auto-fixable issues to apply safe fixes.
- Optional: run
Tally: Configure as default formatter for Dockerfile to enable format on save.
Commands
Tally: Fix all auto-fixable issues (tally.applyAllFixes): applies safe fixes. Set tally.fixUnsafe=true to also apply unsafe fixes.
Tally: Configure as default formatter for Dockerfile (tally.configureDefaultFormatterForDockerfile): writes workspace/user settings for
Dockerfile formatting on save.
Tally: Restart server (tally.restartServer)
Tally: Show output (tally.showOutput)
Tally: Show LSP trace (tally.showLspTrace)
Settings
tally.enable: enable/disable the language server.
tally.path: explicit paths to a tally executable (first existing path wins).
tally.importStrategy: where to resolve tally from (fromEnvironment or useBundled).
tally.configuration: inline configuration override (merges with .tally.toml / tally.toml).
tally.configurationPreference: how to merge editor settings with filesystem config (editorFirst, filesystemFirst, editorOnly).
tally.fixUnsafe: allow "Fix all" to apply unsafe fixes (includes AI AutoFix, if configured).
tally.trace.server: LSP protocol trace level (off, messages, verbose).
The extension enables editor.semanticHighlighting.enabled by default for the dockerfile language so the server-provided semantic tokens are shown
consistently across themes.
Python projects
If you install tally into a Python virtual environment (via pip install tally), the
extension can automatically discover the binary from the active environment. For the best
experience, install the
Python Environments
extension by Microsoft. When installed, tally will be resolved from whichever environment
you have selected for the current workspace, including custom-named venvs and conda
environments.
Without the Python Environments extension, the extension falls back to checking the
hardcoded .venv/ and venv/ directories in each workspace folder.
{
"[dockerfile]": {
"editor.defaultFormatter": "wharflab.tally",
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
"editor.codeActionsOnSave": {
"source.fixAll.tally": "explicit"
}
}
}
Learn more