Git covers what you commit; this covers the hours in between, which is exactly where an agent's edits live. Snapshots are cheap because identical content is deduplicated and compressed, so autosave on a timer is affordable, and `search_snapshots` then lets you find a version of a file you did not know you wanted. The documentation generator's split limit is the practical touch — output sized for a context window rather than one enormous Markdown file.
A versioning and documentation system for a codebase, exposed in full over MCP. It takes deduplicated snapshots, compares them with unified, JSON or AST diffs, searches text across every snapshot, and generates Markdown documentation with directory trees and smart splitting. An autosave mode keeps taking snapshots in the background on a timer, on diff size, or a hybrid of both.
- `create_snapshot`, `list_snapshots`, `get_snapshot_details` and `delete_snapshot` manage versions
- `diff_versions` compares two refs, filtered to specific files, and `get_file_history` tracks one file across versions
- `search_snapshots` searches text across every snapshot, and `generate_changelog` produces a Keep-a-Changelog between two refs
- `get_file_at_version` and `list_files_at_version` read a file or list a tree as it was
- `restore_snapshot` and `restore_files` restore fully or partially; `export_snapshot` writes a folder or an archive
- `generate_documentation` emits Markdown with a split limit, and `preview_structure` shows the tree
- `start_autosave`, `stop_autosave` and `get_autosave_status` control background versioning
- `init_project`, `apply_preset` and `manage_ignore_rules` set it up for Python, Node.js, Go or web projects
Python 3.10+ and Poetry — `poetry install`, then `poetry run gencodedoc init --preset python` to set a project up (package `gencodedoc`, published to PyPI). Three transports are available: stdio, SSE and a REST API. No account and no key; snapshots are stored locally with SHA256 deduplication and zstd compression, and it can manage several projects at once.
One command — uvx gencodedoc
