Type object
File match tach.toml
Schema URL https://catalog.lintel.tools/schemas/schemastore/tach/latest.json
Source https://raw.githubusercontent.com/gauge-sh/tach/refs/heads/main/public/tach-toml-schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Project-level configuration for the Tach CLI

Properties

modules object[]

List of module configurations

Default:
[]
interfaces object[]

List of interface configurations

Default:
[]
external object
1 nested properties
exclude string[]

List of external dependency names to ignore during checks

plugins object
1 nested properties
django object
1 nested properties
settings_module string

The settings module to use for Django

layers_explicit_depends_on boolean

When enabled, modules must explicitly declare dependencies on other layers using depends_on, even when those dependencies would be allowed by the layer hierarchy. Utility modules remain accessible without explicit declaration.

Default: false
layers string | object[]

List of layers in hierarchical order (highest to lowest). Each layer can be specified as a string (shorthand) or an object with name and optional closed property.

cache object
3 nested properties
backend string

Cache backend type (currently not configurable, 'local' only)

Default: "local"
Values: "local"
file_dependencies string[]

List of files that trigger cache invalidation

Default:
[]
env_dependencies string[]

List of environment variables that trigger cache invalidation

Default:
[]
rules object
4 nested properties
unused_ignore_directives string

How to handle unused ignore directives

Default: "error"
Values: "error" "warn" "off"
require_ignore_directive_reasons string

How to handle require ignore directive reasons

Default: "error"
Values: "error" "warn" "off"
unused_external_dependencies string

How to handle unused external dependencies

Default: "error"
Values: "error" "warn" "off"
local_imports string

How to handle imports that are not at the global scope (e.g. within a function, class, or control structure)

Default: "error"
Values: "error" "warn" "off"
exclude string[]

List of paths to exclude from the project; relative to the project root

source_roots string[]

Root directories of Python source code; relative to the project root

exact boolean

Disallow listed dependencies that are not used in the project

Default: false
respect_gitignore boolean | string

Exclude files and directories matched by '.gitignore'

Default: true
root_module string

How to treat code outside of explicitly listed modules

ignore_type_checking_imports boolean

Ignore type-checking imports when checking module boundaries

Default: true
forbid_circular_dependencies boolean

Cause tach check to fail if any circular dependencies are detected

Default: false