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
Rack
local DuckDB
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
Founder Weekly Brief Week of Jan 20, 2025
This week: $47,291 revenue from 89 paying users.
Engineering shipped 38 PRs and closed 12 bugs.
This wk 8-week trend Δ
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.