Features and functions

MaeVae is a desktop console that runs your AI coding agents side by side and keeps each one in a pane and a profile of its own. Sign in once per profile, and nothing crosses between them: not the login, not the bill, not the memory. A live HUD shows each agent’s model, cost, tokens and context, and an attention queue tells you when an agent needs you.

This page goes through the main parts of the app, group by group: what it does, a rendering of it at work, and where it stops. The renderings are made in this page’s own code, with the labels the app uses and invented examples; none of them is a screenshot, and some leave out parts of the app, such as the review button on a pane header. Each larger rendering plays a short scene once when it comes into view, and its Play and Stop buttons replay or end it. If your system asks for reduced motion, every rendering stays still on its last frame. A part marked “at launch” comes with the Microsoft Store release.

Contents Skip the contents

Profiles

A profile is one identity: one agent, one account, one project folder. Each pane in MaeVae runs one profile.

Limits. A Claude Code profile set to use your existing Claude login shares that login, its history and its memory with your everyday Claude. Every pane runs as the same Windows user, so the credential stores on the machine, such as git credential helpers, SSH keys and the tokens of hosting tools, are shared across panes.

Back to contents

Restricted mode

For a Claude Code, Codex or Gemini CLI profile, Restricted mode boxes the agent to its project folder and stops push and deploy commands, in the way each agent allows.

MaeVae writes the box into that profile’s own settings, merged with what is already there: the settings file for Claude Code and Gemini CLI, the config file for Codex. Your hooks and the rest of your settings stay as they are.

You choose it as the Capability, Trusted (full access) or Restricted, in the last of the new-profile steps or in the profile’s editor. When you pick Restricted, both show that agent’s own note: what its box does, and its limit. The rail then marks the profile “· restricted”.

In the last new-profile step, Capability turns Restricted on, and the panel says at once what the box needs, what it grants and denies, and where it stops.

What each agent’s box does

  • Claude Code

    A Restricted profile is granted only its project folder. The agent is denied reading or editing the folders beside it and the configuration folders of your other profiles, and push and deploy commands are blocked: git push, wrangler, deploy and publish. MaeVae also switches off Claude’s mode that skips permission prompts, so starting Claude with its skip-permissions flag cannot undo the box.

  • Gemini CLI

    Gemini CLI asks for your approval on every tool call, keeps its file tools to the project folder and is denied push and deploy commands. Its mode that approves everything is switched off, so no flag can turn it on. A shell it runs can still read outside the folder.

  • Codex CLI

    Codex keeps its writes to the project folder, has its network turned off and stops for your approval before it steps outside that box, so a push or a deploy asks you instead of running. It can still read anywhere, and a shell can get around the box.

A refused push

In the rendering a Restricted Claude Code profile tries to push. The refusal comes from the agent itself. MaeVae does not sit between the agent and its commands: it writes the deny rules into the profile’s own settings, and the agent’s own permission check turns the command down, in the agent’s own words. The rendering marks that moment “Blocked”; the word is this page’s, not the app’s. A Restricted Codex profile would stop and ask for your approval at the same point.

In a Restricted Claude Code profile the agent’s own permission rules refuse the push, and the agent goes back to its prompt.

What it needs

A Restricted profile needs a real project folder: a directory that exists and is not your Windows home folder. Creating a Restricted profile, switching one to Restricted or changing its project folder is refused without one, because the box is anchored to that folder. If the box cannot be written when you save, MaeVae saves the profile as Trusted and tells you why.

MaeVae never applies Restricted to your shared Claude login folder; the choice is refused there. Switching a profile between Trusted and Restricted, or changing a Restricted profile’s project folder, is refused while its panes are open; close them first.

Limit. Restricted mode works by a per-profile folder box and a deny list of command names, not by a sandbox. A deny list is a speed bump: a determined shell can reach the same binaries by another path. Every pane runs as the same Windows user, so the credential stores on the machine, such as git credential helpers, SSH keys and the tokens of hosting tools, are shared across panes. Treat it as a strong guardrail for cooperative agents, not as a security boundary against hostile code.

Back to contents

Isolation

