| Crates.io | yggdrasil-cli |
| lib.rs | yggdrasil-cli |
| version | 0.2.0 |
| created_at | 2025-09-06 21:55:21.888257+00 |
| updated_at | 2025-09-22 20:04:33.353992+00 |
| description | The god-tree of your codebase β flatten projects into an AI-ready codex. |
| homepage | |
| repository | https://github.com/andrewrgarcia/yggdrasil-cli |
| max_upload_size | |
| id | 1827653 |
| size | 945,044 |
The god-tree of your codebase
Flatten your entire project into an AI-ready codex β index + contents, in one command.
Yggdrasil CLI is a project flattener and diff tool:
it takes your codebase and transforms it into a single, structured document β or compares snapshots with rich, annotated diffs.
Think of it as tree + cat + diff, but with superpowers:
--only, --ignore, --blacklist, --out.[MOVED] annotations.--align-tags keeps metadata comments lined up.Yggdrasil doesnβt just list files β it builds a codex of your project, and now shows how files evolve.
Yggdrasil generates two kinds of outputs:
[MOVED] metadata.# Export your repo as Markdown (index + contents)
ygg --show --md --contents --out SHOW.md
# List only file paths (no contents)
ygg --show rs
ygg --show py
# Compare two versions of a controller
ygg diff controller.py -- controller_old.py
# Compare multiple files against a single snapshot
ygg diff controller.py updates sampling trainer.py -- controller_old.py
# Align tags neatly at a column
ygg diff --align-tags src/ -- old_src/
A manifest is just a plain text file with one path per line. Only the files listed in the manifest will be shown.
Example WHITE.md:
src/pages/codebase.tsx
src/data/codebaseAssets.tsx
src/i18n/codebase.en.json
src/i18n/codebase.es.json
src/types/codebase.ts
Run with:
ygg --show --manifest WHITE.md --contents
Youβll need Rust.
cargo install yggdrasil-cli
Then ensure ~/.cargo/bin is in your PATH.
Upgrade after edits:
cargo install --path . --force
In Norse myth, Yggdrasil is the world-tree connecting all realms. In your terminal, Yggdrasil connects all files β flattening complexity into a single codex, and now diffing branches of your code-tree.
Itβs built to be:
Goal: Make your projectβs structure transparent and portable.
--show, --contents)--md)--ignore, --blacklist)--out)ygg diff)[MOVED] metadata overlay--align-tags flagMIT, like almost everything else thatβs friendly and open-source.