Skip to content

What's new in Mastery HQ

The short version of every release. For how updates reach you, see updating Mastery HQ.

Nothing yet — freshly cut.

  • drive pick — bring any Drive file into a conversation — the Google file picker opens inside the app; the file you choose becomes readable to Mastery HQ (one file at a time, by your explicit pick — the privacy model stays “the app sees only what you hand it”). Type drive pick in an agent window; one-time setup: an API key from your Cloud Console in Settings → Google.
  • Pick your video model — Settings → Brand gains a Default video model choice alongside the image one: Veo 3.1 Lite (fast default), Veo 3.1, Sora 2 Pro (top shelf, priced to match), or Seedance 2.0 Fast (cheap b-roll). Applies to “generate a video of …” and the b-roll leg of brand reels; the budget and confirm card watch whichever you choose.
  • “Shipped” now means shipped — the Command Center’s ship count and “What shipped” feed used to log every link an agent mentioned (a weather site cited in an answer counted as a “ship”). Now only the agent’s own output counts: files it created, dev servers it’s running, and sites on deploy platforms (pages.dev, vercel.app, github.io, …). Cited links still get their Open chips — they just aren’t trophies. Old reference-“ships” are cleaned out of your metrics automatically.
  • Email polish — every send now records Gmail’s own acceptance line (code + queue id) in the Audit Log, and emailing an empty conversation refuses honestly instead of sending a header-only mail.
  • Generated videos actually play now — video panes for bumpers, clips, and reels used to show a permanently black frame: the app’s own file permissions never allowed the webview to read workspace attachments, so every generated video silently failed to load. That’s fixed, and on top of it a generated video now starts playing the moment its pane lands (no waiting for a click), and local brand renders no longer flash a Chrome window — they run through Remotion’s invisible headless engine, with your installed Chrome as a silent fallback.
  • Drive round-trips (Workspace M4) — type drive <query> in an agent pane to read a saved Doc/Sheet back into the conversation (the recall pattern, pointed at Drive); the Command Center’s Log row appends a summary row to a running Command Center metrics log Sheet instead of minting a new file per export; and a Settings → Google toggle auto-archives every clean run’s transcript to Docs, silently, with the link left in the pane. Still drive.file-scoped — the app only ever sees files it created.
  • Pick your image model — Settings → Brand gains an Image model choice: Nano Banana 2 (the fast Gemini default, upgraded from the classic), ChatGPT Image 2, Nano Banana Pro (highest quality), or classic Nano Banana. Same key, same brand injection, same budget — just a different artist.
  • Brand reels — AI b-roll with your brand on top“make a brand reel of waves crashing saying ship faster” generates a real AI clip, then finishes it locally with your brand-exact title overlay (name, accent underline, tagline over a readable scrim). The paid leg is just the b-roll (budget + confirm card apply); the overlay render is free and deterministic. Agents can request one with [[reel: subject | tagline]].
  • Email from Mastery HQ (Gmail) — set up once in Settings → Google → Email (a Gmail app password, encrypted on-device — no OAuth), then “email the transcript to [email protected] mails the focused agent’s conversation from your own address. Every send — typed, voice, or remote — confirms on a card first (recipient, subject, preview; auto-cancels in 90s unattended), first-time recipients are flagged, and sends cap at 20/day. See Send email from Mastery HQ.
  • Generated video clips (Video M2)“generate a video of the fortress at dawn” produces a real AI-generated clip in your brand’s style and drops it on the canvas as a video pane (saved to the workspace’s attachments too). Runs through OpenRouter’s video API with the same key as images — Veo by default, Sora and friends selectable later — and takes a few minutes. Video money is real money: the daily media budget applies, pricier estimates show the confirm card first, and the toast reports the actual billed cost. Agents can request clips with [[video: …]].
  • Agents can request on-brand media — an agent that wants a visual simply writes [[image: a hero banner for the launch]] (or [[image logo-mark: …]], or [[bumper: ship faster]]) on its own line in its reply, and Mastery HQ renders it onto the canvas when the run finishes. Same pipeline as your own commands: Brand Kit injection, daily budget, confirmation, and an Audit Log entry naming the requesting agent. Every agent learns the syntax automatically at the start of a conversation.
  • A real confirm card for pricey generations — the over-threshold image confirmation is now a proper in-app card (estimate, today’s spend, one-click generate/cancel) instead of a browser dialog, and it declines itself after 90 seconds so a remote or agent-triggered run never hangs waiting for a click.
  • Help moved to the top bar — the ? now lives in the top chrome between the device-preview and Settings buttons (it’s app chrome, not a drawing tool), so it stays reachable even while the left toolbar is tucked away as the TB orb.
  • Brand bumper videos“make a brand bumper saying ship faster” renders a brand-exact 5-second title video locally (your literal colors, fonts, and name — deterministic, free, no generation API) and drops it on the canvas. Settings → Setup shows a “Brand video renders” readiness row.
  • Image template presets“generate a hero image for X”, “an og card about Y”, “a social square for Z”, “a logo mark of W”, “a feature frame of V” — each preset brings its own composition and aspect ratio (wide hero, square logo, …), with your brand injected as always. Add your own presets as JSON files in the app’s media-templates/ folder.
  • Brand images on demand — define your brand once in Settings → Brand (colors, fonts, imagery style, tone — with a live preview of what models receive), then “generate an image of …” drops an on-brand image straight onto the canvas. One OPENROUTER_API_KEY reaches 30+ image models; every toast shows the actual billed cost, spending honors a daily cap, and pricey runs confirm first.
  • The toolbar tucks itself away — shrink the left toolbar with the chevron at its top (or just leave it alone) and it becomes a small glowing TB orb docked bottom-left; hover the orb to bring the full bar back. It never auto-hides while a drawing tool is selected.
  • Google Drive everywhere — the Command Center exports its range straight to a Google Sheet, the Benchmark saves its report as a Doc and its leaderboard as a Sheet, and the Sprint Board saves a one-click board snapshot Doc. Transcript saves now leave a “Saved to Google Docs: ⟨link⟩” line in the conversation, and Settings → Setup shows an Accounts group with your GitHub/Google connection state.
  • Claude agents answer near-instantly after the first message — each Claude window now keeps one live CLI process between turns, so only your first send pays the engine’s start-up cost; every later message begins streaming immediately. Stop still works mid-turn, and the conversation picks up right where it left off on your next send.
  • Save to Google Docs — connect your Google account once (Settings → Google), then a Docs button in any agent window saves the transcript into your Drive as a real Google Doc — markdown headings and links convert properly, files land in a Mastery HQ / ⟨workspace⟩ folder, and the Doc opens in your browser. The app uses Google’s narrowest Drive permission: it can only ever see files it created. See Save to Google Docs.
  • The voice test tells the truth now — Settings → Voice’s test button used to ping an optional self-hosted server and report a scary ✕ on perfectly healthy installs. Test voice engine now runs a real on-device transcription through the same path dictation uses.
  • Stop is always reachable — on narrow agent windows the actions row used to overflow and hide the Stop button mid-run; the row now wraps so Stop is always clickable.
  • Claude replies stream in live — a Claude Code agent used to show nothing until its whole turn finished (long tasks looked hung for minutes). Now the reply appears as it’s being written, tool activity shows as it happens (⚙ Bash — npm test), and the model name appears about a second after you send. Same real token accounting and conversation continuity as before.
  • Snappier everywhere — main-thread cleanup — a class of actions used to freeze the whole app while they worked: Grok voice replies and speech synthesis, Browser-pane page loads, GitHub operations (connect, repo lists, syncs, pushes — a first clone could freeze the app for minutes), the Setup tab’s agent scan, offline voice transcription, and the Usage pane’s refresh (which re-read every agent log — hundreds of MB — every 15 seconds). All of that now runs in the background; the app stays responsive throughout.
  • Spoken replies are brief and never read web addresses — the voice no longer recites URLs (links speak as their title, bare addresses are skipped) and long agent replies are trimmed to a natural sentence instead of being read wall-to-wall. The transcript always keeps the full text; ask for detail if you want it spoken.
  • Faster pre-run repo sync — agents assigned to a GitHub repo no longer fetch before every message; the sync runs at most once every 5 minutes per agent + repo.
  • Smaller, faster app — the shipped binary dropped from ~62 MB to ~15 MB with optimized release builds.
  • Rate-limit account failover — add a second Claude Code or Codex account (Settings → Agents → Accounts) and a run that hits its usage limit switches to the next available account and re-runs on the spot. The limited account rests until its window resets (parsed from the CLI’s own notice when possible), then rejoins; every switch is toasted, noted in the transcript, and written to the Audit Log. Works everywhere runs happen: agent windows, Hermes plans, loops, and judges.
  • One voice at a time — and it prefers Grok — spoken output no longer overlaps (the system voice used to talk over a playing Grok/OpenAI voice), and if you use Grok anywhere (key set, Grok brain, or Grok voice sessions), Grok is now your speaking voice everywhere — agent output, command acks, and voice sessions all sound like the same assistant.
  • Grok voice failures are loud now — if the Grok (xAI) voice can’t speak, the app tells you exactly why in a toast (bad key, API error, …) instead of silently dropping to the robotic system voice.
  • GitHub connection upgraded to a GitHub App (M6) — new connections use a fine-grained GitHub App: the token only reaches repositories where you installed the app, and short-lived tokens refresh silently in the background. The Settings tab now explains an empty repo list (app not installed yet) and links you to the install page. Existing connections keep working; bring-your-own Client ID still accepts either app type.
  • TV Guide works out of the box — the guide no longer needs a URL: it auto-loads built-in programme data covering the major free streaming services (Pluto TV, Samsung TV Plus, Plex, Roku, PBS), which is most of what’s reliably watchable in the catalog. Paste your own XMLTV URL to use a provider guide instead; saving it empty returns to the built-in one.
  • Hermes commands reach your agents — a remote command that isn’t a workspace phrase (like “tell Bo to run the tests”) now routes to the named agent — or the focused one — exactly like typing it in the command bar, instead of coming back “unrecognized”. Saying just an agent’s name (“Alex”) brings that agent to the front.
  • Open a specific agent by voice“new codex agent”, “open claude”, “launch opencode”, “new openrouter agent”, “new cursor agent” (plus Gemini, Aider, and Copilot) open exactly that agent type; “new agent” still opens your default.
  • No more duplicate agent names — two agents can never share a name again, in any casing: every way an agent is created or renamed now auto-numbers a collision (“bo” next to an open “Bo” becomes “bo 2”). Names are how profiles, voice routing, and repo assignment find an agent, so they stay unambiguous.
  • New engine-start sound — the launch cue’s engine is now a real engine recording (the sword swish stays).
  • GitHub, connected — link your GitHub account in Settings → GitHub (device sign-in, no password in the app; token encrypted on-device). Browse every repo you can access, create new ones, and — the point of it all — put your agents to work on them. See Connect GitHub.
  • A repo per agent — every agent window gets a ⎇ Assign repo chip: pick a repository and that agent works inside its own private checkout (a git worktree on its own mastery/<name> branch), so parallel agents never collide. Works by voice too: “assign the repo masteryhq-landing to Alex”, “put Bo on infra-ops”, “create a private repo called billing-service” — and from Hermes.
  • Repos, kept maintained — choose what happens when an assigned agent finishes a run: nothing (review yourself), auto commit + push its branch, or auto open a pull request for your review. Agents sync to your latest default branch before each run, can never touch the default branch directly, never force-push, and every push/PR lands in the Audit Log.
  • Training game: public leaderboard — the finish screen can now submit your score to masteryhq.dev/leaderboard. Confirm with one email tap (no account); only your best score counts.
  • Hermes behind Cloudflare Access — a Hermes connection can now reach a relay that’s gated by a Cloudflare Access service token. Settings → Hermes gains Access Client ID and Access Client Secret fields; Mastery HQ sends them on the WebSocket handshake so the connection passes the edge gate (your device token still authenticates to the relay underneath). Leave them blank for a plain Tailscale or ws:// relay.
  • Real code editor — the Code pane is now a working CodeMirror editor: open a file from disk, edit it with syntax highlighting (JS/TS, Python, Rust, JSON, Markdown, HTML, CSS), and save with the button or Ctrl+S. Open it with “open code editor” (command bar or voice).
  • Dashboard: by-project + automation — the Command Center leaderboard now has a Project view (alongside Agent/Model), and a new Automation card tracks refine-until-good loop passes (and how many cleared the bar) plus Model Council runs.
  • Attach buttons show their icons again — the two controls next to the $ in an agent’s input bar (attach image 📎, attach video 🎬) were rendering as solid colored squares because a style meant for the Send button was bleeding onto them and hiding the icons. They now render as clear icon buttons, so they read as “attach”, not as stuck image thumbnails.
  • Attachment removal, actually fixed — pressing Backspace or Delete now removes the most recent attachment whenever an agent window is in front (unless you’re mid-typing), no matter how the image/video was added — you no longer have to hunt for the × or click the chip first. Adding an attachment also brings its window forward so the shortcut targets it.
  • Working-border progress — while an agent window is running, a brighter lit arc now sweeps clockwise around its border as a subtle indeterminate progress indicator, and clears the moment the run finishes.
  • Remove agent attachments by keyboard — click an attached image or video chip (it gets an accent ring) and press Delete or Backspace to remove just that one; the × button still works too. The earlier keyboard removal only fired when the prompt input happened to be focused and empty, so right after adding an image “Backspace to undo” did nothing — now adding focuses the input, and any chip is directly selectable.
  • Command Center dashboard — a new analytics pane (left-rail button, “open command center” / “show my stats” by voice, or the palette) that answers where your agents’ time, output, and money went: hero tiles for ships, active agent-time, spend (est.), and success rate; a work-area time breakdown; a “what shipped” feed you can click to open; a spend-by-model breakdown with cost-per-win; an agent/model leaderboard; and a reliability chart of clean/rate-limited/failed runs plus handoffs. Pick any time range and drill into an agent or model. Read-only; your data starts collecting now and fills in as agents run.
  • Feedback, leveled up — mark a feedback note private (it never leaves your machine), attach a redacted diagnostics snapshot (app version, OS, recent console/network — secrets masked) to a bug report, and give each note a status (open/planned/shipped/declined) with shipped/declined struck through.
  • Publish to a public roadmap — connect your roadmap admin key and push non-private feedback to a public voting page where users upvote by email; published notes show their live vote count back in the app. (Powered by the new roadmap.masteryhq.dev service.)
  • Delete agent attachments — remove an attached image or video with its × button (now a bigger, clearer control that turns red on hover) or by pressing Backspace with an empty prompt. (The keyboard/× removal shipped to main after v0.1.82 but hadn’t reached a release yet — this is the first build that includes it.)
  • Honest agent run status — a rate-limited or failed run now shows a flashing caution instead of a false green check, and the status badge sits in the window’s title row between the agent’s name and its token count. The check only appears after a clean finish.
  • Open what an agent makes — when an agent produces a website, image, or video (a URL, a dev-server address, or a file path), an Open chip appears under its message and opens it in the right preview pane.
  • OpenRouter model picker — each OpenRouter window has a model dropdown in its header; the pick persists with the window and rides every run.
  • Save as recipe, relocated — the Save-as-recipe control moved out of the zoom cluster into the command bar, right after the layout-density selector.
  • Benchmark in the toolbar — a Benchmark button now sits right after Loop in the left rail; opening the suite (by button, typing, or voice) takes over the screen full-screen and tucks the other windows into the Pane Compass so it has your full attention.
  • Charts on demand — “chart how OAuth works” (or graph/diagram/draw-me forms) has a local agent draw a labeled SVG diagram of any topic; it lands on the canvas as a normal image pane you can resize or hand to an agent.
  • OpenCode model picker — each OpenCode window has a model dropdown in its header (roster from opencode models); the pick persists with the window and rides every run as opencode run -m.
  • Masked secret fields — every API-key/token/password field in Settings (Voice keys, OBS password, Hermes device token) now hides behind variable-length asterisks with an eye button to reveal; the decoy length doesn’t betray the real key length.
  • Update announcements — when a new version is detected you now get a toast (once per session) pointing at the green Update pill, and a failed update check says so on the splash instead of looking like “up to date”.
  • Toolbar highlight & order — design tools (select, pen, eraser, shapes, text, image, screenshot) now sit at the top and only the active one highlights; window launchers (agents, terminal, browser, kanban, backlog, loop, music, TV, celebrate, help) never stay lit, and nothing is highlighted at launch. The Pane Compass still lights while the minimap is on.
  • Gemini & Grok keys in Settings — the Agents tab now shows the set/not-set status for GEMINI_API_KEY and XAI_API_KEY alongside the others (both were already scanned).
  • Agent memory & sessions — agent windows resume real CLI sessions across restarts, keep working notes, compact long conversations into handoffs, share a per-workspace project memory, and answer recall <query> from everything they’ve written down.
  • Attachments — send images to agents via 📎, paste, drag-and-drop onto an agent window, or “send this image to Alex”; attach videos 🎬 with automatic still-frame extraction (ffmpeg) or native video pass-through where the agent supports it.
  • Streaming Mode, complete — one switch that redacts secrets on screen, swaps to a streaming layout, controls OBS and Streamlabs, serves a browser-source overlay, and answers voice verbs like “scene to code” or “go live”.
  • Spotify native player — full-track playback (Premium), search, playlists, queue and volume from the Music pane.
  • Help Center — this documentation: 85 bundled docs, searchable in-app, with per-pane “?” buttons and Learn-more links in Settings.
  • Browser favorites — star sites and open them by name; “go to X” resolves favorites, known sites, then search.
  • Agent Roster pane — every agent’s persistent profile: category track record, editable skills that steer Hermes routing, per-agent backlog, and task history with outcomes.
  • Benchmark media artifacts — new Music (Web Audio) and Motion (canvas/CSS) suites: models compose and animate in code, rendered live in the sandboxed preview with capability chips.
  • TV Guide (EPG) — point the TV pane at any XMLTV guide URL (.xml/.gz) for a NOW card, highlighted running programme, and the channel’s upcoming schedule.
  • Pane openers by voice or typing — “open tv”, “open backlog”, “open loop”, and “open the agent roster” now open the panes (they used to reach the focused agent as a prompt).
  • Real file exports everywhere — benchmark reports, audit log, usage CSV, setup JSON, workspace and agent-transcript exports all write to Downloads and toast the path (several were silent no-ops in the desktop shell).
  • Cleaner codex transcripts — codex no longer echoes its instruction preamble back into the chat.
  • Performance passes across canvas panning, transcripts, and persistence.
  • Loops, complete — the Loops Dock, natural-language loop: creation, a Loop this button on agent windows, Watcher and Backlog-drainer loop kinds, loop cascades (chaining), and resume.
  • Setup Wizard, complete — first-run wizard, install-CLI helpers, and setup export/import.
  • Backlog pane with idea capture and the Roast council (GO / RESHAPE / KILL verdicts before a board is spun up).
  • Loop review lenses (including the Karpathy and Roast judges) and Setup Wizard Phase 1 (capability manifest + Setup-health tab).
  • First release delivered fully hands-free through in-app auto-update — the updater prompt downloaded, installed, and relaunched on its own.
  • TV background audio continuity, channel persistence, and the collapsible minimized-windows tray.
  • Auto-update fixed by pointing the updater at the public releases repo — v0.1.75 is the bridge release; installs from here forward self-update.
  • Custom window frame: the native title bar is gone and the app bleeds to the edges.
  • TV pane: browse and play live channels (iptv-org) with global search, favorites, and recents.
  • Model Council (Arena, Tournament, Debate with a blind judge) and the Benchmark suite.