{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/4"},{"label":"Quality Assurance","url":"https://skillfed.io/packages/category/software-development-quality-assurance"}],"enrichment":{"capability":"Tach enforces module boundaries, dependency rules, and public interfaces in Python projects, detecting violations like undeclared imports, cross-module calls outside public APIs, and circular dependencies.","skillfed_tags":["architecture-enforcement","modular-monolith","dependency-management"],"use_cases":["Enforce layered architecture in a monolith by preventing lower layers from importing upper layers","Detect and prevent circular dependencies between modules before they cause import errors","Define and validate public APIs for modules so internal implementation details stay private","Visualize your project's dependency graph with `tach show` to understand coupling","Integrate module boundary checks into CI/CD to catch architectural violations before merge","Incrementally adopt modular structure in legacy codebases by checking only new or refactored modules"],"what_it_does":"Tach is a Python tool written in Rust that enforces architectural boundaries within a codebase by validating module dependencies, public interfaces, and preventing circular imports. It works by reading a configuration file (tach.toml) where you define module boundaries and their allowed dependencies, then checks your code to ensure imports respect those rules.\n\nYou run `tach init` to interactively mark module boundaries in your project, then `tach check` to validate compliance. It integrates with CI/CD pipelines, pre-commit hooks, and IDEs, and provides visualization and reporting commands. The tool has no runtime impact\u2014it only runs during development and testing\u2014and can be adopted incrementally, allowing you to enforce rules on some modules while leaving others unchecked.","worth_installing":"Yes, if you maintain a Python monolith or multi-package project and want to prevent architectural drift. The tool is actively maintained, has no runtime overhead, and integrates cleanly into existing workflows. Medium install friction is offset by broad platform support and pre-built wheels. No known vulnerabilities. Start with `tach init` to evaluate fit for your codebase."},"id":"tach","links":{"html":"https://skillfed.io/packages/tach","md":"https://skillfed.io/packages/tach.md","pypi":"https://pypi.org/project/tach/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-05-12","license_spdx":null,"license_treatment":"permissive","name":"tach","python_support":"supports_current","summary":"A Python tool to maintain a modular package architecture."},"popularity":{"monthly_downloads":4988216,"position":2185,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"0.35.0"}
