Introduction
Computer-use automation for back-office banking apps — discovery once, deterministic replay forever.
BankGPT is the backend integration layer that gives an AI agent hands inside applications with no API.
An LLM discovers a back-office UI flow once — driving a real browser, observing the accessibility tree, one structured model call per step — and the successful run is distilled into a typed, versioned capability artifact. From then on the flow replays deterministically with zero model calls: a calling AI agent invokes the capability with typed inputs and gets back typed outputs, a known business outcome, or a debuggable failure. Human operators approve risky actions (with maker ≠ checker segregation) and can take over the same live session when automation gets stuck, then hand control back.
The through-line:
goal → discovery (model in the loop) → artifact (typed contract)
→ replay (no model) → structured resultwith policy enforced and evidence captured at every step.

The system at a glance
| App | Role | Port |
|---|---|---|
apps/frontend | Operator console (/admin) + caller simulation (/chat). Next.js 16, React 19. | 3000 |
apps/engine | Automation service: discovery loop, artifacts, replay, approvals, live handoff. | 4011 |
apps/mockbank | FinCore Teller — the deliberately hostile mock banking console used as the proxy target. | 4010 |
apps/docs | This documentation site (Fumadocs). | 3001 |
Why it works this way
- Discovery once, replay forever. Model calls are expensive, nondeterministic, and unauditable. They happen exactly once per flow; the recorded artifact is what runs in production.
- The artifact is the contract. Human reviewers read it, the replay executor interprets it, and the calling agent treats it as a typed function signature. One zod schema is the single source of truth.
- Humans stay in the loop. Risky capabilities refuse to run without a segregated operator approval, and a stuck run hands the same live browser session to a human and back — no restart, no hidden state.
- Every run leaves evidence. Step logs, model transcripts, failure screenshots, and the control log are stored per run and served back over the engine API.
Where to next
Running locally
One command starts the whole demo — install, environment, and ports.
Operator console
A screenshot tour of every admin screen and the caller chat.
Architecture
Three processes with explicit boundaries and the discovery → artifact → replay loop.
Discovery
How the LLM drives a live browser and what happens per step.
Capabilities
The artifact contract and the review gate that guards risky actions.
Replay & results
Deterministic execution, typed inputs, and the four run outcomes.
Approvals & handoff
Maker ≠ checker approvals and the live take-over panel.
Engine API
Every HTTP route and the WebSocket control channel.
CLI
The graded demo path: discover and replay from the terminal.
Mockbank target
FinCore Teller — the deliberately hostile proxy application.
Evidence & storage
Where step logs, transcripts, and screenshots live.
Troubleshooting
Ports, approvals, evidence, and engine-offline symptoms.