Every profile is meant to be its own world: its own configuration folder, its own project folder, nothing inside it pointing outside, nothing arriving without your click. MaeVae checks that it is, seals what it can fix, and enforces the seal at every start.

The badge

Each pane’s header carries an Isolation button with a dot. Click it and the report opens over the pane; the profile editor’s Isolation section shows the same report. A plain shell profile has no badge, since there is nothing to isolate.

  • IsolationIsolated, green: every rule passed and what is installed matches what you approved.
  • IsolationDrift, amber: something you never approved appeared, or a rule warned.
  • IsolationBreach, red: a Boundary, Reference or Inbound rule failed.
  • IsolationUnchecked, gray: never checked, or no approved set yet.
Check isolation finds a skill nobody approved and the report turns amber; Approve current set takes it into the approved set and the report is green again.

The report, in four faces

  • Boundary

    The configuration folder is the profile’s own: not the agent’s shared login folder, not inside another profile’s folder, not a link that leads elsewhere. The project folder is real and outside every configuration folder. The launch pins the profile’s folder and clears credential overrides. A Restricted profile’s deny rules are what MaeVae would write today, and the isolation contract is present and current.

  • Reference leaks

    Nothing inside the profile points outside it: plugin install paths, marketplace locations, MCP server commands, hook and status line commands, skills and extensions.

  • Inbound channels

    Nothing arrives without your click. Claude’s claude.ai sync and Codex’s ChatGPT plugin catalog are closed by default; Gemini CLI, Qwen Code and Grok have no known account channel today, and the row says so rather than passing. A Grok pane still picks up the plugins installed for your everyday Claude (see the limit below).

  • Drift

    What is installed (plugins, MCP servers, skills, hooks, extensions, connectors) against the set you approved.

Each row reads PASS, WARN, FAIL or INFO, with the reason in plain English and the fix on offer. Copy puts the whole report on the clipboard as text, which is the most useful thing to paste into a message to support.

Check isolation and Approve current set

Check isolation runs every rule on this profile’s own files, and nothing else. When it finds something new, such as a skill installed since you last approved, the Drift face turns WARN and the badge turns amber. Approve current set makes what is present now the approved set, and the badge turns green again.

A new profile starts with an empty approved set, so its badge reads Unchecked until you approve. Install what you want in it first, then approve once.

Seal profile

Seal profile applies every safe fix at once: it writes the vendor’s channel keys, switches synced entries off, repoints a plugin path to the profile’s own copy when a byte-identical copy already exists inside the profile, and rewrites the contract. Everything else is reported with the exact path and what to do. Seal then checks again.

Every write stays inside the profile’s own configuration folder, never a shared login folder, another profile’s folder or the project folder, and the first change to a file leaves a backup copy beside it. MaeVae never deletes a vendor’s synced folder: once the keys are set, the vendor moves it aside itself at its next start.

Seal does not approve anything. Something that appeared stays Drift until you approve it or remove it. In the rendering below, the cause of the Drift is a contract gone out of date, which Seal can fix.

Seal profile, in the profile editor’s Isolation section, applies the safe fixes and checks again; the section and the pane’s badge turn from Drift to Isolated.

The contract

MaeVae writes a short block into the agent’s own instructions file inside the profile’s configuration folder: CLAUDE.md for Claude Code, AGENTS.md for Codex, GEMINI.md for Gemini CLI, QWEN.md for Qwen Code and a rules file for Grok; aider reads it through its own read setting. The block names the profile’s two folders and the rule: all work stays inside them, and a permission you grant applies to that request only. It sits between two marker comments, and MaeVae rewrites only what is between them, so your own instructions around it are untouched.

Enforced at every start

A new profile is born sealed. At every MaeVae start, the channel keys are written again for every profile whose Account sync is Blocked, and a contract that is out of date is refreshed. Nothing is ever written into the agents’ shared login folders.

Account sync

For an agent with an account channel, the profile editor’s Isolation section has an Account sync switch, Blocked by default. Allowed leaves the channel to the vendor, and the Inbound rows then read “allowed by you”. Switching back to Blocked seals the profile at once.

