Skip to main content

Frequently Asked Questions

General

What is Batho?

Batho (Bidirectional AST Traversal & Hypergraph Orchestrator) is a deterministic code intelligence engine that transforms raw codebases into queryable, time-aware structured hypergraphs.

Is Batho free?

Yes. Batho is open-source under the Apache 2.0 license.

What languages does Batho support?

40+ languages via tree-sitter, including Python, TypeScript, JavaScript, Go, Java, Rust, C, C++, Ruby, PHP, Swift, Kotlin, and many more.

Installation & Setup

Do I need Python 3.11+?

Yes. Batho uses modern Python features and requires 3.11 or newer.

Can I use pip instead of uv?

Yes. pip install batho works, but uv is recommended for faster installs and dependency resolution.

Usage

How do I ignore files?

Batho respects .gitignore automatically. You can also create a .bathoignore file for Batho-specific exclusions.

What is the .ctn/ directory?

CTN stands for Content Tracking Network. It's where Batho stores all artifacts: indexes, snapshots, cache, and metrics.

Can I run Batho in CI?

Yes. Batho has zero code execution guarantees and is safe to run in CI pipelines. See the CI/CD integration docs.

Performance

How fast is indexing?

~1,000 files/sec with caching enabled. A 100K file repository indexes in about 3 minutes on modern hardware.

What is the cache hit rate?

95% on typical PR-sized changes. Only modified files are re-parsed.

Troubleshooting

My index is stale. What do I do?

Run batho patch --root . --scan to auto-detect and apply changes, or batho index --root . --full for a complete rebuild.

How do I clear the cache?

batho cache clear

Where are the logs?

By default, logs go to stderr. You can configure a log file in batho.yaml:

logging:
file: .ctn/batho.log