console.ggui.ai
read as.mdconsole.ggui.ai is the user-facing dashboard for the mcp.ggui.ai hosted MCP server. Sign in with Google, GitHub, or email (Cognito). The left-sidebar nav surfaces ten screens in three task-verb groups — Build, Configure, Account. Three more screens are deep-linked into by the OAuth ceremony, the CLI device flow, and an org-invite email — the last is separate from the Invites screen already in the nav, which lists your own pending invites rather than accepting one.
| Group | Screen | Path | What lives here |
|---|---|---|---|
| Build | Apps | /apps |
Per-app surfaces — keys, blueprints, gadgets, marketplace, theme, settings. |
| Configure | Connector keys | /keys/connector |
Mint and list ggui_user_* API keys (revoke via the CLI). |
| Configure | Provider keys | /keys/providers |
BYOK — paste your Anthropic / OpenAI / Google / OpenRouter keys. |
| Configure | Author keys | /keys/authors |
Publisher Ed25519 signing keys — list and two-step revoke. |
| Configure | Credits | /credits |
Balance, transaction log, coupon redeem, Stripe top-up. |
| Account | Orgs | /orgs |
Organizations you belong to; org-scoped wallets, invites, members. |
| Account | Invites | /invites |
Your own pending org invites, looked up by email. |
| Account | Connected apps | /connections |
OAuth clients that have access to your account — see below. |
| Account | Account | /account |
Email, default app, sign out. |
| Account | Support | /support |
Contact ggui — one page, one email, no case system yet. |
| — | OAuth consent | /oauth/consent |
Approval landing for MCP-Apps-aware clients (Claude Desktop, etc.). |
| — | CLI sign-in | /cli-confirm/[code] |
Approval landing for the ggui CLI’s device flow. |
| — | Org invite | /invites/[inviteId] |
Auto-accept landing for an org-invite email link. |
The home path / redirects to /apps — apps are the primary primitive in the current IA (post-2026-05 apps pivot). You don’t visit /oauth/consent or /cli-confirm/* directly — the MCP host or the CLI navigates you there at the right moment.
Apps (/apps)
Section titled “Apps (/apps)”Apps are the primary primitive. Each app is a scope that owns its own blueprints, theme, marketplace installs, and per-app API keys. New accounts land here with a single default app already provisioned; create more from this page.
Per-app sub-routes (under /apps/[appId]/), in nav order:
- Overview (
/apps/[appId]) — the connect checklist, the MCP connect config snippet, and the app’s render activity. This is where the app id lands you. - Blueprints (
/blueprints) — the app’s blueprint library: view source, rename, edit metadata, delete. - Gadgets (
/apps/[appId]/gadgets) — the app’s resolved gadget catalog, exactly what agents receive fromggui_list_gadgets: the stdlib floor, web-installed rows, and theggui.json-declared overlay (floor < installed < declared). Installed rows get a Remove action and a version-pin menu. - Marketplace (
/marketplace) — browse and install published blueprints and gadgets; a kind toggle switches the search between the two. - Keys (
/keys) — per-app connector keys (ggui_user_*rows bound to thisappId, so the pod locks the session to this app) and per-app BYOK provider-key overrides (precedence over the user-pool BYOK keys for renders bound to this app). - Theme (
/theme) — per-app theme overrides. - Settings (
/settings) — display name, system prompt, per-key rate limit, delete app.
Blueprints are matched during ggui_handshake, before any generation. Curated app blueprints match deterministically when the agent’s declared tools cover the blueprint’s dataTools (deterministic, zero-LLM); other cached blueprints are reused by contract similarity. Either way, a hit renders with zero generation cost. See the generation pipeline for the matching flow and Marketplace for authoring + distribution.
Orgs (/orgs)
Section titled “Orgs (/orgs)”Organizations you belong to, each with its own credit wallet, member list, and invite flow. Per-org detail lives under /orgs/[orgId], and invite-email links land at /invites/[inviteId]. See Orgs and teams.
Connector keys (/keys/connector)
Section titled “Connector keys (/keys/connector)”Every ggui_user_* key on your account, whichever path minted it — the console, an OAuth ceremony, or the CLI. See Connector keys.
Connected apps (/connections)
Section titled “Connected apps (/connections)”OAuth clients (Claude Desktop, claude.ai, Goose, …) that have registered against your account via Dynamic Client Registration. The per-client list and per-row revoke aren’t available yet — OAuth-grant storage is pod-local and not scoped by user, so there is no per-user list to safely show today.
Revocation works today at the key level instead: every OAuth approval, console mint, and CLI mint lands in the same table at Connector keys (/keys/connector). Revoke the ggui_user_* row there (via the CLI: ggui keys revoke <id>) and every client holding that key loses access immediately — which is also the argument for minting one key per client, so you can cut off one without disturbing the rest.
Credits (/credits)
Section titled “Credits (/credits)”Balance, transaction log, Stripe top-up, and coupon redemption. See Credits, billing & BYOK.
Provider keys / BYOK (/keys/providers)
Section titled “Provider keys / BYOK (/keys/providers)”Your account-wide Anthropic / OpenAI / Google / OpenRouter keys, so model calls run on your provider account instead of ggui’s pool. See Credits, billing & BYOK.
Account (/account)
Section titled “Account (/account)”Email, default app selection, sign out, and account deletion.
Ask the console
Section titled “Ask the console”A persistent agent helper is mounted in the sidebar (cmd-K to focus it; a floating Ask launcher opens the same input in a bottom sheet on mobile). Type a natural-language request and it renders its answer as a generative-UI surface inside the console itself — the console dogfooding the same generation it hosts. Saved results group under helper history in the app’s Blueprints tab (see Apps above).
OAuth consent (/oauth/consent)
Section titled “OAuth consent (/oauth/consent)”The browser landing for MCP-Apps-aware clients running through the OAuth ceremony. When Claude Desktop (or any compatible host) asks mcp.ggui.ai to authorize, the server 302s the browser here with the OAuth params.
You see:
- The requesting client’s name (from DCR
client_name). - The scope being requested (
mcp). - Two buttons: Approve / Cancel.
Approve mints a fresh ggui_user_* key (default label MCP — <shortClientId> — <date>, editable via the Key-name field; per-app flows that carried an RFC 8707 resource get the appId bound on the row so the session locks to that app) and posts it back to the MCP server through a cross-origin form POST. The server completes the OAuth flow and the client’s next /mcp request authenticates with the new key.
Cancel redirects back to the client with error=access_denied per RFC 6749 §4.1.2.1. The MCP server is never contacted; nothing is minted.
You don’t visit this URL directly — the MCP host sends you here at OAuth time.
CLI sign-in (/cli-confirm/[user_code])
Section titled “CLI sign-in (/cli-confirm/[user_code])”The browser landing for the ggui login device flow. The CLI prints a URL like:
https://console.ggui.ai/cli-confirm/AB12-CD34Open it, sign in if you aren’t already, confirm the codes match, click Approve. The CLI’s polling on /v1/auth/poll flips to approved and tokens land at ~/.ggui/auth.json.
Same trust model as the OAuth consent screen — confirm the code matches what the CLI printed before approving.
Account model
Section titled “Account model”One Cognito user owns one ggui account. User-scoped data on the dashboard (your keys, your blueprints, your personal credit balance, your provider keys) is visible only to you via owner-auth on every model. Org-scoped data (org wallet, org members, org-scoped blueprints) is gated by org membership.