Everything around your agent,
job by job.
The part of an AI product that is not the AI is the same in every one of them. Here it is, finished: 29 services and surfaces that exist in the packages today, under the job each one takes off you.
Sign them up
Who is signed in, which workspace they are in, and what they may do there.
- authsign-in with email; Google and GitHub once you add keys
- authemail verification
- authpassword reset
- authworkspaces with an active one that persists
- authowner / admin / member roles
- authinvitations — expiry, cancel, accept
- authsole-owner protection, ownership transfer
Charge for it
What a plan allows, what a customer has left, and how they pay for more.
- billingplans as data, feature gates
- billinga monthly allowance per plan, reset on the invoice
- billingcredit balances
- billingtrials with abuse checks and conversion, once you register one
- billingStripe subscriptions, credit packs, portal
- billingidempotent webhooks through a finance ledger
- billinga provider contract for QR and invoice payments
Account for every run
What each call to a model cost, who it was for, and that it was charged exactly once.
- billingworst-case reservations, released on failure
- billingusage and cost per request, monthly rollups
- executionsexecution records: actor, capability, model
- executionsmodel registry with per-token pricing
Keep what they make
The conversations, documents and notices a product accumulates — and the customer's right to take them or delete them.
- coreconversations with cursor pagination
- coredocuments with versions and ownership checks
- corenotifications with read state
- coredata export, memory audit, per-fact deletion
Run it
What you reach for on the day something goes wrong, and the checks that make that day rarer.
- auditappend-only audit events
- jobsa Postgres job queue, no Redis — the worker route is yours
- adminan admin console with audited impersonation, one add away
- clidoctor: env, migrations, billing registration, model ids and secrets, checked before an incident
- climigrate by content hash, in one transaction; --check --json as a deploy gate
- cliupgrade --check, which knows the generated files you edited
- clia maintenance route: stale runs reconciled, expired holds and trials dropped, old jobs pruned
The pages in front of it
Every service above already has its screen. They land in your repository as your own code, and you vary them through config and message files rather than forks.
- AuthAuth: LoginAuth: SignupAuth: Password ResetAuth: Email VerificationOnboardingInvitation Accept
- ShellApp ShellDashboardNotificationsLanguage SwitcherTrial BannerRoute Error States
- SettingsSettings ShellWorkspace SettingsTeam SettingsProfile SettingsPrivacy Settings
- CommercePricingCheckoutBilling SettingsUsageFeature GatingQR Payment (poll)
- AIChatChat PanelChat WidgetChat ShareArtifacts
Ready to try it? Three commands and the app runs against a stub model.