Open source · MIT · macOS · zero dependencies

An ops board and AI workforce for the Mac that runs your automations.

Zulu Assistant watches every LaunchAgent, container, cron job and endpoint on the machine, shows your Claude Code and Codex sessions beside them, heals what it safely can and escalates the rest to you.

curl -fsSL https://zuluassistant.com/install | bash

Just looking? ./install.sh --demo runs a synthetic board with Node only — nothing on your Mac is touched. Have cmux? ./install.sh --demo --cmux adds its own window of scripted agents beside it.

The board catching a failed job, self-healing it, a worker asking for approval and a task closing

The problem

Background jobs fail silently.

A LaunchAgent stops loading, a cron line disappears, a container turns unhealthy — and you find out days later from the damage.

Agent sessions are invisible.

Six Claude Code sessions in six terminals: which one is waiting on you, which is about to run out of context, which one died on reboot?

Agents can't coordinate safely.

No shared task list, no approval gate for risky steps, no rule for when a human must decide.

What you get

Ops Board

One card per launchd job, container, endpoint, cron line and process, plus disk and memory gauges — schedules and last-success read straight from your plists. 24h timeline, event ticker, TV mode.

Agent tiles

Every live Claude Code or Codex session in cmux: running, idle or needs input, its last message, and how much of its context window is used.

Escalation ladder

Instant notification, email after 30 red minutes, SMS for what matters most, a morning digest — and a dead-man's switch that watches the board itself.

Self-heal

Lost terminal auth after a reboot, sessions that failed to come back, a filling disk (only the cleanups you approve). Every repair leaves a line in the ticker.

Mission Control

A master agent that runs residents (one long-lived agent per repo) and short-lived workers — inside a POLICY.md you own.

Agent Mesh

Agents hand each other work as tasks with a close checklist; approvals happen on the board; nothing is ever typed into a busy pane.

The brain

Three memories wired in: an Obsidian vault for the organisation, Graphify for code, Claude memory files for the agents.

Both halves together

The board on one side, your agents in cmux on the other. When an agent asks for permission, its row rises to the top of the phosphor sidebar's ATTENTION view; once you answer, it drops back. Recorded from ./install.sh --demo --cmux — six scripted agents in their own window, every name synthetic.

cmux demo: an agent works, asks for permission, its row rises to the top of the phosphor sidebar, it is answered and the row drops back

How it works

  1. 1

    Run one command

    It lists the tools it needs — Node, gh, cmux, Claude Code, Codex, Graphify, Obsidian — asks once, and installs only what is missing. Then it puts the board, terminal config and agent memory in place.

  2. 2

    Answer zulu setup

    Log in with each tool's own sign-in, pick Claude or Codex for Mission Control, tick what to watch from a scan of your Mac, add alerts, create your vault, grant macOS permissions. Resumable; re-run any step.

  3. 3

    Start Mission Control

    Your master agent comes up in cmux, reads the board and reports. From there it spawns workers and residents under your policy.

$ zulu setup --status
  ✔ GitHub account                     gh is logged in
  ✔ AI engines (Claude / Codex)        master=claude · worker=codex · triage=claude
  ✔ You (owner name + policy)          owner: you
  ✔ What to watch on this Mac          14 item(s) from this Mac on the board
  – Alerts (email / SMS / dead-man)    skipped          (optional)
  ✔ Obsidian vault (org memory)        vault at ~/Vault
  ✔ Graphify + agent memory            graphify · 2/2 skills
  ✔ macOS permissions + power          permissions confirmed
  ✔ Verify + start Mission Control

Claude Code or Codex — your choice, per role

Mission Control, workers, residents and the scheduled triage can each run on either engine. Mix them.

Claude Code

Mission Control gets its contract as a system prompt and a fixed tool allowlist; workers run in auto or accept-edits mode with a durable mesh name.

Codex

Roles run in Codex's workspace-write sandbox with on-request approvals; headless triage runs as codex exec. Same board, mesh, gauges and restore-after-reboot.

See it

The board
The board
Agents and the work ledger
Agents and the work ledger
TV kiosk mode
TV kiosk mode

Safety model

Read-only by design

The board never writes to what it watches. It writes its own data, notifications, and the actions you click.

Your policy decides

Anything paid, outward-facing or destructive escalates to you. Agents request; only you approve, from the board.

Escalate, never guess

No auto-answered permission prompts; messages are delivered only into a ready pane, otherwise queued and reported.

Local and private

Runs on your Mac, serves localhost and your Tailscale network only. No telemetry. Logins stay with each tool.

Requirements

Help

Docs

Install guide, architecture, Mission Control, the Agent Mesh and the brain.

Read the docs →

Community

Questions, ideas and show-and-tell in GitHub Discussions; bugs as issues (attach zulu doctor).

Open Discussions →

Commercial setup & support

Want it installed and watched for you? Professional setup and ongoing support are available.

digitalnethosting.com →