Tach
Shares rank 12 of 14 linters by recommenders
Free Python tool for enforcing import boundaries and architecture rules across a codebase, especially larger-scale interactions between modules.
Free Python tool for enforcing import boundaries and architecture rules across a codebase, especially larger-scale interactions between modules.
5 people gave an opinion
- recommend it
- 5
- criticize it
- 0
- approval share
- 100%
Recommended in 4 of 13 months
- November 2025: not recommended
- December 2025: not recommended
- January 2026: recommended
- February 2026: not recommended
- March 2026: not recommended
- April 2026: not recommended
- May 2026: recommended
- June 2026: not recommended
- July 2026: recommended
- August 2026: not recommended
- September 2026: recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 5 people recommend itNeeds 10 or more, not met.
- Nobody criticizes itNeeds 2 to 1 or better, met.
- Recommended in 4 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Enforces module import boundaries
“pretty handy for specifying and enforcing those larger-scale interactions”
Comment from 12 May 2026 in “If AI Writes Your Code, Why Use Python?” “architectural things like import boundaries (using `tach`)”
Comment from 6 Jul 2026 in “Does Code Cleanliness Affect Coding Agents?”
What people warn about
Each mark is one comment
Suggests rules without statistical evidence
“just does not gates each rule on statistical evidence before suggesting”
Comment from 8 Sep 2026 in “Show HN: Archprint, infer architecture lint rules from your repo's import graph”
Other linters people recommend
The four most recommended other linters, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Ruff | 115 | 16 | 88% | 11 | — | Approved |
| Clippy (Rust linter) | 58 | 31 | 65% | 12 | — | — |
| ESLint | 32 | 22 | 59% | 11 | — | — |
| Biome | 23 | 5 | 82% | 10 | — | Approved |
| TachThis page | 5 | 0 | 100% | 4 | — | — |
What people said
All 5 comments that mention it, newest first. Each links to the original comment.
“just does not gates each rule on statistical evidence before suggesting”
“architectural things like import boundaries (using `tach`)”
“it would be almost completely unnecessary if python just had actual private methods/classes/properties”
“pretty handy for specifying and enforcing those larger-scale interactions”
“I've recently started to use Tach to try to combat this.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.