Local-firstThe runtime enforces the rules, not the prompt

Stop chatting with one agent. Command a squad.

Maegor is an agentic development environment: a multi-pane terminal, an agent harness and a mission orchestrator in one desktop app. Give it a repository and a mission in plain language, and it plans the work, assembles a squad, and gives every agent its own worktree and a visible terminal.

Linux today · macOS & Windows architecturally supported · 424 tests, no network, no credits

maegor.notes-service add auth, migrate the storeflaky test sweep+running$0.418PauseKillRun1 approval
1architectdecompose the missionrunning
› read docs/ARCHITECTURE.md
docs/adr/0007-lease-intersection.md
proposing 12 tasks · 4 parallel groups
✓ graph validated · 0 cycles
handing off to the coordinator
› _
claude-code · pid 2419300:04:12
2backendimplement store::leasesrunning
› cargo build -p maegor-core
crates/maegor-core/src/store/leases.rs
Compiling maegor-core v0.8.0
✓ Finished dev in 4.21s
lease crates/** held
› _
codex · pid 2420700:03:48
3frontendbuild the pane treerunning
› pnpm typecheck
apps/desktop/src/components/PaneTree.tsx
+148 −22
✓ no errors
preview reloaded on :5173
› _
claude-code · pid 2423100:03:02
4migrationsmigrate schema v9 → v10waiting
› maegor db plan v9 → v10
migrations/0009_leases.sql
dry run: 3 statements
! write outside declared scope
approval requested
waiting…
codex · pid 2424400:01:19
3 agents running3/5 adaptersnotes-service · feat/auth1 waiting for approval412 events$0.418Kill all

Runs the agent CLIs you already pay for. Detection executes each binary, it never trusts a config file.

Claude CodeCodexOpenCodeOpenRouterOllamaLM Studio
PANES

Every agent gets a terminal you can watch.

Run real coding agents, Claude Code, Codex, OpenCode, either as their own TUI in a pane you drive, or headless with their output translated into typed events. Each one runs in its own PTY and its own OS process group.

  • Its own PTY and process group, so the kill switch reaches grandchildren.
  • Pause and resume with SIGSTOP, per agent or per whole mission.
  • Headless output translated into typed events, and it says so when the mapping degrades.
architect
docs/adr/0007-lease-intersection.md
✓ graph validated · 0 cycles
backend
crates/maegor-core/src/store/leases.rs
✓ Finished dev in 4.21s
frontend
apps/desktop/src/components/PaneTree.tsx
✓ no errors · +148 −22
migrations
migrations/0009_leases.sql
! write outside declared scope
MISSIONS

A mission is a graph. Not a list.

Dependencies, parallel groups, cycle and dangling-dependency validation at plan time, before a single agent is dispatched. Three ways to run one:

A declarative YAML team: roles, models, file globs, gates and budgets. Validated at load with the offending field named, so a broken squad never reaches dispatch.

MISSIONplain-language briefaccepted
PLANtask graph validated0 cycles
LEASESglob intersection check3 held
DISPATCHworktree + PTY per agent4 parallel
GATESrun on the real git diff4 pass / 1 fail
INTEGRATEblocked until gates passheld
ENFORCEMENT

An agent that ignores its instructions still cannot escape them.

File ownership, path sandboxing, budgets and destructive-command approval are checks in the Rust runtime, not lines in a prompt.

Worktree per agent

ISOLATION

A git worktree and a branch of its own for every executing agent. An agent's writes never reach your working tree.

File leases

OWNERSHIP

Two agents that could write the same file are refused at dispatch, by glob intersection, not when the merge falls apart.

Quality gates

INTEGRITY

Gates run inside the agent's worktree against the real git diff. A failing required gate blocks integration.

Kill switch

CONTROL

Terminates whole process groups, grandchildren included. Pause and resume per agent or per mission.

Approvals

CONSENT

Destructive commands, out-of-scope writes and budget overruns stop the agent until you decide. An expired request is a refusal.

Watchdogs

SAFETY

A wall-clock ceiling and a heartbeat timeout catch a hung agent, terminate it, and record why. Nothing is auto-resumed after a crash.

SQUADS

Declarative teams. Validated at load.

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.

Browse all squads
fullstack-factory.yaml7 agents

Full-stack factory

Implements a complete feature across backend and frontend, in parallel against a contract both sides treat as frozen.

discoveryarchitecturebackendfrontendtestsreview+1
web-development.yaml12 agents

Web development

Builds a whole web feature, discovery through review. Sequential on purpose, so every handoff is against what was actually delivered.

discoveryarchitectureinterface-specbackendfrontendintegration-tests+6
bug-hunt.yaml8 agents

Bug hunt

Scans the codebase by area in parallel, then triages, fixes and locks the findings.

surveyhunt-webhunt-backendhunt-opstriagefix+2
bug-investigation.yaml5 agents

Bug investigation

Reproduces a defect, fixes the root cause, and locks it with a test.

reproducediagnosefixregression-testreview
security-audit.yaml4 agents

Security audit

Finds vulnerabilities, secrets and risky dependencies, then fixes the findings that matter.

scan-codescan-depsfixreview
database-migration.yaml5 agents

Database migration

Plans, applies and verifies a schema move, with backfill and rollback safety.

planmigratebackfillverifyreview

One core. Two front ends. Everything shares a state machine.

The CLI and the desktop app run the same Rust domain core, the same database, the same append-only event log.

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.

Task graph

Dependencies and parallel groups, with cycles and dangling dependencies refused at plan time, before a single agent is dispatched.

Squads

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.

Agents

A CLI, a model, a set of skills and an effort level composed into one specialist you can dispatch again.

Skills

An installable capability that attaches to an agent and takes effect on its next run.

MCP server

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.

Agent adapters

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.

Workspace

A pane is a container, not a terminal slot. Terminal, editor, file explorer and browser preview share the same grid.

Three-level memory

Mission, project and agent. The project level is why the second mission on a repository is cheaper than the first.

Event log

Typed and append-only over SQLite, searchable and filterable by agent, task, kind, severity and free text.

Cost telemetry

Live cost per agent, with its source labelled. When a provider reports nothing the answer is unknown, never $0.00.

Restart safety

Sessions the database still believes are running are marked orphaned when the project opens. Nothing is auto-resumed after a crash.

Before you ask

No. Maegor drives the agent CLIs already installed on your machine, with the logins already there. Every agent runs on the subscriptions and tokens you already pay for.

Both, and they are the same program. A Rust domain core is shared by the maegor binary and a Tauri desktop app: same state machine, same SQLite database, same event log.

It never has your repo. Each executing agent gets a git worktree and a branch of its own, a lease on the files it declared, and a sandboxed path set. Integration is blocked until the gates pass.

Linux today. macOS and Windows are architecturally supported but untested. It needs webkit2gtk, gtk3 and libsoup on Linux.

Yes. A deterministic fake agent with six behaviours, success, fail, hang, request-approval, modify-files and emit-events, runs the whole suite with no network and no LLM spend.

Your engineering team is waiting.

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.