LogoLogo
SlackLogin
  • Overview
    • Welcome
  • Setup & Configuration
    • Connecting to Trunk
    • Managing Your Organization
      • GitHub App Permissions
  • Integration with Slack
  • Flaky Tests
    • Overview
    • Get Started
      • Test Frameworks
        • Android
        • Bazel
        • Behave
        • cargo-nextest
        • Cypress
        • Dart Test
        • Go
        • GoogleTest
        • Gradle
        • Jasmine
        • Jest
        • Karma
        • Kotest
        • Maven
        • minitest
        • Mocha
        • Nightwatch
        • NUnit
        • Pest
        • PHPUnit
        • Playwright
        • Pytest
        • Robot Framework
        • RSpec
          • RSpec (Manual Uploads)
        • Swift Testing
        • Vitest
        • XCTest
        • Other Test Frameworks
      • CI Providers
        • Azure DevOps Pipelines
        • BitBucket Pipelines
        • Buildkite
        • CircleCI
        • Drone CI
        • GitHub Actions
        • GitLab
        • Jenkins
        • Semaphore CI
        • TeamCity
        • Travis CI
        • Other CI Providers
    • Dashboard
    • Flaky Test Detection
    • Quarantining
    • PR Comments
    • Ticketing Integrations
      • Jira Integration
      • Linear Integration
      • Other Ticketing Platforms
    • Webhooks
      • Slack Integration
      • Microsoft Teams Integration
      • GitHub Issues Integration
      • Linear Integration
    • Uploader CLI Reference
  • AI DevOps Agent (beta)
    • Overview
  • Merge Queue
    • Overview
    • How does it work?
    • Setup
      • Quick Start
      • Settings
      • Integration for Slack
    • Concepts and Optimizations
      • Predictive Testing
      • Optimistic Merging
      • Pending Failure Depth
      • Anti-Flake Protection
      • Batching
      • Parallel Queues
        • Bazel
        • Nx
        • API
      • FAQ
    • Priority
    • Managing Merge Queue
      • Using the Merge UI
      • Metrics
      • Command Line
    • Webhooks
    • Reference
  • Code Quality
    • Overview
    • Why Metalinters?
      • How does it work?
      • Why Code Quality?
    • Setup & Installation
      • Initialize Trunk
      • Local Linting
      • Linting in CI
      • Nightly Report (Deprecated)
      • OpenAI Codex Support
    • IDE Integration
      • VSCode
      • Neovim
      • GitHub Codespaces
    • Linters
      • Supported Linters
        • Actionlint
        • Ansible-lint
        • Autopep8
        • Bandit
        • Biome
        • Black
        • Brakeman
        • buf
        • Buildifier
        • cfnlint
        • Checkov
        • circleci
        • ClangFormat
        • clang-tidy
        • Clippy
        • cmake-format
        • codespell
        • cspell
        • cue-fmt
        • dart
        • deno
        • Detekt
        • djlint
        • dotenv-linter
        • dotnet-format
        • dustilock
        • ESLint
        • Flake8
        • git-diff-check
        • Gitleaks
        • Gofmt
        • gofumpt
        • goimports
        • gokart
        • golangci-lint
        • golines
        • google-java-format
        • graphql-schema-linter
        • hadolint
        • haml-lint
        • isort
        • iwyu
        • ktlint
        • kube-linter
        • markdown-link-check
        • markdown-table-prettify
        • Markdownlint
        • markdownlint-cli2
        • mypy
        • nancy
        • nixpkgs-fmt
        • opa
        • OSV-Scanner
        • Oxipng
        • perlcritic
        • perltidy
        • php-cs-fixer
        • phpstan
        • pmd
        • pragma-once
        • pre-commit-hooks
        • Prettier
        • prisma
        • psscriptanalyzer
        • Pylint
        • pyright
        • regal
        • remark-lint
        • renovate
        • rome
        • rubocop
        • Ruff
        • rufo
        • rustfmt
        • scalafmt
        • semgrep
        • ShellCheck
        • shfmt
        • sort-package-json
        • sourcery
        • sql-formatter
        • SQLFluff
        • sqlfmt
        • squawk
        • standardrb
        • stringslint
        • stylelint
        • stylua
        • SVGO
        • swiftformat
        • swiftlint
        • taplo
        • Terraform
        • terragrunt
        • terrascan
        • TFLint
        • tfsec
        • tofu
        • Trivy
        • Trufflehog
        • txtpbfmt
        • vale
        • Yamllint
        • yapf
      • Run Linters
      • Manage Linters
      • Configure Linters
      • Ignoring Issues and Files
      • Custom Linters
      • Shared Configs
      • Upgrades
    • Debugging
    • Licensing
  • CLI & API References
    • CLI Reference
      • Install
      • Getting Started
        • Code Quality
        • Merge Queue
        • Flaky Tests
        • Tools
        • Actions
          • Git Hooks
        • Announce
      • Compatibility
      • Caching
      • Commands Reference
        • Code Quality
        • Actions
        • Merge
      • Configuration
        • Plugins
          • Share Config Between Codebases
          • Exporting Linter Configs
        • Runtimes
        • Tools
        • Lint
          • Definitions
          • Commands
          • Output
          • Output Parsing
          • Files and Caching
          • Dependencies
          • Auto-Enable
        • Actions
          • Notifications
          • Logging and Troubleshooting
        • Merge
        • Telemetry
        • Per User Overrides
    • API Reference
      • Flaky Tests
      • Merge Queue
      • Webhooks Reference
  • Pricing & Security
    • Security
  • Billing
  • Community & Support
  • Links
    • Open App
    • Slack Community
    • Changelog
    • Feature Requests
