Grite
Grite is a repo-local, git-backed issue/task system designed for coding agents and humans. It keeps an append-only event log in git refs, builds a fast local materialized view, and never writes tracked state into the working tree.
Documentation: docs.neullabs.com/grite
Features
- Git-native storage - Events stored in
refs/grite/wal, synced withgit fetch/push - CRDT-based merging - Deterministic conflict resolution, no manual merge needed
- Dependency DAG - Typed issue relationships (blocks, depends_on, related_to) with cycle detection and topological ordering
- Context store - Tree-sitter-powered symbol extraction across 10 languages, with distributed sync between agents
- Per-actor isolation - Each agent/device gets its own actor ID and local database
- Optional daemon - Auto-spawns for performance, not required for correctness
- Ed25519 signing - Optional cryptographic signatures on events
- Team coordination - Distributed locks for coordinated workflows
Use Cases
Grite serves different audiences with distinct workflows:
| Audience | Primary Use Cases |
|---|---|
| AI Coding Agents | Task decomposition, multi-agent coordination, persistent memory |
| Individual Developers | Offline issue tracking, personal task lists, technical debt |
| Development Teams | Distributed coordination, code review workflows, knowledge base |
| Security & Compliance | Private vulnerability tracking, incident response, audit trails |
| DevOps & Release Engineering | CI/CD integration, release checklists, deployment tracking |
See Use Cases for detailed workflows and examples.
Installation
Quick Install (Recommended)
|
This downloads the pre-built binary for your platform and installs to ~/.local/bin/.
Package Managers
Homebrew (macOS/Linux):
Cargo (Rust):
npm:
pip:
gem:
Chocolatey (Windows):
choco install grite
From Source
Prerequisites
- Git 2.38+
- nng library (for IPC)
Ubuntu/Debian:
macOS:
Windows: The nng library is bundled with the pre-built binaries.
Quick Start
# Initialize grite in a git repository
# This also creates AGENTS.md with instructions for AI coding agents
# Create an issue
# List issues
# Add a comment
# Close an issue
# Sync with remote (auto-rebases on conflict)
# Run health checks
# Rebuild database (fast mode with snapshots)
Architecture
Grite uses a three-layer architecture:
+------------------+ +-------------------+ +------------------+
| Git WAL | --> | Materialized View | <-- | CLI / Daemon |
| refs/grite/wal | | sled database | | grite / grite-daemon |
| (source of truth)| | (fast queries) | | (user interface) |
+------------------+ +-------------------+ +------------------+
Crate Structure
| Crate | Purpose |
|---|---|
libgrite-core |
Event types, hashing, projections, sled store, signing |
libgrite-git |
WAL commits, ref sync, snapshots, distributed locks |
libgrite-ipc |
IPC message schemas (rkyv), daemon lock, client/server |
grite |
CLI frontend |
grite-daemon |
Optional background daemon |
ID Types
| Type | Size | Format | Purpose |
|---|---|---|---|
ActorId |
128-bit | Random | Identifies device/agent |
IssueId |
128-bit | Random | Identifies issue |
EventId |
256-bit | BLAKE2b hash | Content-addressed event ID |
IDs are stored as byte arrays internally and displayed as lowercase hex strings.
Daemon
The daemon (grite-daemon) is optional and provides:
- Auto-spawn - Automatically starts on first CLI command
- Idle shutdown - Stops after 5 minutes of inactivity (configurable)
- Concurrent access - Multiple CLI calls handled efficiently
- Warm cache - Keeps materialized view ready for fast queries
# Manual daemon control
# Force local execution (skip daemon)
The daemon uses filesystem-level locking (flock) to prevent database corruption from concurrent access.
Storage Layout
.git/
grite/
config.toml # Repo-level config (default actor, lock policy)
actors/
<actor_id>/
config.toml # Actor config (label, public key)
sled/ # Materialized view database
sled.lock # flock for exclusive access
daemon.lock # Daemon ownership marker
refs/grite/
wal # Append-only event log
snapshots/<ts> # Periodic snapshots
locks/<resource_hash> # Distributed lease locks
Documentation
Full documentation is available at docs.neullabs.com/grite.
| Document | Description |
|---|---|
| Architecture | System design and data flow |
| Use Cases | Workflows for agents, developers, and teams |
| Data Model | Event schema, hashing, projections |
| CLI Reference | Command-line interface |
| CLI JSON Output | JSON output format for scripting |
| Daemon | Background daemon details |
| Actors | Actor identity and isolation |
| Configuration | Config files and options |
| Git WAL | WAL format and chunk encoding |
| IPC Protocol | Inter-process communication |
| Locking | Distributed lock coordination |
| Export Format | JSON/Markdown export |
| Hash Vectors | Canonical hashing test vectors |
| Operations | Backup, recovery, debugging |
| Agent Playbook | Guide for AI coding agents |
| Comparison | How Grite compares with Beads, git-bug, and others |
Development
# Build
# Run tests
# Run with debug logging
RUST_LOG=debug
# Install locally
Design Principles
- Git is the source of truth - All state derivable from
refs/grite/* - No working tree pollution - Never writes tracked files (except AGENTS.md for agent discoverability)
- Daemon optional - CLI works standalone, daemon is performance optimization
- Deterministic merges - CRDT semantics, no manual conflict resolution
- Per-actor isolation - Multiple agents can work independently
- Agent discoverability -
grite initcreates AGENTS.md so AI coding agents automatically discover grite
License
MIT License - see LICENSE for details.