Unified dashboard
Track net worth, balances, category spending, credit utilization, and recurring costs in one daily-updated view.
Powerhour connects to your banks via Plaid, syncs transactions daily, and gives you two AI agents — Ticker for Q&A and a Budget Planner for goal-setting. All on your own infrastructure.
24
AI tools across two agents
9
PDF report sections
16
Database tables
Account aggregation, historical analytics, AI planning workflows, and audit-friendly security controls in a single codebase you own.
Track net worth, balances, category spending, credit utilization, and recurring costs in one daily-updated view.
Ask direct questions about spending behavior, account balances, transaction history, and anomalies using real synced data.
Generate travel budgets, savings plans, and spend-reduction strategies with mode-specific agent workflows.
Produce detailed financial reports with charts and AI summaries without writing files to disk on the server.
Identify recurring charges with no activity in 90+ days and estimate monthly savings at risk.
Create category caps from recent spending trends and track progress from the dashboard.
Encrypted secrets, constrained agent data access, verified webhooks, and event auditing at the infrastructure level.
Read security modelAES-256-GCM token encryption
Plaid access tokens are encrypted at rest using AES-256-GCM. Keys never leave the server environment.
Database-layer agent boundaries
Agent tool access is constrained through database views that exclude sensitive columns from AI context.
Layered rate limiting
Independent rate limits on login, chat, reports, and global API traffic prevent abuse at each surface.
Webhook signature verification
Plaid webhooks are verified with JWT signature and body-hash checks before any processing occurs.
Audit log for security events
Critical account and security events (login, token exchange, deletions) are recorded with IP and timestamp.
git clone https://github.com/your-username/powerhour
cp .env.example .env
# Configure your credentials:
# DATABASE_URL=postgres://...
# PLAID_CLIENT_ID=...
# PLAID_SECRET=...
# SESSION_SECRET=...
npm run db:migrate
npm run devClone the repository, copy .env.example to .env, and fill in your Plaid credentials, database URL, and session secret.
Powerhour uses Drizzle ORM. Run the migration command to create all 16 tables.
Start in development mode or build for production. Compatible with any Node.js host.
Powerhour is MIT-licensed and self-hosted. Clone the repo, run the migrations, and own your financial data stack.