Skip to main content
tally is a production-grade Dockerfile and Containerfile linter + formatter that catches issues before they reach production. It uses the same parser behind docker buildx, understands modern BuildKit syntax, and can fix many issues automatically.

Installation

Install via Homebrew, mise, npm, Bun, uv, pip, RubyGems, WinGet, Go, or Docker.

Quick start

Lint your first Dockerfile in under a minute.

Rules reference

Rules across BuildKit, tally, Hadolint, and ShellCheck namespaces.

Configuration

Configure rules, output formats, and fix modes with .tally.toml.

Build invocations

Lint Dockerfiles through Bake targets and Compose services.

Why tally?

BuildKit-native

Understands heredocs, RUN --mount, COPY --link, and ADD --checksum. No lag behind new Docker features.

Fixes, not just findings

--fix applies safe, mechanical rewrites. --fix-unsafe unlocks AI-powered improvements via ACP.

Broad rule coverage

BuildKit checks, tally rules, Hadolint rules, and embedded ShellCheck for shell snippets.

CI & editor ready

Outputs text, JSON, SARIF, GitHub Actions annotations, and Markdown. VS Code and JetBrains extensions included.

Bake and Compose aware

Resolves build args, contexts, platforms, and target stages from orchestrator entrypoints.

No Docker daemon required

Pure static analysis. Registry-aware checks use a Podman-compatible client — no Docker Desktop needed.

Windows-container aware

Detects Windows containers, understands Windows paths, and semantically parses PowerShell RUN instructions, including syntax and analyzer diagnostics.

Get started

1

Install tally

Pick your preferred package manager:
2

Lint your Dockerfile

Run tally against your Dockerfile or recursively across your whole repo:
3

Apply auto-fixes

Fix safe, mechanical issues automatically:
4

Add a config file

Create .tally.toml to set project-wide defaults:
.tally.toml

Explore the docs

Auto-fix guide

Learn how safe fixes and AI-powered fixes work.

AI AutoFix via ACP

Use your own AI agent to apply complex Dockerfile improvements.

CI/CD integration

Add tally to GitHub Actions, GitLab CI, and other pipelines.

Build invocations

Lint the builds declared by Docker Buildx Bake and Docker Compose.

IDE integration

Real-time linting in VS Code, JetBrains, and any LSP editor.