-
-
Notifications
You must be signed in to change notification settings - Fork 0
Why Rune Exists
Git stores history. Rune stores understanding.
Large codebases are difficult to understand.
Humans solve this problem naturally.
When joining a new project, developers usually:
- Read the README.
- Learn the architecture.
- Understand coding conventions.
- Identify important modules.
- Navigate only the files relevant to the task.
Very few engineers read an entire repository from top to bottom.
Most coding agents lack persistent understanding.
Every time a user says:
Add Google OAuth
or:
Refactor billing
or:
Implement password reset
the agent often receives thousands of lines of source code again and again.
This creates several problems:
- excessive token usage
- slow responses
- unnecessary context duplication
- poor understanding of architecture
- inconsistent modifications
The issue is not intelligence.
The issue is memory.
Before Git, source code history was difficult to manage.
Git provided a standard way to answer:
What changed?
Today almost every repository contains:
.git/
Git became infrastructure.
Most developers no longer think about it.
Git tracks:
- commits
- branches
- merges
- diffs
Git does not explain:
- architecture
- conventions
- dependencies
- feature ownership
- module relationships
Git stores history.
Not meaning.
README files are written for humans.
They are usually:
- too general
- outdated
- incomplete
Typical README files explain:
How to install
How to run tests
Environment variables
They rarely explain:
Which files implement login?
What depends on billing?
Which modules should never be modified?
How does a feature flow through the system?
Experienced developers carry a mental map of the repository.
They know:
Login
↓
auth.py
↓
user.py
↓
jwt.py
They know:
- architectural rules
- dangerous areas
- dependencies
- ownership
This understanding exists mostly inside people's heads.
Rune aims to externalize that understanding.
Rune adds a second layer to repositories:
.git/
.rune/
Git answers:
What happened?
Rune answers:
What does this codebase mean?
Rune stores:
Backend:
FastAPI
Frontend:
Next.js
Database:
PostgreSQL
- Use repository pattern.
- Never use raw SQL.
- APIs return Pydantic models.
auth.py
├── user.py
└── jwt.py
Purpose:
Authentication service.
Exports:
- login()
- logout()
Dependencies:
- user.py
- jwt.py
login.tsx
↓
auth.py
↓
user.py
↓
jwt.py
Recently touched files:
auth.py
user.py
Instead of sending:
50 files
100,000 tokens
Rune allows agents to start with:
spec.md
graph.json
feature summaries
file summaries
and load source code only when necessary.
This dramatically reduces context consumption.
Rune is not:
- Cursor
- Copilot
- Claude Code
- LangChain
- MCP
- a vector database
Rune provides context.
Agents provide intelligence.
One day repositories may routinely contain:
.git/
.rune/
.git/
explains:
What changed?
.rune/
explains:
What the codebase means.
Git stores history.
Rune stores understanding.
.git/ explains what changed.
.rune/ explains what the codebase means.
Rune Context — Git for repository understanding.
Git for repository understanding.
- RCP-001 — Repository Format
- RCP-002 — Plugin Protocol
- RCP-003 — Graph Format
- RCP-004 — File Summary Format
- RCP-005 — Feature Map Format
- RCP-006 — Ownership Metadata
- RCP-007 — Session Memory
- RCP-008 — Context Retrieval API
- RCP-009 — Incremental Indexing
- RCP-010 — Multi-Agent Coordination
Git stores history.
Rune stores understanding.