Workspace
The operational tools for the owner's team: sign-in codes relay, AI task queue, Canvas device login, the sandboxed worker and the admin pages. Every page here requires a browser login.
Transcription web app
/app/ — login required (approved account).
The single-page web UI for Whisper transcription: upload or paste a URL, pick an output mode (transcribe, srt, perfect-srt, bilingual-srt, translated-srt, …), watch the job progress and download the result. Audio is extracted in the browser with ffmpeg.wasm, which has a memory ceiling of about 2 GB; extract audio locally with ffmpeg first for very large videos. History is kept per browser and, when signed in, per user.
Sign-in codes relay
/signin-codes — login required (approved users, filtered to the services they are granted).
Watches shared-account mailboxes over IMAP and shows the latest login OTP or magic link on an auth-gated board, so each approved person can grab their own code without access to the mailbox. Extraction is regex-first with false-positive guards.
/admin/otp — admin only. Manage inboxes and services, grant per-user access, and test a mailbox connection. New inboxes are added from this page. A failure in the relay never breaks transcription.
AI task queue
/tasks — login required.
An approve-then-run board. Approved users submit a task for a project; the owner reviews and approves it; a headless coding agent then runs it per project. Nothing runs without approval.
/admin/tasks — admin only. Approve, watch and manage queued tasks.
Canvas device login
Canvas is the desktop editor that connects an AI through MCP. It signs in with an approved-account device flow, not an API key. Summary of the protocol (full detail in the repository's docs/CANVAS-AUTH.md):
- The client generates a random verifier and sends its SHA-256 as
challengeto POST /api/canvas/devices/start, receiving{device_code, user_code, verification_uri, expires_in: 600, interval: 3}. - The person opens
/api/canvas/devices/verifyin the browser (login required), enters the code and explicitly presses Approve this device. Completing Google login alone approves nothing. - The client polls POST /api/canvas/devices/poll with
{device_code, verifier}every 3 seconds until{status: "approved", refresh_token, access_token, expires_in: 60, account}. - The 30-day refresh token goes in the OS credential store; POST /api/canvas/refresh returns new 60-second access tokens. GET /api/canvas/session and POST /api/canvas/logout complete the set.
Only current accounts with role user or admin and not suspended qualify. API keys never authorize these endpoints; a Canvas token is refused everywhere else. Bodies are limited to 4096 bytes; codes and tokens never go in URLs. Rate limits: start 30/min, poll 300/min, verification 20/min, refresh 120/min, one poll per device per 3 s.
The public Canvas AI guide and exact tool schemas are served at /app/canvas/ai-guide.html, /app/canvas/ai-guide.md and /app/canvas/mcp-tools.json.
Sandboxed worker (API)
POST /api/ai/worker, GET /api/ai/worker/jobs/{job_id}, POST /api/ai/worker/jobs/{job_id}/cancel, GET /api/ai/worker/profiles — API key or approved login, always; no local-network bypass. Default-deny: a custom key can use only the profiles in its worker_profiles capability.
| Profile | Tools | Status |
|---|---|---|
research |
search_web only; supplied files refused |
available |
read_docs |
exact-input view_file only; no network tools |
available |
browser_qa, workspace, notebook, fanout |
intended | withheld: requesting one returns HTTP 409 |
curl -sS https://maximind.dev/api/ai/worker \
-H "x-api-key: $MAXIMIND_API_KEY" -H 'content-type: application/json' \
-d '{"profile":"research","brief":"Find the current official Python documentation homepage and cite the source.","effort":"low","timeout":180}'
{"ok": true, "job_id": "opaque-id", "status": "queued"}
Results carry text, optional artifacts and a receipt (profile, tools_used, denied, paths_outside_workspace, origins_visited, isolation, gate_verified). Brief limit 32,000 characters; read_docs inputs follow the attachment limits in Vision; 8 admitted jobs per key per day; default model timeout 900 s, hard cap 1,800 s. Expect 90 to 110 seconds minimum for a one-tool cold job. Answers or artifacts containing secret-shaped values are denied. The admin kill switch is POST /api/admin/worker/settings with {"enabled": false}.
Admin pages
All admin pages require an admin browser session or the Primary Key. Custom API keys can never call /admin/*.
| Page or endpoint | Purpose |
|---|---|
/admin |
Approve pending accounts; user roles. |
/admin#/apikeys |
API keys table and the Usage & Spending board (money totals, request counts, error rates, per-key drilldowns). |
/admin/api-access |
Per-key capability profiles: tasks, engines, media, worker profiles. |
/admin/ai-accounts |
Engine account slots: priority order, rename, add, sign in. Alert emails link here with ?signin=<id>. |
/admin/code |
MaxiMind Code: enable or disable people, list and revoke computers. |
/admin/otp, /admin/tasks |
Sign-in codes relay and task queue administration. |
GET /admin/usage |
Per-actor and per-endpoint credit rollups (all time and 30 days) plus the credit_costs price list. |
GET /admin/queue |
Live single-lane queue: running, waiting, recent, counts. Safe to poll every 1 to 2 s; in-memory, reset on restart. |
POST /admin/api-keys, PATCH /admin/api-keys/{id} |
Create keys and edit label, project, product. |
GET /api/ai/subscriptions/status, POST …/recheck |
What the site boards read; force a re-check. |
GET /api/ai/health |
Service health, including code_active (must be 0 before a restart). |
curl -s https://maximind.dev/admin/usage -H "x-api-key: $PRIMARY_KEY"
{"ok": true, "by_actor": [{"actor": "API: Primary Key", "actor_type": "api_key", "requests": 5, "credits": 13, "last_seen": 1782563285.4}],
"by_endpoint": [{"endpoint": "web_scrape", "requests": 1, "credits": 1}],
"last_30_days": [{"actor": "API: Primary Key", "requests": 5, "credits": 13}],
"total_requests": 7, "total_credits": 23,
"credit_costs": {"transcript_native": 1, "transcript_generated_per_min": 2, "video": 1, "channel": 1, "playlist": 1, "web_scrape": 1, "chat": 1, "image": 5, "tts": 1, "translate_per_min": 30, "file_transcribe_per_min": 2}}
User pages
| Page | Purpose |
|---|---|
/code/account |
Your own MaxiMind Code computers; revoke any of them. |
/lab |
AI Studio: model and voice dropdowns with 1 to 5 star ratings. |
/docs/ai, /docs/models.md, /docs/code-install.md, /docs/code-releases.md |
Served documentation. |