Demo
Every agent turn is automatically captured. No manual commits needed.
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 or Codex normally (agent activity is tracked)
# See what happened
rgt log
rgt blame src/file.go:42
That's it. Your agent activity is now auditable.
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
The problem: 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
The solution: 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; each tool call in that turn is recorded as a cause/message:
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 both regent and rgt commands (they're identical) and automatically sets up shell completions for bash, zsh, and fish.
Via Go Install
go install github.com/regent-vcs/regent/cmd/rgt@latest
This installs the rgt command.
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/
# Optionally create a symlink: sudo ln -s /usr/local/bin/rgt /usr/local/bin/regent
For shell completion, follow the "Via Go Install" instructions above.
Binary Releases
Download pre-built binaries from GitHub Releases
Editor Integration
VSCode Extension
Get inline blame annotations directly in your editor:
Installation Options:
# 1. From VSIX (Recommended)
# Download the latest .vsix from:
# https://github.com/regent-vcs/vscode-regent/releases
# Then in VS Code: Extensions > ... > Install from VSIX...
# 2. From VS Code Marketplace (Coming Soon)
# Search for "re_gent Blame"
# 3. 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
- Direct SQLite integrationβno subprocess overhead
Requirements: re_gent CLI must be installed and rgt init run in your project.
View Extension Docs β
Commands
Available Now:
| 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 (debug) |
rgt version |
Print version information |
rgt completion |
Generate shell completion scripts |
Coming Soon:
| Command |
Description |
rgt rewind <step> |
Non-destructive time-travel |
rgt gc |
Garbage collection |
rgt fork <step> |
Create a new session from a step |
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 and Codex integration
- Concurrency-Safe β CAS refs, ACID transactions
- Gitignore-Compatible β
.regentignore support
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.
Status
Active Development
- ~7.8k LOC Go implementation
- Core functionality: init, log, sessions, status, show, blame β COMPLETE
- Hook integration (Claude Code and Codex) β COMPLETE
- Used daily by contributors
- Not yet v1.0
Honest assessment: Production-quality code at POC-level feature completeness. We're building in public.
π₯ Current Focus
Phase 3: Advanced Features (May 2026)
We're working on:
rgt fork β Create new sessions from any step (enables branching exploration)
rgt rewind β Non-destructive time-travel to previous steps
- Performance optimization β Faster snapshots for large repositories
Want to help? Check good first issues or the issues tagged with phase-3.
Roadmap
| Phase |
Status |
Features |
| Phase 1: Core Storage |
β
Complete |
Object store, content addressing, SQLite index |
| Phase 2: Hook Integration |
β
Complete |
Claude Code and Codex capture, session tracking |
| Phase 3: Advanced Features |
π§ In Progress |
fork, rewind, performance optimization |
| Phase 4: Multi-Tool Support |
π Planned |
Cursor, Cline, Continue adapters |
| Phase 5: Collaboration |
π Planned |
Session sharing, merge support |
| Phase 6: Enterprise |
π Future |
Team analytics, compliance reporting |
See POC.md for detailed implementation specs.
Contributing
Contributions are welcome! re_gent is built in public and we actively review PRs.
Quick Start:
Before opening a PR:
- Tests pass:
go test ./... and go test -race ./...
- Linter passes:
golangci-lint run
- Code formatted:
go fmt ./...
- PR template filled out
Important files:
Built With
License
Apache License 2.0