Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
Create professional invoices instantly with our free invoice template generator. AI-powered voice commands, real-time preview, and PDF export.
FinanceTypeScript · MDXGitHub @coreyhaines31OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Free, open-source invoicing: live preview, voice dictation, PDF export, e-signatures, and Stripe payments
Loading the full README.
Read the full README ↗Free, open-source invoicing. Build an invoice in the browser with a live preview, dictate it by voice, download a PDF, email it, and get paid by card through Stripe. The hosted version is at invoicecommand.com.
packages/cli, packages/mcp) for creating and sending invoices from scripts or AI agentsNext.js 15 (App Router, Turbopack) · TypeScript · Tailwind CSS v4 + shadcn/ui · Postgres via Drizzle · Better Auth · Stripe Connect · Resend · OpenAI · Sentry · PostHog
Requires Node.js 22.12 or newer and a Postgres database (a free Neon project works).
npm install
# create .env.local with the variables below; DATABASE_URL and BETTER_AUTH_SECRET are enough to start
npm run db:push # creates the tables
npm run dev # http://localhost:3005
| Variable | Needed for |
|---|---|
DATABASE_URL | Postgres connection string (required) |
BETTER_AUTH_SECRET | Session signing, any long random string (required) |
NEXT_PUBLIC_APP_URL | Absolute links in emails and share links, e.g. http://localhost:3005 |
STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, STRIPE_WEBHOOK_SECRET | Card payments via Stripe Connect (Express accounts) |
RESEND_API_KEY, RESEND_FROM_EMAIL, RESEND_APP_FROM_EMAIL, RESEND_REPLY_TO | Emailing invoices |
SUPPORT_EMAIL | Inbox that receives the in-app support form |
OPENAI_API_KEY | Voice dictation |
CRON_SECRET | The scheduled jobs in vercel.json |
NEXT_PUBLIC_SENTRY_DSN, NEXT_PUBLIC_POSTHOG_KEY, NEXT_PUBLIC_POSTHOG_HOST | Error tracking and analytics (optional) |
Features whose keys are missing stay off; the invoice builder itself works with just the database and auth secret.
npm test # Jest unit and component tests
npm run test:e2e # end-to-end tests in a real browser
The end-to-end tests use e2e: an AI agent drives the app through flows like building an invoice, and exact assertions check the results. Agent steps call a model through the Vercel AI Gateway, so set AI_GATEWAY_API_KEY (or vercel link the project). The runner starts the dev server itself.
Issues and pull requests are welcome. See CONTRIBUTING.md. Contributors sign a short CLA on their first pull request.
AGPL-3.0. You can use, modify, and self-host Invoice Command freely. If you run a modified version as a network service, you must make your source code available to its users under the same license.