gpp
Supports Bitbucket as a remote platform, including pull request creation with enriched bodies and CI/review import.
Round-trips real Git commits through the git-import/git-export/git-bridge functionality, allowing gpp to work alongside existing Git history and workflows.
Supports GitHub as a remote platform, including pull request creation with enriched bodies and CI/review import.
Supports GitLab as a remote platform, including merge request creation with enriched bodies, CI/review import, and GitLab CI templates.
gpp (git++)
AI agents change code continuously, then lose the work that happened
between commits — and the notes they keep about your codebase
(CLAUDE.md, memory banks, knowledge files) go stale silently when the
code moves on. gpp is a version control system built for that reality: it
captures every change as it happens, promotes curated changesets with
intent and provenance, and hosts project knowledge on the repo's own
history — so when a commit invalidates something you believed about the
code, gpp can name that commit.

(Recording is generated by scripts/demo.sh —
deterministic, reproducible, no mockups.)
30-second try
cargo install gpp-cli
gpp init --graphex
echo "fn main() {}" > main.rs
gpp timeline # captured already — no staging, no commit
gpp promote -m "first cut" --intent feature
gpp diff HEAD # semantic diff: renames/moves are one opAnd the part no other VCS does — record what you believe about the code, and let history police it:
gpp belief add --claim "token expiry is 24h" --evidence src/auth.rs:7-7
# ...weeks of commits later...
gpp belief bisect "token expiry is 24h"
# INVALIDATED cs:fhcpef7c "raise token expiry to 7 days"
# - 7 | pub const EXPIRY_HOURS: u64 = 24;
# + 7 | pub const EXPIRY_HOURS: u64 = 168;Deterministic — diff intersection and blob hashes, zero LLM or network
calls. (For scale: asked to judge whether a stored memory has been
invalidated, the best frontier model manages 55.2% accuracy on the
STALE benchmark — here it's a
history query, not a judgment.) Validated on real history across five
repos in four languages — axum 0.6→0.7, flask 1.1→2.0, clap 3→4, zod
3→4, go-redis 8→9 — where every invalidated belief bisects to a pinned,
documented culprit commit and the control beliefs survive: see
demos/belief-bisect/ for the full matrix.
Related MCP server: ITHZ MCP
What makes it different
Continuous capture. A high-frequency timeline records every file change (SQLite WAL, debounced watcher); curated changesets are promoted from it with an explicit intent, author kind (human/agent), and cost record. Nothing is lost between commits.
Graphex: versioned, encrypted project knowledge. Architecture, conventions, decisions, and beliefs live in an encrypted knowledge graph inside the repo, tier-gated per agent trust level, audited on every read — and staleness-checked against the history it rides on.
Agent governance. First-class agent identity with reputation scoring, compliance-as-code policies enforced at capture/promote/sync, anomaly detection, and per-changeset token/cost attribution.
Everything else — P2P sync over Noise, replay, review/RBAC, a relay node,
a TUI — is the platform underneath: see
docs/ARCHITECTURE.md.
Git is the substrate, not the competition. The bridge
(gpp git-import / git-export / git-bridge) round-trips real Git
commits, so GitHub and existing workflows keep working — gpp's knowledge,
provenance, and governance layers ride alongside. The axum demo above
runs entirely on history imported through this bridge.
Connect Claude Code (or any MCP client)
gpp ships an MCP server; agents query the knowledge graph (every belief
with a freshness envelope — anchor, commits since, and the changeset that
staled it), write their own evidence-anchored beliefs with
propose_belief (human-approved, then policed by history), propose
changesets, and report costs. Drop this in .mcp.json at your repo root:
{
"mcpServers": {
"gpp": { "command": "gpp", "args": ["mcp-server", "--stdio"] }
}
}Full client setup (Claude Desktop, generic stdio) and the exposed tool
list: docs/MCP.md.
Status
All 9 roadmap phases (0–8) implemented. See
docs/ROADMAP.md for per-phase deliverables and
documented deviations, docs/TODO.md for the prioritized
backlog, and docs/WORKLOG.md for the running
engineering log.
Verified 2026-08-23: 184 workspace tests pass, cargo clippy and
cargo fmt clean, full workspace builds. No stub crates remain — every
crate has a working implementation. Coverage is measured in CI
(cargo llvm-cov; 65.7% line at baseline, being raised).
Test depth is still uneven: foundational layers are well covered
(gpp-core, gpp-graphex, gpp-diff, gpp-tui ≥ 80% line; the CLI has
end-to-end suites for policy enforcement, cost reporting, reviewer
assignment and belief bisect), while several integration crates remain at
smoke-level (gpp-sdk, gpp-notify, gpp-rbac, gpp-replay).
"Implemented" here means built and tested against its milestone, not
exhaustively hardened everywhere. Closing that gap is the top item in
docs/TODO.md.
The full layer table
Layer | Crate | What's implemented |
Storage |
| Content-addressed store (BLAKE3 + zstd), |
Timeline |
| SQLite (WAL) capture, |
History |
|
|
Diff |
| Line + tree-sitter semantic diff (Rust/Python/TS/Go), rename/move detection |
Git bridge |
|
|
Graphex |
| Encrypted (age + AES-GCM) knowledge graph, tier-gated projection, query, lifecycle, audit, beliefs + staleness engine |
SDK / MCP |
|
|
Trust |
| Reputation scoring, status transitions, overrides, events |
Policy |
|
|
Cost |
| Per-changeset token/$ records, budgets, efficiency, agent self-reporting |
Anomaly |
| Scope/burst/size detection, resolution workflow |
Sync |
| Noise_XX P2P; objects/refs/policies/graphex; fork-preserve |
Replay |
| Reproducible environment snapshots + drift diff |
Review/RBAC/Notify |
| Review lifecycle, roles + branch protection, events/inbox/HMAC webhooks |
Remote |
| GitHub/GitLab/Bitbucket PR creation, enriched bodies, CI/review import |
Relay |
| Always-on sync hub binary + health endpoint + Dockerfile |
Clients |
| Full CLI, ratatui TUI ( |
Also: extensions/{gh-gpp,vscode-gpp,neovim-gpp}, GitHub Actions +
GitLab CI templates, deploy/ Docker images, packaging/ Homebrew.
Documented follow-ups (recorded in the ROADMAP/TODO, not silently skipped): registry/license APIs for deps, native PyO3/napi bindings, outbound platform-review sync, apt/dpkg packages.
Install / build
cargo install gpp-cli # the `gpp` binary (crates.io)
cargo install gpp-relay # relay node (optional)
# or from a clone
cargo build --release
cargo test --workspace
cargo bench -p gpp-core -p gpp-diff # criterion perf suitePrebuilt binaries for Linux, macOS (ARM + Intel), and Windows are
attached to each release;
cargo install --git https://github.com/mahabubul470/gpp gpp-cli tracks
unreleased development.
More to try
# Governance
gpp policy template secrets-scan
gpp trust show
gpp audit --include-cost --include-graphex
# Decentralized: sync two repos over Noise
gpp sync serve 127.0.0.1:9473 # on peer A
gpp sync add a 127.0.0.1:9473 && gpp sync # on peer B
# GitHub-compatible
gpp remote setup --platform github --repository acme/webapp
gpp remote pr-create --base mainSee CLAUDE.md for project context, docs/ for the
full specification (architecture, data model, CLI, protocols, roadmap),
and docs/book/ for the user guide + tutorials.
License
Available Tools
9 toolsgraphex_conventionsB
List applicable coding conventions.
Inputs: no named parameters.
graphex_glossaryC
Look up domain glossary terms.
Inputs: term.
graphex_queryD
Project knowledge-graph context (tier-filtered).
Inputs: budget, pattern.
graphex_statusA
Graph statistics: node/edge counts.
Inputs: no named parameters.
propose_beliefB
Record an evidence-anchored belief about the code (lands as Proposed for human approval; staleness-checked against history from the moment it exists). evidence entries are "path:start-end" (1-based, inclusive lines at the current changeset); paths are repo-relative paths or globs; symbols are "path:Name". At least one of evidence/paths/symbols is required.
Inputs: claim (required), tier, paths, symbols, +1 more.
propose_changesetC
Promote pending timeline entries into a changeset.
Inputs: message (required), intent.
propose_graph_updateC
Propose a new graph node (lands as Proposed for human approval).
Inputs: name (required), node_type (required), description (required), tier.
reaffirm_beliefA
Re-anchor a belief at the current changeset after you have re-verified it against the code (e.g. a stale-candidate whose claim still holds). Optional new evidence spans replace the old ones. Not allowed for invalidated beliefs — their grounds are gone; propose a new belief with current evidence instead.
Inputs: belief (required), evidence.
report_costA
Attribute your token/compute usage to a changeset (the id returned by propose_changeset). Reports accumulate. cost_microdollars is integer micro-dollars (1 = $0.000001).
Inputs: changeset (required), model, input_tokens, cached_tokens, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool has a distinct purpose: query, status, glossary, conventions, and then actions for proposing changesets, graph updates, beliefs, reaffirming beliefs, and cost reporting. No two tools overlap in functionality; even the related belief tools are clearly differentiated (new vs. reaffirm).
The tools are grouped semantically: 'graphex_' prefix for read-only graph queries, and verb-based names (propose_, reaffirm_, report_) for actions. This is consistent within each group, but there is a mix of naming styles (prefix vs. verb) across the set, making it slightly less uniform than a pure verb_noun convention.
Nine tools is well within the ideal range and each tool serves a clear, necessary function for the server's purpose of knowledge-graph interaction and change proposal. No redundant or missing tools are apparent.
The surface covers the core workflows: querying graph context, checking status, looking up glossary/conventions, proposing changes (changeset, graph update, belief), reaffirming beliefs, and reporting cost. Minor gaps like listing existing beliefs or changesets are not directly present, but the design intentionally routes proposals to human approval, so those may be handled externally.
Maintenance
Related MCP Connectors
One memory for every AI you work with: your rules, notes and decisions in your own Git repo.
Shared, scoped, reviewable team memory for AI coding agents.
Project memory, documentation and controlled secret access for AI coding agents.
Shared memory for coding agents and their teams: project docs with semantic search, plus epics, tasks, open questions and decisions your agent reads and writes over MCP. Teammates and their agents share the same board. Deploy and permanent delete stay human-only and are enforced by the server. Free tier, no card. Setup: https://app.bilgai.com/docs/connect — API key (blg_) as Bearer or OAuth. Issues: https://github.com/volkansuner/bilg-feedback
Related MCP Servers
- AlicenseAqualityAmaintenanceLocal-first memory layer for AI coding agents — captures issues, attempts, fixes, and decisions, and warns at git commit before you repeat a mistake.17723 PyPI879MIT
- FlicenseNot gradedqualityCmaintenanceLocal-first deterministic project memory for AI coding agents, with context packs, decisions, gates, risks, scoped claims and explicit checkpoints in project-owned files.-
- AlicenseNot gradedqualityCmaintenanceGives AI coding agents persistent, branch-aware memory and a dependency-tracked task graph by storing decisions, lessons, and tasks as plain JSON and Markdown committed directly into the repository. Agents can record and fuzzy-search past decisions, dump instant project context, and create, claim, complete, and query tasks whose completion automatically unblocks downstream work.MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI coding agents with git-native persistent memory and a dependency-aware task graph, letting them record and fuzzy-recall architectural decisions, lessons, and gotchas while creating, claiming, and completing tasks that auto-unblock downstream work. Stores everything as plain JSON and Markdown committed inside the repository, so context stays branch-aware, team-shared, and reviewable in pull requests.7 npmMIT