Two preferences

The quick check when a pane opens runs the Boundary and Inbound rules, and it is on by default. On a breach decides what a red badge does when a pane starts: Badge only opens the pane and turns its badge red; Refuse the launch keeps the pane closed and opens the report in its place, with Seal and Approve on offer. Quick settings holds the defaults for every profile, and a profile can carry its own in its editor.

The quick check keeps the last full check’s Reference and Drift rows, so a newly installed plugin or skill shows at the next Check isolation, Check all profiles, Seal or Approve, not when a pane opens.

Check all profiles

Check all profiles, in Quick settings, runs every profile’s own check, then asks the one question that involves two profiles: does a path in one profile’s files reach into another profile’s configuration folder? A hit is a Breach on the profile that reaches out; fix it there with Seal. Each profile is checked inside its own walls, never by reading a sibling’s credentials, sessions or history.

Check all profiles checks every profile and lists them worst first: here one profile has drifted and its pane’s badge turns amber; the other three are isolated.

Limit. The check reads the manifests and channels MaeVae knows for the vendor versions it was measured against. A vendor can add a new channel between releases, and an Inbound row is only as current as that measurement. Every Grok pane runs with Grok’s Claude, Cursor and Codex compatibility switched off, but Grok still finds the plugins installed for your everyday Claude. Their hooks and MCP servers can be active in a Grok pane, Grok has no setting to stop that, and grok inspect in the pane lists what it picked up.

Back to contents

The HUD and the usage dashboard

Every pane can carry a live strip of figures: the model, cost, session time, tokens, quota and context, as far as its agent reports them. The pane header mirrors them, and the usage dashboard puts every profile in one table.

In the pane

The header shows the model in a frame, then the cost, the token total, the five-hour and weekly quota and a context gauge, each only when the agent reports it. The gauge turns amber above 65 percent and red above 85. When the project folder is a git repository, the header also shows its branch, an amber dot for uncommitted changes, and how far it is ahead of or behind its upstream.

The strip under the terminal is switched on in Quick settings, as Chrome HUD, and can sit above or below the terminal. Its default line is the agent’s state, the profile, the agent, the model, the context used and the pane’s uptime; Customize chrome strip changes what it shows, and a profile can carry its own layout.

Both panes fill their figures as their agents work; the Gemini CLI pane shows n/a for cost and quota because Gemini CLI writes neither.
  • For Claude Code

    Click hud on a Claude Code profile’s rail entry and MaeVae registers itself as that profile’s status line and hook commands, merged into the profile’s own settings without overwriting anything you added. Claude’s own bar in the terminal then shows its figures too. On a profile that shares your everyday Claude login, the button asks for a second click first, because it changes that login’s settings too.

  • For the other agents

    Codex, Gemini CLI, Qwen Code, Grok and aider have no status line callback, so MaeVae reads the files each agent already writes: its session files in the profile’s own folder, or for aider its chat history in the project folder. It only reads them, and the HUD fills from the first turn.

What each agent reports

Claude Code reports every figure; Codex, Gemini CLI, Qwen Code, Grok and aider each leave out some of the cost, the quota and the context gauge. What each agent reports, side by side, on MaeVae and the AI vendors.

Limits. The figures are measured from the agents’ own files on disk; they are not a bill. Claude Code’s quota comes from an unofficial endpoint, read with the profile’s own sign-in and held for about a minute, and when it cannot be read the quota figures stay empty rather than showing an error.

Back to contents

The attention queue

When an agent asks for an approval or finishes a turn, MaeVae lights its pane, lights the profile in the rail, badges the tray icon, and can raise a Windows notification and a chime.

Approve or deny from the header

While an agent waits for an approval, its pane header shows approve and deny. Approve sends Enter to the pane, which picks the option the agent has highlighted; deny sends Esc. For Claude Code, Gemini CLI, Grok and Qwen Code the buttons sit on the exact pane that asked; for Codex, whose hook cannot name the pane, they apply to the profile.

After a Claude Code turn, a pane left at its prompt stays green, “waiting for you”, without chiming a second time. aider asks for no approvals through MaeVae, so its pane only ever turns green, when it is back at its prompt.

