More agents. Less managing.

Mayday is being built to coordinate your AI coding agents. Join the waitlist to hear when there’s something real to try.

Join the Mayday waitlist

By joining, you consent to emails from Tyler Mollentze about Mayday early access and occasional build updates. You can withdraw consent by replying or emailing hello@runmayday.com. Privacy

Pre-alpha

How Mayday coordinates your agents.

Coding agents are good at their own task. Mayday is the layer above them: it keeps the map of how tasks fit together, notices when one agent’s change breaks another’s assumptions, checks the work before it reaches you, and asks for you only when it matters. Each part below follows the same sample project, acme-app, with Claude on auth, Codex on billing and Gemini on the dashboard.

PlannedCore coordination is planned, not built. Every scene uses sample data. Timeline and rewind, Mayday Brain, app interaction, voice, computer control, integrations and stream mode are longer-term direction.

Agents understand their task. Mayday understands how the tasks fit together.

Mayday is designed to keep a map of the project: the modules, the interfaces between them, which agent is changing what, and the decisions behind it all. The plan is for its memory to be plain text that you can read and edit.

acme-app · project mapSample project · select a module
Cl Claude · Auth refactor changing getCurrentUser()
getCurrentUser(req)
session.user
Cx Codex · Cancellation depends on Auth
cancelSubscription(req)
getPlanTotals()
Gm Gemini · Dashboard redesign reads totals only
Authsrc/auth
Interfaces
getCurrentUser(req): SessionrequireSession()signToken()
Used by
UserSession, and Billing through it (3 call sites)
Live work
Claude is changing getCurrentUser() to take a request.
Project memory plain text

Sessions are JWTs in an httpOnly cookie, 60 min TTL.

Never store tokens in localStorage. Decided 12 Sep.

