Quick Start
# Install via Homebrew (macOS/Linux)
brew tap regent-vcs/tap
brew install regent
# Or via Go
go install github.com/regent-vcs/regent/cmd/rgt@latest
# Initialize in your project
cd your-project
rgt init
# Work with Claude Code, Codex, or OpenCode normally — activity is tracked automatically
# See what happened
rgt log
rgt blame src/file.go:42
rgt show <step-hash>
That's it. Your agent activity is now auditable.
Demo
What You Get
See what your agent actually did
$ rgt log
Step a1b2c3d | 2 min ago | Tool: Edit
│ File: src/handler.go
│ Added error handling to request handler
│ + 5 lines, - 2 lines
Step d4e5f6g | 5 min ago | Tool: Write
│ File: tests/handler_test.go
│ Created unit tests for handler
│ + 23 lines
Step f8g9h0i | 8 min ago | Tool: Bash
│ Command: go mod tidy
│ Cleaned up dependencies
Blame: which prompt wrote this line?
$ rgt blame src/handler.go:42
Line 42: func handleRequest(w http.ResponseWriter, r *http.Request) {
Step: a1b2c3d4e5f6
Session: claude-20260502-143021
Tool: Edit
Prompt: "Add error handling to the request handler"
Track multiple concurrent sessions
$ rgt sessions
Active Sessions:
claude_code:claude-20260502-143021 | 3 steps | Last: 2 min ago
codex_cli:codex-20260502-091534 | 7 steps | Last: 2 hours ago
$ rgt log --session claude_code:claude-20260502-143021
# Filter history by session
See full context for any change
$ rgt show a1b2c3d
Step a1b2c3d4e5f6
Parent: d4e5f6g7h8i9
Session: claude-20260502-143021
Time: 2026-05-02 14:30:21
Tool: Edit
File: src/handler.go
Changes:
+ func handleRequest(w http.ResponseWriter, r *http.Request) {
+ if r.Method != "GET" {
+ http.Error(w, "Method not allowed", 405)
+ return
+ }
- func handleRequest(w http.ResponseWriter, r *http.Request) {
Conversation:
User: "Add error handling to reject non-GET requests"
Assistant: "I'll add method validation to the handler..."
Why This Exists
AI agents have no version control of their own.
You know this pain:
- "It was working five minutes ago"
- "Why did you change that file?"
- "Go back to before the refactor"
/compact and pray
- Copy-pasting code into a fresh chat
Three primitives that should already exist:
rgt log — what did this session do?
rgt blame — which prompt wrote this line?
rgt show — inspect the full context for any step
We gave agents write access to our codebases. We did not give ourselves git for it. re_gent fixes that.
How It Works
re_gent stores agent activity in .regent/ (like .git/):
.regent/
├── objects/ # Content-addressed blobs (BLAKE3)
├── refs/ # Session pointers (one per agent)
├── index.db # SQLite query index
└── config.toml
Every tool-using turn creates a Step — a content-addressed snapshot of what changed, why, and who asked:
Step {
parent: <previous-step-hash>
tree: <workspace-snapshot>
causes: [{ tool_name: "Edit", args: <input>, result: <output> }]
session_id: "claude_code:claude-20260502-143021"
timestamp: "2026-05-02T14:30:21Z"
}
Steps form a DAG. Each session has its own branch. Common ancestors dedupe. You get git-level auditability for agent activity.
Technical details: See POC.md for the complete specification.
Installation
Via Homebrew (macOS/Linux)
brew tap regent-vcs/tap
brew install regent
This installs the rgt command and automatically sets up shell completions for bash, zsh, and fish.
Via Go Install
go install github.com/regent-vcs/regent/cmd/rgt@latest
Shell Completion (manual setup):
# Bash
rgt completion bash > /usr/local/etc/bash_completion.d/rgt
# Zsh
rgt completion zsh > "${fpath[1]}/_rgt"
# Fish
rgt completion fish > ~/.config/fish/completions/rgt.fish
From Source
git clone https://github.com/regent-vcs/regent
cd regent
go build -o rgt ./cmd/rgt
sudo mv rgt /usr/local/bin/
Binary Releases
Download pre-built binaries from GitHub Releases
| Tool |
Status |
| Claude Code |
Fully supported |
| OpenAI Codex CLI |
Fully supported |
| OpenCode |
Fully supported |
| Cursor, Cline, Continue |
Planned |
Hooks auto-configure on rgt init. No manual setup required.
Commands
| Command |
Description |
rgt init |
Initialize .regent/ in current directory |
rgt log |
Show step history (supports --session, -n, --json, --graph) |
rgt sessions |
List all active sessions |
rgt status |
Show current repository state |
rgt show <step> |
Display full context for a step (tool call + conversation) |
rgt blame <path>[:<line>] |
Show per-line provenance for a file |
rgt cat <hash> |
Inspect any object by hash |
rgt version |
Print version information |
rgt completion |
Generate shell completion scripts |
Features
- Content-Addressed Storage — BLAKE3 hashing, automatic deduplication
- Fast Queries — SQLite index, sub-10ms lookups
- Per-Session DAG — Concurrent sessions tracked as separate refs
- Conversation Tracking — Survives
/compact and /clear
- Hook-Driven — Transparent Claude Code, Codex, and OpenCode integration
- Zero Configuration — Hooks auto-configure on
rgt init
- Concurrency-Safe — CAS refs, ACID transactions
- Gitignore-Compatible —
.regentignore support
Editor Integration
VSCode Extension
Get inline blame annotations directly in your editor:
# From VSIX (Recommended)
# Download the latest .vsix from:
# https://github.com/regent-vcs/vscode-regent/releases
# Then in VS Code: Extensions > ... > Install from VSIX...
# From source (Development)
git clone https://github.com/regent-vcs/vscode-regent
cd vscode-regent
npm install && npm run compile
# Press F5 in VS Code to launch Extension Development Host
Features:
- Inline blame annotations showing which step modified each line
- Hover tooltips with full step context (timestamp, tool name, arguments)
- Session timeline view in the sidebar
- One-click access to conversation history
Requirements: rgt CLI must be installed and rgt init run in your project.
View Extension Docs →
re_gent vs Git
|
Git |
re_gent |
| Tracks code |
✅ |
✅ |
| Tracks agent activity |
❌ |
✅ |
| Blame with prompt |
❌ |
✅ |
| Conversation history |
❌ |
✅ |
| Concurrent sessions |
⚠️ shared workspace conflicts |
✅ separate captured session refs |
| Purpose |
Developer VCS |
Agent audit trail |
re_gent complements git, doesn't replace it. Use both.
Roadmap
See ROADMAP.md for planned features including:
- Non-destructive rewind and fork operations
- Additional tool adapters (Cursor, Cline, Continue)
- Session sharing and merge support
- Garbage collection and integrity verification
Contributing
Contributions welcome! See CONTRIBUTING.md for guidelines.
Quick Start:
Before opening a PR:
- Tests pass:
go test ./... and go test -race ./...
- Linter passes:
golangci-lint run
- Code formatted:
go fmt ./...
Built With
License
Apache License 2.0