Skip to main content
Monogit indexes your git repository structure into a per-repo SQLite database. Beyond branch and commit tracking, it extracts code symbols and document headings at each commit — enabling temporal code analysis that knows what changed at each point in history. Published contract: monogit 0.5.1, OpenCLIs build 2026-07-18-153030. The executing binary, installed receipt, and public CDN pointer agree on this release; per-platform provenance is detailed below. The installed CLI exposes 7 operational commands, the embedded docs reader, and a machine-readable mcp-schema endpoint. --help and --version are global flags rather than additional operational commands. The typed MCP surface contains the 6 read commands and deliberately excludes the index writer.

Quick Start


Commands

--db <path> is available on every database-backed command. Passing it selects an explicit cache and bypasses normal per-project resolution, so use it only when that ownership is intentional.

index

Index git structure and optionally extract symbols at each commit.
-n 0 is the current default and means all reachable commits. Set an explicit positive cap for a bounded first index. --all widens branch discovery to remote-tracking refs; a local-only refresh preserves previously indexed remote rows, while an --all refresh reconciles both scopes. --symbols uses tree-sitter to parse changed files at each commit, extracting function/class/struct definitions at their exact line positions. Markdown files are parsed for heading structure. Symbol extraction is fail-closed: a parse failure returns non-zero and leaves that commit unstamped so a later run retries it. A successful index commits its exact -n, --all, --diff, --symbols, --no-prune, and --gc carrier policy atomically with the rows; NIIA can replay that policy when Git refs change. --gc requires the uncapped -n 0 history scope.

query — Core Feature

Query which branches contain a specific commit.
Answers “where did this commit end up?” instantly from cache. Version 0.5.1 appends an index-age qualifier to human-readable query output. An index newer than 24 hours shows (index written … ago); an older index shows [WARN], states that answers may lag Git, and names monogit index as the recovery. JSON output stays schema-stable and does not append display text.

branches

List all indexed branches.

compare

Compare two branches (ahead/behind count).

stats

Show database statistics.
Human-readable stats now includes Last indexed. Freshness is WAL-aware: it uses the newest mtime across the database, -wal, and -shm sidecars instead of treating the bare DB file as the whole truth. Age above 24 hours is marked [STALE — run monogit index]; unknown remains explicit when no timestamp can be established. The JSON stats contract remains unchanged in 0.5.1. Search indexed commit messages without invoking a live Git history scan.

diff

Read a cached parent-to-commit diff when available or compute the requested range from the repository.
--files suppresses hunks and shows paths; --stats shows aggregate change counts. A successful diff read does not prove that the index contains symbol snapshots—verify stats --detailed or re-index with --symbols for that claim.

Commit Symbol Tracking

When --symbols is used, monogit stores what each commit touched at the symbol level:
This data powers monoflow’s topic clustering, insights, and temporal analysis.

Symbol coverage

Code extraction inherits the lib-monogram tree-sitter language table bundled with the executing release, so this table is a practical summary rather than a closed allowlist. Unsupported code extensions are skipped; Markdown and MDX use Monomento’s document parser.

Filters

Build artifacts (dist/, .min.js), lock files, and obfuscated symbols (_0x*) are automatically excluded.

Pre-computed Analysis

At index time, monogit computes and stores analysis results for instant reads:

Temporal Drift

Detects file pairs that used to change together but have diverged.

Commit Rhythm

Session count, peak hours/days, temporal distribution chaos score.

Quality Delta (9 signals)

Measures work quality from commit patterns: Detects scenarios: Struggle, Exploration, ManagedFlow, Convergence, StructuralImprovement. Weights configurable via monoflow weights (saved to ~/.monolex/config/quality-weights.json).

Per-Repo Database

Each repository gets its own database:
A .registry file maps project paths to database files for automatic resolution.

Typed MCP Surface

The schema contains query, branches, compare, stats, search, and diff. These commands can read an existing cache without taking ownership of Git indexing. index is intentionally CLI-only because it writes branch, commit, diff, symbol, policy, and registry state.

Release Platforms

The 0.5.1 / 2026-07-18-153030 metadata now publishes five artifacts. Linux and macOS use monogit; both Windows architectures use monogit.exe. No Intel macOS payload is present in this release path. All five archives and extracted payloads were directly hash-verified. The macOS payload executed as 0.5.1 and passed strict Developer ID verification. The Windows archives contain x86-64 and AArch64 PE console executables; both CRLF guide pairs normalize exactly to the source tree. On the Lenovo Windows host, openclis update monogit upgraded 0.5.0 to 0.5.1, where.exe monogit resolved the OpenCLIs binary, and --version, --help, and mcp-schema all executed successfully for the native x86-64 artifact. The AArch64 artifact was format-, hash-, and guide-verified but was not executed on the x86-64 host. Provenance is not uniform. The two Linux fragments record clean commit fd89957b8aef3afc811d0f108475b46d6dde4f2a. The later Windows fragment and the mutable latest.json pointer record clean commit 44e4acbb5481a5d56adb6118cd8c0334b75844e3. The macOS fragment instead records ancestor commit 163b70a987c74dd052c8fb7276add0e65bad416f with source_dirty: true. Version/build identity and archive integrity therefore pass across all five platforms, but neither the pointer nor one clean fragment can be used as provenance proof for every other fragment.

Design

Relationships