Inspiration

AI agents are getting better at writing code, but they still forget why code changed. Git stores what changed; Rein stores the reasoning behind it. We built Rein so future developers and agents can start from project memory instead of rediscovering context from scratch.

What it does

Rein is semantic commit memory for software projects. Before changing code, an agent can run rein search to find relevant past decisions. After finishing, rein commit creates a real Git commit and stores durable AgentCommit metadata: intent, reasoning, notes, and embeddings for future search.

How we built it

We built a TypeScript CLI backed by Supabase Postgres and pgvector. Rein combines OpenAI embeddings with keyword search, ranks AgentCommit memories by relevance, and links them back to real Git commits. We also built benchmark scripts to compare normal repo discovery against repo discovery with Rein memory.

Challenges we ran into

The hardest part was proving value beyond a nice demo. Rein is not just "faster grep," so we had to design benchmarks around the real product claim: less repo archaeology, faster context discovery, and better performance-aware work.

Accomplishments that we're proud of

Our benchmark across 20 realistic software tasks showed Rein helped the same agent inspect 33% fewer files, find context 40% faster, pass 19 out of 20 hard performance checks, and improve the holistic judge score by 46.1 points.

What we learned

The most important metric is not raw search speed. The real win is whether memory changes the work: fewer files opened, faster understanding, and better final outcomes. We also learned to avoid fake "percent better" claims when combining different metrics like latency, memory, throughput, and bundle size.

What's next for Rein

Next we want to harden the benchmark with real fixture repos, live agent runs, actual file-open telemetry, and executable performance tests. We also want Rein memory to become a standard layer for agentic coding workflows across teams and long-running projects.

Built With

Share this project:

Updates