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 along with default ignore patterns for common build artifacts and dependencies.

What is the .batho/ directory?​

It's the content directory where Batho stores all artifacts: the Arrow IPC database bundle, msgpack AST cache, and telemetry metrics logs.

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 AST caching enabled. A 100K file repository indexes in about 3 minutes on modern hardware.

What is the cache hit rate?​

95% on typical pull request changes. Only modified files are re-parsed.

Troubleshooting​

My index is stale. What do I do?​

Run batho patch --root . to auto-detect and apply incremental updates, or batho build --root . --full for a complete rebuild.

How do I clear the cache?​

Caches can be sweeped or compacted using:

# Deletes old runs and vacuums the database
batho gc --root . vacuum

Alternatively, configure cache expiration limits (e.g. ttl_days: 30) under the extraction.cache and bsg.cache sections in your batho.yaml file.

Where are the logs?​

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

logging:
file: .batho/batho.log