█▀█ ▄▀█ █▀▀ █▄▀ ·
█▀▄ █▀█ █▄▄ █ █ ⌂
a queryable knowledge graph for real-world data
You have data scattered across APIs, spreadsheets, and browser tabs. Rack turns it into a local database you can query, track, and trust.
Claude Code writes the pipelines. Obsidian shows the dashboards. You just ask questions.
curl -fsSL https://rack.dev/install.sh | sh
Local-first, no cloud ◝(ᵔᵕᵔ)◜
Everything runs on your machine. DuckDB is the database. No accounts, no SaaS, no telemetry, no network calls except what your scripts explicitly make.
Your data stays yours. Query it offline. Back it up with git. Delete it when you're done.
How it works (•̀ᴗ•́)و
Your data lives in many places. Rack pulls it into one local database, then generates dashboards you can see in Obsidian. Claude Code handles everything — you just describe what you want.
Your data
GitHub · Stripe · Sheets · APIs
→
→
Obsidian
dashboards you own
Run rack refresh to update, or just ask Claude.
Just ask ( ˶ˆᗜˆ˵ )
Describe what you're curious about. Claude builds the pipeline, keeps it fresh, and answers your questions.
"Track every NASA exoplanet discovery and show me which stars have the most Earth-like candidates"
"Pull my Goodreads history, my Kindle highlights, and show me themes across everything I've read this year"
"Monitor YC's top companies — their funding rounds, team size, tech stack — and alert me when patterns emerge"
"Ingest my bank exports, categorize spending, and tell me where my money actually goes"
"Track arXiv papers on transformer architectures and surface the ones that cite the papers I've already read"
"What was my most productive month last year, and what made it different?"
You ask questions about your world. Rack turns them into queryable answers.
Plain text for transparency ૮₍ ˶ᵔ ᵕ ᵔ˶ ₎ა
A rack is just a directory with a convention:
my-metrics/
├── .claude/CLAUDE.md # Claude reads this
├── playbook.md # What this rack tracks
├── data/
│ ├── inbox/ # Drop files here
│ ├── sources/ # JSON from APIs
│ └── my-metrics.duckdb # DuckDB database
├── scripts/
│ ├── fetch/ # Pull data
│ ├── ingest/ # JSON → DuckDB
│ └── derive/ # SQL → Markdown
└── dashboards/ # Markdown output
No magic. Read any file to understand what's happening. Edit any script to change behavior.
Data lineage ( ˶°ㅁ°)!!
See your entire data story at a glance:
SOURCES
GitHub 284 PRs
Stripe $47,291
Posthog 12k events
Linear 89 tasks
▼
DUCKDB
pull_requests 2,847
payments 1,204
events 89,341
tickets 634
● weekly_kpis joins revenue × velocity × usage
▼
OUTPUT
This week: $47,291 revenue from 89 paying users.
Engineering shipped 38 PRs and closed 12 bugs.
Revenue
$47,291
▂▃▃▄▅▅▆█
+23%
Paying users
89
▄▄▅▅▅▆▆▇
+8%
PRs shipped
38
▅▆▄▇▅▆▅▅
—
Bugs open
7
█▇▆▅▄▃▃▂
-40%
⚡
Revenue spike Tue — 3 annual plans ($8,400). Check if related to Product Hunt launch.
Open questions:
• Why did signups drop Wed-Thu despite traffic holding steady?
From scattered APIs to a single query. When something breaks, you know exactly where to look.
Temporal queries ₍ᐢ.ˬ.ᐢ₎
Rack takes snapshots so you can query the past:
$ rack snapshot # Save current state
$ rack query --at 2024-01-10 "SELECT *" # Query that snapshot
$ rack diff # What changed since last refresh
Compare this week to last week. See how metrics evolved. Time-travel through your data.
Signals & alerts (◎_◎;)
Derive scripts can emit signals when conditions are met:
from signal_helper import signal
if churn_rate > 0.05:
signal("churn crossed 5%")
Run rack signals to see what needs attention. No dashboards to check — the data tells you when something's wrong.
Scheduling ( ˘ω˘ )zzZ
Keep your knowledge graph fresh with cron-style schedules. Ask Claude:
"Refresh GitHub data every hour"
"Run the full pipeline daily at 6am"
"Fetch Stripe payments every 15 minutes"
Claude creates the appropriate launchd (macOS) or systemd (Linux) configuration. Your dashboards update themselves.
More features ヾ(^▽^*)))
MCP Server
Expose your rack to AI tools. Run rack mcp install to auto-configure Claude Code, Cursor, or VS Code.
Templates
Start fast with rack init --template yc-metrics for YC apps, SaaS growth, or engineering velocity.
Direct queries
Skip the scripts. Run rack query "SELECT * FROM users" to query DuckDB directly.
Health checks
Run rack check to see database stats, stale scripts, and pipeline health at a glance.