{
  "markdown": "# 💰 IncomeOS — one screen for every dollar you make\n\nMost revenue dashboards assume you have one product on one Stripe account.\nIncomeOS assumes what's actually true for an indie hacker: a SaaS on Stripe, an\nAmazon affiliate link, a marketplace actor, a mobile app, a sponsorship — I track\n**25 sources, and most of them make under $10 a month**. Nothing adds them up.\n\n**→ [See it running on my real numbers](https://app.incomeos.dev/p/renzo)** —\nmy own income, live, not demo data.\n\n<p align=\"center\">\n  <img alt=\"IncomeOS dashboard — every income stream on one screen\" src=\"docs/dashboard.png\" width=\"820\">\n</p>\n\nSelf-hosted and MIT. Your revenue lives in **your** Supabase project — no third\nparty ever sees your numbers. Deploy free on Vercel in about five minutes, or\nuse the [hosted version](https://app.incomeos.dev) if you'd rather not maintain\ninfrastructure.\n\n## Ask your AI how much you made\n\nThis is the part nothing else does. IncomeOS ships an **MCP server**, so Claude,\nCursor, or any MCP client can read your income on demand:\n\n> *\"How much did I make this month across everything?\"*\n> *\"Which source grew the most since May?\"*\n> *\"Log $180 for Amazon affiliates in July.\"*\n\n```json\n{\n  \"mcpServers\": {\n    \"incomeos\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"incomeos-mcp\"],\n      \"env\": { \"INCOMEOS_URL\": \"https://your-incomeos.vercel.app\", \"INCOMEOS_TOKEN\": \"your-token\" }\n    }\n  }\n}\n```\n\nTools: `get_income_summary`, `get_sources`, `get_month`, `log_monthly_income`.\nSee [`mcp/`](./mcp). The MCP talks to *your* instance with *your* token — the\ndata never leaves it.\n\n## What it does\n\n- 🔢 **Numbered sources** — `#1 SaaS`, `#2 Amazon`, `#3 Sponsorship`…\n- ⚡ **Stripe on autopilot** — net revenue after fees, auto-grouped per product.\n- ✍️ **Everything else in 10 seconds** — one monthly total per source. The long\n  tail has no API and never will; typing it beats not tracking it.\n- 📅 **Day / month / year**, with pro-rated averages so monthly-only sources\n  still show an honest \"avg per day\".\n- 📈 **Month-over-month trend** per stream, and 🎯 **goals** with live progress.\n\n<p align=\"center\">\n  <img alt=\"Income sources — Stripe products alongside manual sources\" src=\"docs/sources.png\" width=\"820\">\n</p>\n\n<p align=\"center\"><sub>Dashboard screenshots use demo data. The public page above is real.</sub></p>\n\n## Quickstart (~5 min)\n\n1. **Create a Supabase project** (free) and run `supabase/migrations/0001_init.sql`\n   in the SQL editor.\n2. **Deploy to Vercel** (or `npm run dev`) with the env vars from\n   [`.env.example`](./.env.example): `SUPABASE_URL`,\n   `SUPABASE_SERVICE_ROLE_KEY`, `DASHBOARD_TOKEN` (your password), `CRON_SECRET`,\n   and optionally `STRIPE_SECRET_KEY` (a read-only restricted key is plenty).\n3. **Open it, sign in, hit Sync.** Stripe products show up as sources on their\n   own; add the rest with **➕ Add source**.\n\nA daily Vercel Cron keeps Stripe fresh; the **Sync** button pulls on demand.\n\n## Connectors\n\n| Source | Status | How |\n| --- | --- | --- |\n| **Stripe** | ✅ automatic | Net revenue, grouped per product, zero config |\n| Amazon / affiliates | ✍️ manual | Monthly total, one click — no API exists |\n| Marketplaces, ads, sponsorships | ✍️ manual | Same, as numbered sources |\n| Gumroad, Lemon Squeezy, Paddle, Ko-fi, RevenueCat | 🛠️ roadmap | PRs welcome |\n\nEvery source can hold a link to its own dashboard — clicking the card opens it.\n\n## Self-hosted vs hosted\n\nThis repo is the self-hosted build: Stripe, manual sources, all the charts, goals,\nand the MCP. Free forever, no feature held back to sell you something.\n\n[app.incomeos.dev](https://app.incomeos.dev) is the hosted build, and it's ahead\nof this repo on a few things I run for myself: RevenueCat sync, a weekly email\ndigest, the public page linked at the top, and email-link sign-in instead of a\nshared password. Free tier covers unlimited manual sources, every chart, and sync\non demand; **Pro is $9/mo** and adds automatic daily sync.\n\nIf you'd rather not maintain infrastructure, use the hosted one. If you'd rather\nown your database, clone this. Both are the same dashboard.\n\n## Tech\n\nNext.js 16 (App Router) · Supabase (Postgres) · Recharts · Tailwind v4 · Vercel.\n\n## Roadmap\n\n- [x] Income MCP — ask your agent what you made\n- [ ] More connectors (Gumroad, Lemon Squeezy, Paddle, Ko-fi, RevenueCat)\n- [ ] Port the hosted extras back here (digest, public page)\n- [ ] CSV import / export\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n\n---\n\nIf you track income across more than one place, a ⭐ helps other people find this.\n",
  "bytes": 4560,
  "sha": "cd7ffcf2aa6547e5e78752fbe712ebf69f9be9ede06b2e7ceac61a9060131fd9",
  "repo_slug": "perufitlife/incomeos",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_perufitlife_incomeos_f4b11f37/readme"
}