This release is a pre-release and may not be stable for production use.
Buddhi AI CLI
Buddhi AI CLI turns a codebase into two things an AI coding agent actually needs: a code graph (files, directories, classes, functions/methods, and their containment/import/call relationships, via tree-sitter) and a scaffolded Google Antigravity agent harness that's grounded in that graph instead of generic advice.
The idea: point Buddhi AI CLI at a project, and it gives Antigravity a /plan
workflow with domain specialist agents (frontend, backend, database, testing,
security, deployment, git), a /document-codebase workflow that generates
real per-symbol documentation, and /verify, /debug, /remember, and
/status workflows for evidence-backed testing, systematic debugging,
explicit memory capture, and a harness state dashboard — all reading from
Buddhi AI CLI's graph and docs instead of re-deriving understanding from raw
source every time.
Supported languages: Python, JavaScript, TypeScript/TSX, Go, Rust, C#, Java, Kotlin, Swift.
Installation
Requires Python 3.10+.
pip install buddhi-ai
Or, if you prefer an isolated tool install:
pipx install buddhi-ai
# or
uv tool install buddhi-ai
This installs the buddhi command.
Usage
buddhi init — full setup (recommended)
buddhi init [path]
Scans path (defaults to the current directory), builds the code graph,
computes a documentation plan, and scaffolds the Antigravity agent harness.
Writes:
.buddhi/graphs/tree-graph.json— the graph in Cytoscape.js elements format.buddhi/graphs/tree-graph.db— a SQLite database (nodes/edgestables, indexed for recursive CTE traversal — ancestor/descendant lookups, call-graph walks).buddhi/graphs/tree-graph.html— an interactive Cytoscape.js visualization (loads Cytoscape.js from a CDN; open in a browser with internet access).buddhi/docs-plan.json— a bottom-up, staleness-aware plan of what needs documenting.agents/— the Antigravity agent harness (agents, workflows, rules, skills, memory index — see below). Idempotent: rerunninginitnever overwrites a harness file you've already edited under.agents/, it only fills in what's missing.
A .buddhi/.gitignore (ignoring graphs/ and docs/) is created on first
run so generated artifacts don't get committed to your project's own repo.
Next step printed at the end: open the project in Antigravity and run
/document-codebase, then /plan.
buddhi generate — graph only
buddhi generate [path]
Scans path and writes just the three graph artifacts under
.buddhi/graphs/, without touching .buddhi/docs-plan.json or .agents/.
Useful for refreshing the graph on its own, or in contexts that don't need
the Antigravity harness.
buddhi docs plan — refresh the doc plan only
buddhi docs plan [path]
Recomputes .buddhi/docs-plan.json against the current source tree without
touching .agents/. This is what the /document-codebase and /plan
Antigravity workflows call before doing anything else, so the plan always
reflects the current source.
The Antigravity agent harness
buddhi init scaffolds .agents/ with:
workflows/—/document-codebase(generate or refresh docs),/plan(turn a request into an implementation plan grounded in the real codebase, without writing any code),/verify(run the project's real build/lint/test commands and report genuine pass/fail evidence),/debug(systematic investigation producing a confirmed root-cause and fix plan, plan-only like/plan),/remember(explicit, user-invocable capture of a preference/convention/decision into memory), and/status(a dashboard of the harness's own docs/graph staleness, open plans, and memory size — not live agent sessions or a preview server)agents/— read-only specialist subagents (backend-specialist,frontend-specialist,database-specialist,testing-specialist,security-specialist,deployment-specialist,git-specialist) dispatched in parallel by/plan, plusterminal-runnerfor delegated shell/build/test executionrules/— always-on conventions: consult.buddhi/docs/and the code graph before raw source, require confirmation before destructive commands, read/append to the memory index for durable decisionshooks.json/hooks/guard_destructive.py— a realPreToolUsehook that mechanically denies destructive commands (force-push,reset --hard,DROP/TRUNCATE, disk-format commands, etc.) as a backstop to the rule above, not just an advisory — though Antigravity's hook-firing reliability is reportedly better in the CLI than in the IDE (per community reports), so treat this as a backstop, not a guarantee, in every environmentskills/—okf-context(how to read the generated docs),repoagent-doc-generation(how to write them),system-design(an architecture/trade-off decision framework used by/plan), and a slot for tech-stack-specific skills you drop in yourself (see.agents/skills/README.md)memory/MEMORY.md— a pure index into four topic files under.agents/memory/(user-preferences.md,project-conventions.md,tech-decisions.md,feedback-history.md), populated passively across/planruns or explicitly via/remember. Since template sync never overwrites existing files, a project that already had a flatMEMORY.mdbefore upgrading buddhi will keep it as-is on re-runninginit— only a freshbuddhi initgets the new topic-file split.
Documentation format
Generated docs under .buddhi/docs/ follow the
Open Knowledge Format (OKF): one concept file per
module/class/function, each carrying frontmatter that names its source file
and line range, a content hash for staleness detection, and a status. The
bottom-up generation order — document a symbol only after everything it
depends on is already documented — is inspired by the
RepoAgent paper's approach to
whole-repository, dependency-aware documentation.
Notes on accuracy
Import and call resolution is best-effort, not a full semantic analysis:
same-project relative imports and same-file/self./this. calls are
resolved to real nodes; everything else (external packages, ambiguous
cross-file calls, ...) becomes an external placeholder node so the graph
stays informative without producing false edges.
Contributing
The sections below are for working on Buddhi AI CLI itself, not for using it.
Setup
uv sync
Once dependencies are installed, run the CLI from source with uv run,
e.g. uv run buddhi init [path], instead of the plain buddhi command shown
above.
Development
uv run pytest
uv run ruff check src tests
uv run mypy src
Publishing
Releases to PyPI are handled by the publish.yml
GitHub Actions workflow. It builds the package with uv build and publishes it
using PyPI trusted publishing (OIDC),
so no API token is stored in the repository.
The workflow triggers on any pushed tag matching v* (e.g. v0.1.0). To cut a
release:
- Bump
versioninpyproject.toml. - Commit the change and tag it to match, e.g.:
git commit -am "Bump version to 0.1.1" git tag v0.1.1 git push origin main v0.1.1
- The tag push triggers the workflow, which builds and publishes the package to PyPI automatically.
This requires a trusted publisher to be configured once on PyPI for the
buddhi-ai project, pointing at this repository, the publish.yml workflow
file, and the pypi environment.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file buddhi_ai-1.0.0b8.tar.gz.
File metadata
- Download URL: buddhi_ai-1.0.0b8.tar.gz
- Upload date:
- Size: 44.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76a204bec6d2a8443e2c800c43c63e4528934e3890fcbbc1947c2266efd18896
|
|
| MD5 |
90fb416531fde62be50ddb94a45a9cbe
|
|
| BLAKE2b-256 |
9003d1cc08649269b4251b14f78d31b7af3670535bd1e6e76ca9f1dad0ca9bf0
|
Provenance
The following attestation bundles were made for buddhi_ai-1.0.0b8.tar.gz:
Publisher:
publish.yml on Buddhilive/buddhi-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
buddhi_ai-1.0.0b8.tar.gz -
Subject digest:
76a204bec6d2a8443e2c800c43c63e4528934e3890fcbbc1947c2266efd18896 - Sigstore transparency entry: 2571444922
- Sigstore integration time:
-
Permalink:
Buddhilive/buddhi-cli@af4ea0140f4a7b0550027acd8454c27f73c0d1e9 -
Branch / Tag:
refs/tags/v1.0.0-beta.8 - Owner: https://github.com/Buddhilive
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@af4ea0140f4a7b0550027acd8454c27f73c0d1e9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file buddhi_ai-1.0.0b8-py3-none-any.whl.
File metadata
- Download URL: buddhi_ai-1.0.0b8-py3-none-any.whl
- Upload date:
- Size: 71.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfe655291034aaff11500d63f36620dddc3940a9b3f571ed8ddfda0737995b4f
|
|
| MD5 |
e913f939de59d0da1f5f93d94516b46d
|
|
| BLAKE2b-256 |
bdb3eddb4299a2ff2b3abbbb54e1c4c8ee46445db233381d29775895dd0b47eb
|
Provenance
The following attestation bundles were made for buddhi_ai-1.0.0b8-py3-none-any.whl:
Publisher:
publish.yml on Buddhilive/buddhi-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
buddhi_ai-1.0.0b8-py3-none-any.whl -
Subject digest:
cfe655291034aaff11500d63f36620dddc3940a9b3f571ed8ddfda0737995b4f - Sigstore transparency entry: 2571444933
- Sigstore integration time:
-
Permalink:
Buddhilive/buddhi-cli@af4ea0140f4a7b0550027acd8454c27f73c0d1e9 -
Branch / Tag:
refs/tags/v1.0.0-beta.8 - Owner: https://github.com/Buddhilive
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@af4ea0140f4a7b0550027acd8454c27f73c0d1e9 -
Trigger Event:
push
-
Statement type: