About Tach
Tach is a tool for Python projects that visualizes and enforces dependencies between modules. It is inspired by the modular monolith architecture, where a codebase is split into modules with defined boundaries, and it is written in Rust for speed. It is released under the MIT license and installs with pip.
It can enforce three kinds of rules: imports must come from declared dependencies, calls across modules must use the public interface, and the dependency graph must contain no cycles. Setup is guided by an interactive file-tree interface in which you mark module boundaries with the keyboard. The project says it can be adopted incrementally, has no runtime impact because it analyzes code statically, and works with existing systems.
Tach is aimed at Python teams and monorepos that want to keep architecture from eroding, and it can run as a check in CI. Documentation is hosted at docs.gauge.sh, and the topics mention static code analysis, code quality, and dependency management.
Key features
- Enforces declared module dependencies
- Checks that cross-module calls use public interfaces
- Detects cycles in the dependency graph
- Dependency visualization
- Interactive setup for module boundaries
- No runtime impact, adoptable incrementally
Good fit for
- →Keeping a Python monolith modular
- →Failing CI builds on architecture violations
- Tags
- python
- dependencies
- architecture
- static-analysis
- monorepo
- code-quality
- ci
- rust
Tach: questions and answers
- What is Tach used for?
- Tach is a Python tool written in Rust that visualizes and enforces module dependencies and public interfaces, supporting a modular monolith architecture. It is a good fit for keeping a Python monolith modular and failing CI builds on architecture violations.
- Is Tach open source?
- Yes. Tach is open source under the MIT licence. Its source code is on GitHub at tach-org/tach and is written mainly in Rust.
- Is Tach free?
- Yes. Tach is open source, so the software itself is free to use.
- What are some alternatives to Tach?
- Similar open-source tools in the Developer Tools category include golangci-lint, Revive and PhpMetrics. SaaS products in the same category include Qodana, Codacy and Debtdrone.
- Is Tach actively maintained?
- Yes. The most recent commit to Tach was on 1 October 2026, and the latest release is v0.35.2, published on 1 October 2026. The project has 2.8k stars on GitHub.
Open-source alternatives to Tach
See all
golangci-lint
Developer Tools
Fast linters runner for Go
GPL-3.0★ 19k
Revive
Developer Tools
🔥 Fast, strict, configurable, extensible, and beautiful linter for Go
MIT★ 5.6k
PhpMetrics
Developer Tools
Beautiful and understandable static analysis tool for PHP
MIT★ 2.6kPHP Insights
Developer Tools
🔰 Instant PHP quality checks from your console
MIT★ 5.6k
F-Droid Server
Developer Tools
F-Droid server and build tools.
AGPL-3.0★ 785
crate2nix
Developer Tools
crate2nix builds your cargo-based rust project crate-by-crate with nix
Apache-2.0★ 524
SaaS alternatives to Tach
See all
Qodana
Developer Tools
JetBrains static analysis tool that brings IDE inspections to CI pipelines
SaaS
Codacy
Developer Tools
Automated code quality and security analysis for pull requests
SaaS
Debtdrone
Developer Tools
Scans codebases for technical debt and opens AI-generated pull requests to fix it
SaaS
DeepSource
Developer Tools
Static analysis and code health platform with auto-fix suggestions
SaaS
SonarQube Cloud
Developer Tools
Hosted code quality and security analysis for pull requests, from Sonar
SaaS
act101
Developer Tools
Codebase quality and refactoring toolkit for coding agents, with code porting and verification
SaaS