On this page
  • Plans
  • Calculating User Counts
  • Calculating an Invoice
  • Editing Payment Details
  • Cancelling a Plan
  • A Note on Security
Edit on GitHub

Billing

Trunk Subscription Plans

Plans

Free Plans

Trunk offers a free tier for small teams and open-source projects to experiment with each of our features. You can use Trunk at no cost if:

  • You have 5 or fewer monthly active committers on private repositories, and

  • Your monthly test span usage is under the greater of 5 million or 1 million per private committer.

Public repositories are always free for up to 5 million test spans per month.

If you exceed these limits, you'll be prompted to upgrade based on the number of private committers and additional test span usage.

Similar to calculating user counts, our free tier limits are calculated based on a 30-day rolling window.

Feature
Metric
Free Tier Limit

All

Users

Up to 5 private repo committers; unlimited on public repos

Flaky Tests

Number of

5 committers and 5M test spans per month

Merge Queue

PRs merged per month

Unlimited usage; pricing begins if >5 private repo committers

Code Quality

Quality & security metrics

Unlimited usage

Data backfilling

Up to 30 days

Team Plans

Trunk Team Plans offers a monthly subscription plan using a per-seat model. At the end of every billing period, we calculate the number of users using Trunk and update the next month’s invoice to reflect the latest user count. Each seat has access to all of Trunk's features.

Feature
Metric
Limits

Code Quality

Quality & security metrics

Unlimited

Merge Queue

PRs merged per month

Unlimited

Flaky Tests

Number of

1 million test spans per seat per month.

$3 for each additional 1 million test spans.

Enterprise Plans

Trunk Enterprise offers powerful admin controls, dedicated support, access to custom billing or terms, and features like SSO. If your team is interested in an enterprise plan, please contact sales@trunk.io.

Trials

You and your team can trial Trunk before signing up for an Enterprise or Team plan. To try Trunk, please contact sales@trunk.io. To extend or cancel the trial, please contact sales@trunk.io.

Calculating User Counts

A user is a non-bot user who has made a commit to a private repo with Trunk enabled in the last 30 days. Specifically, we look at their username; if someone changes their username on Git, we would consider that a separate user. We do not count contributions to public (open source) repos. Contributor counts are displayed on Settings > Billing.

Trunk requires the Trunk GitHub App to be installed in your repo to count seats.

For example, consider Alice, Bob, and Charlie are all in the same organization, which owns two private repos: abc/repo1 and abc/repo2. Given the following timeline of events:

Day 1
Day 15
Day 22

Alice commits code to abc/repo1.

Bob commits code to abc/repo2.

Charlie commits code to abc/repo1.

On Day 1, the user count would be one: just Alice. On Day 15, the user count would be two: Alice and Bob, since the same organization owns both private repos. On Day 22, the user count would be three: Alice, Bob, and Charlie. On Day 30, the user count would be three. We consider days 1 through 30 (inclusive), which include Alice's, Bob's, and Charlie's commits. On Day 31, the user count would be two. We consider days 2 through 31 (inclusive), which only includes Bob's and Charlie's commits.

Calculating an Invoice

At the end of every billing cycle, Trunk calculates what the next invoice should be. Trunk determines feature usage and the number of seats used over the free tier usage limits . See our section on calculating user counts to determine how much we charge per feature usage.

Editing Payment Details

You can edit your payment details by navigating to Settings > Billing and clicking on the pencil icon on the credit card. Trunk accepts both credit card and ACH; if you require a different payment method, please contact us at sales@trunk.io.

Cancelling a Plan

You can cancel an active Trunk subscription by navigating to Settings > Billing and clicking the Cancel Subscription button. Your plan will transition back into the free tier; if you want to re-enable this plan, please contact us at sales@trunk.io.

Cancelling a Trunk Plan may result in a degraded product experience. Please contact us at sales@trunk.io to re-enable any canceled plan.

A Note on Security

Your security is important to us. We do not store your credit card information anywhere in our systems. Online payments are processed using Stripe, which is PCI-compliant in accordance with industry standards.

Last updated 10 days ago