Known risk
Refresh race when two tabs renew at once (#142).
PlannedThe project map and editable project memory are planned, not built. The modules, notes and risks here belong to a sample project. Selecting a module is real; editing memory is not part of this page.

Decisions outlast the session that made them.

Relevant decisions can get lost between sessions and agents. Mayday is meant to keep them as plain text you can read and change, and hand the relevant ones to whichever agent picks up related work next.

project memory · authIllustration

## Sessions

- Sessions are JWTs in an httpOnly cookie, 60 min TTL.

- Never store tokens in localStorage. Decided 12 Sep, auth refactor

- getCurrentUser(req) returns a Session. Updated 14:02, auth@4f2c1e

  1. 12 Sep · session 1

    Cl You and Claude settle on cookie-only tokens during the auth refactor. Mayday records it.

  2. 29 Sep · session 9

    Cx Codex starts admin roles in a fresh session. Its first plan caches the token in localStorage. Mayday points it at the decision before any code is written.

PlannedPersistent, editable project memory is planned, not built. Illustration on the sample project; the dates are sample data.

The right model and effort for each task.

Mayday is designed to suggest an agent, a model and an effort setting for each task, based on what the task touches, and to say why. You confirm it or pick something else.

Effort and reasoning settings belong to each provider and aren't equivalent across them, so Mayday shows each tool's own options rather than one shared scale.

Direction

Suggestions that learn from your own project history, such as which setups pass verification for a given kind of task. Then, if you want it, automatic routing.

Task

Refactor the authentication architecture

  • 14 files
  • 2 public interfaces
  • security-sensitive

Mayday would suggest

Cl Claude Sonnetvia Claude Code effort: high

It changes interfaces that billing and the dashboard depend on, and it touches session handling. Worth the most careful setting, plus an independent review afterwards.

Alternative you could pick

CxCodexvia Codex CLIreasoning: high

Also suitable if Claude is busy with other work. Either way, a different model reviews the change before it reaches you.

Task

Rename 26 UI labels

  • copy only
  • 9 files
  • no logic

Mayday would suggest

Cl Claude Haikuvia Claude Code effort: low

A mechanical copy change with nothing to reason about. A light setting is enough, and the usual checks still run before review.

PlannedRouting suggestions are planned, not built. The tasks, models and settings are an illustration, not a benchmark or a ranking of providers.

Parallel agents need more than parallel branches.

Three agents on one machine fight over port 3000, the dev database and your browser session. Mayday is designed to give each task its own environment and tear it down when the work lands.

A worktree, port, database, browser session and env file for each task. Created when the task starts, removed after it merges.

PlannedIsolated per-task environments are planned, not built. Illustration with sample names and ports; the toggle is real.

What you asked for, next to what changed.

A diff shows what an agent did. It doesn’t show whether that was the job. Mayday is meant to keep the request beside the result, so scope creep is visible before review rather than after merge.

Cx Subscription cancellation · Codex · branch billingIllustration

You asked for

  1. Add a “Cancel subscription” button to account settings
  2. Implement cancelSubscription() in billing
  3. Keep Stripe calls in lib/stripe.ts

The agent changed

  • src/app/settings/CancelButton.tsxnew Expected Matches the request
  • src/billing/cancel.tsnew Expected Matches the request
  • src/lib/stripe.tsedited Expected Added cancelAtPeriodEnd(). Allowed: Stripe calls belong here
  • src/auth/session.tsedited Out of scope Outside the request. Auth belongs to Claude’s task
  • migrations/0042_cancelled_at.sqlnew Needs you Not requested. Changes the production schema

Mayday: the auth edit is reverted and handed to Claude’s task; migration 0042 waits for your approval. The rest goes on to verification.

PlannedComparing requested intent with actual changes is planned, not built. Illustration on the sample project.

Queued work waits for the contracts it needs.

When auth changed getCurrentUser(), billing was paused and refreshed. The same change matters to work that hasn’t started yet. Mayday is designed to reorder the queue so nothing begins on a contract that is about to move.

acme-app · task queueIllustration

Queue at 14:01

  1. Cl Admin roles Next to start
  2. Cx Search filters Queued
  3. Gm Email receipts Queued

14:02:11 Claude changed getCurrentUser() on auth

Queue at 14:02, rescheduled

  1. Gm Email receiptsShares no interfaces with work in flight Started
  2. Cx Search filtersReads Subscriptions; waits for migration 0042 Queued
  3. Cl Admin rolesNeeds getCurrentUser(req), which lands with the auth merge Waiting on auth
PlannedDependency-aware scheduling is planned, not built. Illustration on the sample project; the times are sample data.

An agent saying “done” isn't verification.

Mayday is designed to prove the result before it reaches you: build, types, tests, the running app in a browser, and a review by a different model than the one that wrote the code. Then it checks the finished tasks together.

Review queue · 3 tasks1 ready for review
  1. GmDashboard redesignVerified
  2. CxSubscription cancellationVerifying · 4/7
  3. ClAuth refactorNeeds a decision

Dashboard redesign

branch dashboard · built by Gemini · reviewed by Claude

Ready for review

Rebuilt the stat cards and plan table. Why: the old grid broke under 900px (issue #151).

  • Build14.2sPass
  • Typecheck0 errorsPass
  • Tests184/184Pass
  • Browser flowsign in → /dashboard → change planPass
  • Mobile · 390pxno overflowPass
  • Securityno new secrets or depsPass
  • Independent reviewClaude · 2 notes, 0 blockingPass
Visual proof · 390pxBefore / After

Combined verificationTests passing separately isn't enough.

main+ auth+ billing+ dashboard → Pass · they work together

Changed7 files +312 −148

AffectsDashboard. Reads Subscriptions, doesn't write.

WarningStatCard props changed. Its one other use, admin Overview, is updated in this branch.

PlannedThe review queue, independent review and combined verification are planned, not built. Scripted demo with sample data. The before/after slider is a real control; the review buttons are part of the drawing.

Your job isn't watching progress bars.

Mayday is designed to handle the routine and interrupt you only when a decision needs your judgment. The more it matters, the harder it tries to reach you.

Mayday · Scripted 7 tasks · 5 running · 1 verifying · nothing needs you

Illustration: while routine events are handled quietly (a flaky test retried, a crashed dev server restarted, a question answered from project memory), one decision surfaces: a billing migration that changes the production schema and needs your approval. A ladder shows how Mayday would escalate by importance: logged, shown in Mayday, a desktop notification, and, as long-term direction, a phone push or text, then a phone call.

PlannedQuiet handling and in-app decisions are planned, not built. Phone pushes, texts and calls are direction only. Scripted demo; the events are sample data.

Direction · timeline & rewind

Every change has a history.
Recovery needs context.

Follow one task from your instruction to a decision. The vision is a timeline that connects code, checks, context and approvals, with recovery points whose limits you can inspect.

Subscription cancellation · sample history

An instruction starts the trail.

Add cancellation to account settings. Keep Stripe calls in lib/stripe.ts. Auth is outside this task’s scope.

Instruction recorded · task assigned to Codex

Goal: subscription cancellation
Scope: settings + billing + Stripe wrapper
Auth edits: require a separate task
DirectionTimeline and rewind are future concepts. Selecting an event or inspecting recovery limits only changes this illustration. No files or external actions are restored.

Direction · not being built yet

Later: ask Mayday what’s going on.

The idea behind Mayday Brain: answers from the actual state of the project, its tasks, agents, checks, dependencies and history, rather than another chat sidebar guessing from the open files.

Three agents are running. The dashboard is ready for review. Billing was paused when the auth interface changed, and it’s back on track. Nothing else needs you.

  1. ClAuth refactorbranch auth · 6 filesRunning
  2. CxSubscription cancellationresumed 14:02 · new auth contractRunning
  3. GmDashboard redesignverified · 7/7 checksReady for review

DirectionMayday Brain, spoken questions and remote instructions are long-term direction, not being built yet. Every answer here is scripted. Choosing a question is real; nothing is being asked of a model.

Direction · not being built yet

Point. Speak.
Keep the work connected.

The longer-term operator vision: work from the app itself, use tools on your machine, and connect outside requests to the same tasks and evidence.

These are interaction concepts, not supported integrations or computer-control capabilities.

Turn a specific UI problem into scoped work.

The vision: select something in the running app, explain the change, and keep the instruction attached to the component, task and visual evidence.

acme-app / settings · sample preview

Subscription

Current plan · Team

Display concept only. The sample account above is fictional; nothing is connected.

DirectionApp selection, voice, PC control, integrations and stream mode are future vision. Stream mode here hides sample account text in the drawing only; it does not protect recordings or alter data sent to providers.

Usage you can read, without invented precision.

The plan is to show what each task used and what it is likely to cost, and to say which numbers are recorded, which are estimates, and where a provider simply doesn't tell you.

acme-app · usage by task · todaySample data
Sample usage by task. Figures are invented for illustration.
TaskAgent and planTokensCostSource
ClAuth refactor Claude Sonnet · API key 1.92M in · 148k out $7.98 RecordedFrom the provider’s usage report for this task’s requests
CxSubscription cancellation Codex · API key ~610k in · ~52k out ~$1.90 EstimateToken counts × published rates. Not a bill
GmDashboard redesign Gemini · subscription plan Not reported Unavailable UnavailableThe plan doesn’t expose per-task usage, so there is nothing to convert into a cost
PlannedUsage and cost reporting is planned, not built. Every figure here is sample data, not a measurement or a price quote. Subscription plans may never allow an exact cost per task.

Hear first when there’s something to try.

Join the waitlist

Explore the full workflowSupport the project