Approve in the header answers the agent’s question; the amber goes, the agent works, and its pane and its rail light turn green when the turn is done.
  • The one-time trust step

    Codex and Gemini CLI guard their own hooks. In a Codex pane, type /hooks and trust MaeVae’s two hooks; Codex asks again whenever the hook text changes. Gemini CLI lists them under /hooks panel and loads them once you have trusted the project folder it opened in. Until that step is done, the pane never lights or chimes for that profile. Grok and Qwen Code need no such step.

  • Sessions outside MaeVae

    A profile that runs in a Windows Terminal tab or from a launcher instead of a pane is mirrored on its pane with an “· outside” mark, without approve and deny, because MaeVae only ever sends keys to its own pane’s agent. Answer in that terminal.

Limits. The attention queue is switched on per profile. A Claude Code pane lights only once hud is on for its profile; a Codex, Gemini CLI, Grok or Qwen Code pane only once Attention glow is on in its editor and the pane has been reopened. aider’s glow is on from the start. Codex and Gemini CLI also need the one-time trust step inside the agent before the pane lights. Windows decides whether a notification is delivered: its notification settings must allow MaeVae, and the app’s notification editor shows a line when Windows will not deliver. An agent started outside MaeVae, in a Windows Terminal tab, does not chime.

Back to contents

Layouts and keys

Three layouts, keys for every pane, a palette of actions, one line sent to every agent at once and, at launch, one pane at full size when you need it.

Broadcast

With two or more panes open, a Broadcast box appears in the top bar. Type a line and press Enter, and it goes to every open pane at once, Restricted ones included, so use it with care.

Redraw

If a resize leaves stray characters on screen, the Redraw button in the pane header nudges the program to repaint. On a Gemini CLI pane drawing on its normal screen it also sends Gemini’s own clear-screen key. New Gemini CLI profiles draw on Gemini’s alternate screen, which avoids the leftovers, and the profile editor can switch an older one to it; there the pane’s scrollback search no longer holds the conversation, which Gemini scrolls itself.

One line typed in the Broadcast box reaches every open pane at once.

Closing panes

A live pane’s close asks “sure?” first; a pane whose shell has exited shows its exit code and closes with remove. Close all asks before it stops anything, naming how many panes go, and Keep them is the safe answer.

Limit. Everything started from a pane, the agent and anything it launches, ends when the pane closes or its shell exits. Start anything that must outlive the pane from outside MaeVae.

Back to contents

The account switcher

One Claude Code profile can hold more than one saved login, and you switch between them from the profile’s editor without signing in again.

Limits. It works for Claude Code profiles that sign in with a login; an API-key profile with a saved key never reads a swapped login, so the editor says why and does not offer it. It is opt-in, and it keeps a copy of the login token.

Back to contents

Windows Terminal tabs and launchers

Any profile except a plain shell can also run outside the MaeVae window, in a Windows Terminal tab or from a launcher, pinned to the same profile.

Limits. A session in a tab or a launcher runs outside MaeVae’s panes: it does not chime, its approvals are answered in that terminal, Panic stop does not reach it, and the account switcher does not count it as an open pane. Apart from aider’s, a launcher for an API-key profile carries no key and falls back to the login in its folder; use the pane, which brings the saved key.

Back to contents

Backup and restore

Quick settings writes your MaeVae data to a zip or a folder you choose, and reads it back, on this machine or another.

Limit. There is no cancel once a backup starts, so a very large backup of logins simply runs to completion.

Back to contents

Updating the agents

MaeVae can run each agent’s own updater for you, from Quick settings, and tell you what came of it.

What the buttons run

Update agents, in Quick settings, has Update all installed and one button per agent. Each runs that agent’s own update command, such as claude update, or npm install -g for the agents published on npm, then checks the agent’s version afterwards. For an agent that is not installed yet, the same place offers its install command; a tool that lands in a new folder is seen once MaeVae restarts. At launch, in the Store release, Grok CLI’s Install shows its command with Copy, for you to run in PowerShell.

