Multi-pane terminal
Concurrent agents, each in its own PTY and its own OS process group, each with a live terminal you can type into.
Everything Maegor does today, grouped by where you meet it. Nothing on this page is a plan: if it is listed here it is built, and it is covered by tests.
Where you watch the work happen.
Concurrent agents, each in its own PTY and its own OS process group, each with a live terminal you can type into.
Split, resize and rearrange. The arrangement is a tree saved per project, so it outlives the mission that created it.
A second home that outlives every mission: one pane per agent, a conversation you pick up rather than a process you restart.
A pane is a container, not a terminal slot. Terminal, editor, file explorer and browser preview share the same grid.
Monaco over the project tree, sandboxed to the project and resolving symlinks. A file under an active write lease opens read-only and says which agent holds it.
Finds the dev server URL in an agent's output and docks it beside the terminal, at desktop, tablet or phone width. It never splits your grid on a guess.
Every action in the app reachable without leaving the keyboard.
A brief becomes a graph, and the graph becomes work.
Dependencies and parallel groups, with cycles and dangling dependencies refused at plan time, before a single agent is dispatched.
Free drives one agent yourself, Squad runs a declarative team, Agentic lets Maegor decompose and delegate. Same core, different amount of autonomy.
The orchestrator asks what it needs before it plans, and your answers become part of the brief. Where an answer contradicts an assumption, the answer wins.
Agents submit reviews and findings through MCP. A rejected review sends the task back instead of quietly integrating it.
The real git diff of an agent's worktree, next to the gate that judged it.
The reports, specs and contracts an agent produced, addressed by mission and task and readable long after the session ended.
Who does the work, and what each one is allowed to be good at.
Declarative YAML teams: roles, models, file globs, gates and budgets. Fourteen ship with the app, from a one-agent Solo to a twelve-agent web build.
Write a squad inside the app and have it validated on save, with the offending field named.
A CLI, a model, a set of skills and an effort level composed into one specialist you can dispatch again.
The roster of specialists a project has built up, reusable across its missions.
An installable capability that attaches to an agent and takes effect on its next run.
The agents you already pay for, driven from one place.
Claude Code, Codex and OpenCode drive the binaries you already have. Detection executes each one, it never trusts a config file, and every flag was read from a local help output.
A headless agent that stays alive between turns: the next prompt is a line written to a stdin that never closed, so there is no cold start and no lost context.
Maegor's own tool loop, for the work where there is no third-party CLI worth driving.
A pane with no agent in it at all, in the same grid and under the same kill switch.
Headless output becomes typed events, and the pane says so when the mapping degrades instead of pretending it understood.
Checks in the runtime, not lines in a prompt.
A git worktree and a branch of its own for every executing agent. An agent's writes never reach your working tree.
Two agents that could write the same file are refused at dispatch, by glob intersection, not when the merge falls apart.
Gates run inside the agent's worktree against the real git diff. A failing required gate blocks integration.
Terminates whole process groups, grandchildren included. A test spawns a grandchild and asserts that it dies.
SIGSTOP and SIGCONT, per agent or per whole mission, without losing the terminal.
Destructive commands, out-of-scope writes and budget overruns stop the agent until you decide. An expired request is a refusal, never an approval.
A wall-clock ceiling and a heartbeat timeout catch a hung agent, terminate it, and record why.
Sessions the database still believes are running are marked orphaned when the project opens. Nothing is auto-resumed after a crash.
Tokenised destructive-command detection, path sandboxing that resolves symlinks, and secret redaction on the persistence path. Modes change how often you are asked, never whether a check runs.
A ceiling per mission. Crossing it stops the agent and asks you, it does not quietly keep spending.
What a project remembers between missions.
Mission, project and agent. The project level is why the second mission on a repository is cheaper than the first.
Entries link to each other, so the shortest path between two of them is a query rather than a scroll.
The builder picks what is relevant under an explicit token ceiling, instead of pasting everything it has and hoping.
Typed and append-only over SQLite, searchable and filterable by agent, task, kind, severity and free text.
Live cost per agent, with its source labelled. When a provider reports nothing the answer is unknown, never $0.00.
The other ways in.
Twenty-eight tools over missions, tasks, memory, artefacts, leases and gates, behind a per-mission token. Every tool checks the id belongs to the calling session.
The maegor binary and the desktop app share one Rust domain core: same state machine, same database, same event log.
An optional local speech service for describing a mission out loud. Nothing leaves the machine.
Checks the install, the detected adapters, and the worktrees a cancelled mission left behind.
A deterministic fake agent with six behaviours runs the whole product with no network and no LLM spend.
A squad is a YAML file: roles, models, file globs, gates, budgets. Break a field and it tells you which one, before anything runs. Fourteen ship with the app.
Implements a complete feature across backend and frontend, in parallel against a contract both sides treat as frozen.
Builds a whole web feature, discovery through review. Sequential on purpose, so every handoff is against what was actually delivered.
Scans the codebase by area in parallel, then triages, fixes and locks the findings.
Reproduces a defect, fixes the root cause, and locks it with a test.
Finds vulnerabilities, secrets and risky dependencies, then fixes the findings that matter.
Plans, applies and verifies a schema move, with backfill and rollback safety.
Implements a feature across a Rust core and a React shell, regenerating the shared types in between.
Raises coverage without touching production code, gated on the real coverage delta.
Removes dead code and duplication with behaviour provably unchanged.
Designs an API contract and locks it with tests on both sides of it.
Upgrades dependencies in reviewable groups, verifying the tree after each one.
Finds bottlenecks with evidence, optimises them, and proves the win with benchmarks.
Splits a dirty working tree into one commit per logical change, each with a message that names it, then pushes.
One agent does the whole thing, for a brief too small for handoffs to be worth what they cost.
Open a repository, describe a mission, and watch four agents work in parallel, inside the rules you set.
No credits burned in the demo, a deterministic fake agent runs the whole suite.