How Mino works
Mino is an AI-powered web automation platform. Give it a URL and a goal — it provisions a remote browser, runs an AI agent that navigates and extracts data, and streams results back in real-time.
System diagram
Click any component to dive deeper. Hover to see connections.
Request lifecycle
From user submission to structured results — every step of a Mino automation run.
Via Web UI, REST API, MCP, or Python SDK
MySQL row + SQS message dispatched
Checks billing, acquires concurrency slot
Gemini generates tool calls, Playwright executes
Unikraft boots VM, Tetra proxies CDP
Up to 150 steps, live-streamed via SSE
JSON output + browser cleaned up
Building blocks
UX Labs
Frontend, REST API, MCP server, and SSE event bridge. The main entry point for everything.
tinyfish-io/ux-labs
Task Worker
SQS consumer that bridges the job queue with EVA. Handles concurrency, billing, and retries.
tinyfish-io/ux-labs → task-worker/
EVA
The AI brain. Google ADK + Gemini agent that drives the browser with 15 tools.
tinyfish-io/eva
WADL & Tetra
Browser infrastructure — WADL provisions browsers, Tetra runs them in microVMs with CDP proxy.
tinyfish-io/wadl + tinyfish-io/unikraft-cdp
Nemo
Next-gen orchestration. Plans once with LLM, codifies to deterministic steps, replays without AI.
tinyfish-io/web-agent
Repository map
| Repo | Language | Purpose |
|---|---|---|
| tinyfish-io/ux-labs | TypeScript (Next.js) | Frontend, API, DB, MCP, Task Worker |
| tinyfish-io/eva | Python (FastAPI) | AI web automation service |
| tinyfish-io/web-agent | Python (LangGraph) | Nemo orchestration engine |
| tinyfish-io/wadl | Python (FastAPI) | API gateway + browser provisioning |
| tinyfish-io/unikraft-cdp | TypeScript | Tetra CDP proxy (current) |
| tinyfish-io/tetra | — | Tetra standalone (migration target) |
| tinyfish-io/tf-common | Python | Shared library |