Writing
Focus cues vs inbox hacks for agent fleets
2026-10-01
Past a couple of coding agents, the hard part isn’t getting output. It’s staying on top of what’s going on without spending your whole day in Slack, email, and.
Past a couple of coding agents, the hard part isn’t getting output. It’s staying on top of what’s going on without spending your whole day in Slack, email, and pop-ups.
This is a comparison between two ways of doing that:
- Ad-hoc notification hacks: email filters, Slack channels, IDE toasts, tray icons.
- Maxxwell’s attention layer: status, grouping, and progress markers on top of your agents.
Why inbox hacks stop working at agent scale
Inbox tricks scale until you have more sessions than you can mentally track.
Microsoft’s 2025 Work Trend Index puts numbers on the background noise:
- 117 emails and 153 Teams messages per worker per weekday on average.
- The most connected workers hit ~275 interruptions/day.
- 40% of people online at 6 a.m. are already checking email.
That’s before you add “AI agent” as another source of notifications.
GitHub’s Good Day Project found developers had an 82% chance of a good day with minimal interruptions, but only 7% when interruptions dominated. Attention, not tokens, is the scarce resource.
When you have 6-12 coding agents running across repos, ad-hoc notification setups usually look like:
- A dedicated Slack channel per agent or per project.
- Email filters dropping bot messages into a folder.
- IDE/terminal pop-ups for “agent done” or “agent needs input”.
Mechanically, that does three things:
- Pushes every change into your primary communication surfaces.
- Forces you to context-switch into those surfaces to see state.
- Mixes high-value events (“agent shipped a PR”) with trivial ones (“agent asked the same question again”).
Gloria Mark’s work on interrupted knowledge workers found 57% of work spheres were interrupted and that it often took ~23 minutes to regain a concentrated state. Notifications that drag you back into email/Slack are exactly that kind of interruption.
What Maxxwell actually does differently
Maxxwell sits above your agents (Claude Code, Codex, Cursor’s agent, your own scripts) and gives them a single surface.
The mechanics matter:
- Every agent session is a real terminal session you own; Maxxwell does not wrap or replace them.
- Closing Maxxwell detaches from those sessions; it never kills work.
- You can attach to any worker session and take over mid-sentence.
On top of that, Maxxwell adds an attention layer that is not a notification stream:
- Status per lane: working, idle, waiting on you, not started, needs sign-in, blocked, done, dead, not heard from.
- “Possibly stalled” overlay: when it can’t confirm progress, it says so instead of guessing.
- Context pressure readout: live indicator of prompt/context size with tiered warnings and one-click compact.
- Orchestrator seat: a dedicated agent session you brief once; you talk to it instead of to twelve workers.
- Return report: it separates what landed (merged code, created branch) from what still needs your call.
The key design choice: fleet controls draft rather than act.
- Any control that would change the fleet (start new worker, retask one, compact context) writes a fully formed, unsent sentence into the composer.
- Nothing is executed until you press enter.
So Maxxwell manages attention by:
- Showing state in one place instead of pushing events out to email/Slack.
- Keeping agent control one deliberate keystroke away.
- Admitting when it doesn’t know (“not heard from”) instead of faking “working”.
Criteria: how to judge focus protection tools
For herding a swarm of coding agents, the criteria are straightforward:
- Visibility without constant polling
- Can you see which agents are doing something useful, and which need you?
- Interruption profile
- Does the tool drag you into a different app for every update?
- Signal vs noise
- Do you see only decisions and failures, or every minor state change?
- Control posture
- Is the tool allowed to act on your behalf, or does it stop at drafts?
- Local vs remote
- Where does it run, and what does it need in terms of accounts and keys?
- Survival of work
- What happens to work if you close the window or your laptop lid?
With those in hand, we can compare inbox/notification hacks, IDE pop-ups, ambient agent status tools (Herd, AgentHalo, Acepe), and Maxxwell.
Inbox and notification hacks: what they actually give you
Email filters and Slack bots are attractive because you already have them.
Typical setup:
- Agents post status updates to a Slack channel.
- Critical events @mention you.
- Email receives summaries or nightly “agent finished” reports.
On our criteria:
- Visibility: high in theory; everything is logged somewhere.
- Interruption profile: terrible - every interesting event arrives in an app whose job is to interrupt you.
- Signal vs noise: weak; you rely on message discipline and humans writing good bots.
- Control posture: mixed; many bots act on commands immediately.
- Local vs remote: fully remote; you’re wiring cloud services together.
- Survival of work: depends on the agents themselves, not the notification glue.
The bigger problem is resumption cost.
A programming resumption study over 10,000 sessions found only 10% resumed coding in under one minute and only 7% resumed without navigation. Every time you tab to Slack to see if “backend-refactor-agent” is done, you’re paying that cost.
Inbox hacks are good at one thing:
- Cross-team awareness: if you want everyone seeing the same agent events, Slack is the shared surface.
They are bad at:
- Protecting focus during deep herding: you cannot keep the swarm visible without opening the swarm’s chat.
IDE pop-ups and tray icons: fine for one agent, not for twelve
IDE integrations and tray icons are the other common pattern.
Examples:
- VS Code toast: “Agent completed task X”.
- System tray badge: “2 agents waiting”.
- Title bar bell icon lighting up when an agent wants input.
On the criteria:
- Visibility: fine for single agents, weak for many; you get per-agent cues but no global view.
- Interruption profile: moderate; they grab attention, but at least stay in the IDE.
- Signal vs noise: depends on the plugin; most treat every event similarly.
- Control posture: often action-oriented; clicking can trigger work.
- Local vs remote: usually hybrid; IDE is local, models are remote.
- Survival of work: tied to the IDE session.
Herd, AgentHalo, and Acepe push this pattern further with ambient cues:
- Herd: tray/titlebar cues so agents can request attention without stealing focus.
- Acepe: an explicit “attention queue” to decide who you answer next.
- AgentHalo: a status light - thinking/working/done/blocked/waiting.
They all improve the periphery: information lives in your field of view without occupying it.
Where they stop:
- No orchestrator that owns goals across agents.
- No draft-only fleet control posture.
- Limited progress semantics beyond state (“done vs blocked vs waiting”).
They’re good if:
- You run one to three agents and want better signals than pop-ups.
They fall short when:
- You run a dozen agents across repos and need to see what landed and what’s stuck, not just who’s pinging you.
Maxxwell’s focus cues: status, grouping, progress
Maxxwell’s attention model is closer to “calm display” research than to notifications.
Microsoft Research’s work on calm displays argues for information that lives in the periphery and moves to the center only when you choose. A 2025 Scientific Reports study on assistant cues found that “what’s the next action?” cues improved post-interruption performance more than simple retrieval cues, especially under fatigue.
That’s exactly what Maxxwell’s cues are built to do.
Mechanically:
- Status: every lane carries a readable state, and when Maxxwell cannot verify one, it says “not heard from” instead of pretending.
- Grouping: sessions are grouped by project/goal, not just by process ID.
- Progress markers: return reports distinguish:
- What shipped (branches, PRs, applied patches).
- What still needs you (tests to inspect, diffs to review, cross-repo decisions).
- Context pressure: visible in the same surface; you see which agents are about to hit the wall.
You don’t get:
- Random toasts.
- Slack messages every time an agent logs output.
- Email digests that you’ll read at 11 p.m.
You do get:
- One window that answers “who is working, who is stuck, what landed, and what do I need to do next?”.
And because fleet controls draft instead of act:
- Starting a new worker from the orchestrator writes the instructions but does not send them.
- Retasking a stuck session writes the retask message but does not execute.
You stay the one who presses enter.
Comparison: inbox hacks vs Maxxwell focus cues
You can implement the inbox side today with filters and bots; you probably already have.
The difference is that Maxxwell is designed as an agent-of-agents layer:
- It owns goals and visibility, not the underlying model.
- It stays local: desktop app on macOS, Linux, Windows; CLI for macOS and Linux.
- You bring your own model access: API key or existing Claude/Codex/ChatGPT subscription.
Sessions outlive the app. Closing Maxxwell is a detach, not a kill.
What to use when
For common scenarios:
- Single agent, single repo
- Use your IDE’s built-in notifications.
- Maxxwell is overhead if you have no coordination problem.
- A few agents, one project
- IDE cues + ambient tools like Herd/AgentHalo/Acepe work well.
- If you keep asking “which one is stuck?” Maxxwell starts to pay off.
- Many agents across multiple projects
- Inbox/notification hacks will grind your day into tiny fragments.
- Maxxwell gives you one orchestrator seat and a fleet view that doesn’t spam other apps.
- Team setting with shared agents
- Slack/email are useful as broadcast surfaces.
- Use them for high-level “what shipped” summaries.
- Use Maxxwell per developer to keep the actual herding out of the chat.
FAQ
How does Maxxwell protect focus better than Slack bot notifications?
Slack bots push every event into a channel that’s already full of human conversation.
You have to switch context into Slack and then back into code, paying the resumption cost each time.
Maxxwell keeps agent state in one window with readable statuses and progress markers, so you can glance at the swarm without entering a chat app.
Does Maxxwell automatically fix stalled or drifting agents?
No.
Maxxwell conducts; it does not run on autopilot.
It shows “possibly stalled”, “blocked”, and “not heard from” states, and gives you a one-click compact for context pressure, but it does not re-aim a session, recycle context, restart stopped work, or run goal checks on its own schedule.
You see the problem faster and act yourself.
Can I still use Slack and email with Maxxwell?
Yes.
Maxxwell runs locally and does not require or replace Slack/email.
A common pattern is:
- Use Maxxwell for live herding and per-developer focus.
- Use Slack/email for daily or weekly summaries of what agents shipped.
What happens to my agents if I quit Maxxwell?
Sessions outlive the app.
Quitting Maxxwell detaches from your worker terminals; it never kills them.
You can reattach later from Maxxwell or directly from your terminal.
Does Maxxwell replace Claude, Codex, Cursor, or my custom agents?
No.
Maxxwell is explicitly not another coding agent.
Workers are your own unmodified tools running as real terminal sessions.
Maxxwell owns the layer above them - goals, visibility, and the handful of decisions that genuinely need a person.