Only one update runs at a time, and each gets five minutes before MaeVae stops it. While one runs, a Stop button ends it at once, and a stopped run never marks a healthy agent as broken. Each run works in a throwaway folder of its own.

The notice

When it ends, a notice at the lower right says what happened, one line per agent: Done, Warning (it went through, but there is something to read) or Error. The command’s own output is behind Details. A Done notice goes away by itself; a Warning or an Error stays until you press Dismiss.

The Gemini CLI button runs Gemini’s own updater; the other buttons wait, and a Done notice at the lower right reports the result.

aider, Grok and MaeVae itself

  • aider

    aider is updated through uv, after MaeVae checks that uv knows the aider on your PATH; if aider was installed another way, the notice says so as a Warning and nothing runs.

  • Grok CLI

    Grok updates with its own updater, pointed at the copy on your PATH and never at a profile. Grok’s own automatic updater is switched off inside MaeVae panes, so this button is the way to update it.

  • MaeVae

    At launch, MaeVae itself is installed and updated by the Microsoft Store. Before you uninstall it, Remove MaeVae from all config dirs, in Quick settings, takes its status line and hook entries out of every profile and leaves your logins in place. It also turns every Restricted profile back to Trusted, and skips a profile with a pane still open.

Limit. The update itself is the vendor’s: MaeVae runs the vendor’s own command, gives it five minutes and reports what it printed.

Back to contents

Local and other models

Codex, aider, Qwen Code and Grok profiles can be pointed at a model server of your choice: one on your own PC, a cloud provider such as Groq or OpenRouter, or any custom address.

Limit. For a model set through the Model field, Qwen Code does not know the model’s context window, so the HUD’s context gauge stays empty for it. MaeVae still drives the agent’s own tool; the endpoint and model settings decide which model it uses.

Back to contents

Themes, pets, chimes and the status line

The look of MaeVae is yours to change, for the whole app or one profile at a time.

Themes and color

Quick settings holds the app theme, with dark and light built-in themes and an editor for your own, and an optional window animation. Each profile can carry its own pane theme and animation, its own color, which marks its pane and its rail entry, and its own colors for its name and its account label, from swatches or a custom picker. Leave a picker on Default to keep the theme’s color.

A profile also takes an icon, one of the drawn set or a picture of your own, and Quick settings sets the default brightness and contrast of the panes and the strip.

Chimes

Each profile can have its own notification chime, chosen from a long list you can hear by pointing at it in the editor. A master mute for every chime is in Quick settings.

A new color for Research reaches its rail light, its name and its pane’s header at once.
  • Pets

    Optional animated pets sit over a pane and react to its agent: one comes to the top and points when the agent needs your approval, celebrates when a turn finishes, dozes when the pane is idle and sits down when the shell exits. You can pet one with a click or drag it away, and pets never block typing or selection.

  • The status line

    Customize HUD layout lays out Claude Code’s bar in the terminal, and Customize chrome strip lays out MaeVae’s strip around each pane; a profile can keep its own layout of either.

Limits. Chimes play through Windows audio, from the app itself. If the editor’s Preview is audible but real chimes are silent, Windows is sending MaeVae’s sound to another output device; set it in the Volume mixer. While MaeVae is in the tray, Windows can hold a chime back by up to about a minute.

Back to contents

The tray, closing the window, Panic stop

Closing the window hides MaeVae to the tray, and the sessions keep running.

Limit. Panic stop reaches only the agents in MaeVae’s own panes. An agent started from a Windows Terminal tab or a launcher runs on its own and has to be stopped there.

Back to contents

Coming next

Two things are in development. Neither is in the app today, and neither has a date.

  • Container mode

    In development

    An agent runs inside a container you choose, Podman, Docker or another, with only its project folder mounted.

  • macOS and Linux

    In development

    MaeVae runs on Windows 10 and 11 today. Versions for macOS and for Linux are next.

Back to contents

The guide takes you through the app, one step at a time.

  • The guide has a chapter for each task, from the install to fixing what looks wrong.
  • The FAQ answers the questions people ask most.
  • Download says what you need before you install.

The Store listing is not public yet; the Store button already points to it.