Agentic AIStatus: Case StudyYear: 2026
Hushh Personal Agent
A personal AI agent that asks before it reads: consent is enforced by the server, not the prompt.
- TypeScript
- Express
- React
A look inside
5 screens from the real build. Select any to see it full size.
Overview
A consent-first personal AI agent: a central agent routes requests to specialist agents for finance and creator work, and the server checks stored consent before any of them reads your data.
Personal AI agents need access to sensitive data, but consent written into a prompt is a suggestion, not a control.
What I built
Built the proof of concept: the orchestrator and specialist agents, the consent API and its history, and the React interface.
What it does
- Consent-gated agent handoff
- Per-category consent with history
- Kai, a finance assistant
- Nav, creator data controls
System and architecture
A personal agent routes each request to a specialist found through A2A agent cards. Before any data is read, the API checks the user's stored consent for that category, and every consent change is recorded with its history.
A React 19 and Vite frontend talks to an Express API written in TypeScript. The orchestrator classifies each request and hands it to Kai (finance) or Nav (creator) through A2A agent cards. Kai uses Gemini only to extract the intent and numbers, then answers with arithmetic over a saved finance snapshot and names the snapshot it used. Payments follow AP2-style signed mandates that need human approval; signatures and payment rails are simulated. Data lives in SQLite through Prisma and libSQL.
- Interface
- API & services
- Retrieval & data
- AI & models
- Consent checked in the API against stored records
- Specialist agents discovered through A2A agent cards
- The model extracts; plain arithmetic decides
Technology
Themes
Challenges and trade-offs
- Keeping the model away from the arithmetic so answers stay correct.
- Making consent enforceable rather than a line in a prompt.
Outcome
Consent-gated agents · A2A · Gemini extraction
- Revoked consent blocks a request before any data is read.
- Every finance answer names the snapshot it was computed from.
Learnings
- Consent belongs in the data layer, not the prompt.
- Letting the model extract and code compute keeps finance answers checkable.