Aetower

Developer Preview · v0.54 · macOS

Your Mac runs agents now.
Run it like an operator.

Aetower is the operator console for the machine your agents run on. See friction, energy, money, disk, and repo impact from day one — grow into budgets, incident playback, fleet views, and agents that inspect their own runtime over MCP. Nothing leaves your machine unless you export it.

Download for macOS Point your agent at it Aetower.pkg · Apple silicon · macOS 14+
Aetower · Monitor
Aetower's Monitor tab: a metric ring header for CPU, memory, disk, network, and wakeups above a friction-ranked list of running entities.

Why this exists

01

Agents are workloads you didn't schedule

Coding agents, local models, background inference — they launch processes, spawn helpers, and keep working while you're in a meeting. Your Mac became a small datacenter, and nobody was watching it.

02

They spend real resources

Battery, watts, dollars, carbon, disk, and thermal headroom. Aetower translates agent activity into those units — per session, per repo, per machine — so the cost of a background run is a number, not a fan noise.

03

The watcher must be local

You can't observe your own machine through someone else's cloud. One local engine serves the app, the CLI, and an MCP server — so you and your agents read the same live truth, and it never leaves the Mac.

The operator's ladder

Aetower meets you where you are — from your first agent install to running a small fleet. Each rung works on day one; none of them requires the previous.

01 · Day one

See what's running and what it costs

Every app, daemon, and agent is one entity with one 0–100 friction score. The loudest thing is at the top, and each one comes with a recommendation in plain English. No dashboards to learn, no metrics to configure.

  • Entity grouping: Chrome plus 47 helpers is one row, not fifty.
  • The AI-tax panel: GPU, VRAM, and energy per agent — with a warning before the VRAM swap cliff.
  • Recommendations that adapt to battery, thermal state, and memory pressure.
Monitor · by friction
EntityFriction
Chrome entity · 48 processes
72
Ollama AI runtime · GPU-bound · 8.1 W
58
Spotlight system · indexing burst
31
Claude Code agent · repo aetower · 0.2 W
14
02 · First incident

Reconstruct what happened

The first time your Mac locks up mid-demo, you'll want yesterday back. Activity keeps seven days of entity-level playback and a timeline that reads like an incident report — so "what was running at 2 PM" is an answerable question.

  • Scrub through history: friction, CPU, memory, and disk per entity, at capture cadence.
  • Spikes, thermal escalations, restart loops, and agent session costs on one feed.
  • Reverse pivots: which process holds this file, port, or socket.
Activity · Timeline
Chrome friction rose to 65 — WebGL tab is top contributor
Thermal state degraded to Serious
helperd restart loop detected — 4 restarts in 90 s
Claude Code session ended · 412 mWh · 38 mAh
Memory pressure back to Normal
03 · Steady state

Set budgets, act with guardrails

Once you can see the spend, you'll want limits on it. Per-agent budgets alert when a session runs hot; storage intelligence explains growth and stages safety-tiered cleanup of agent artifacts through the Trash; process actions preview before they touch anything.

  • Budgets and alerts per agent, with category toggles and snooze.
  • Growth attribution and APFS-aware reclaim — node_modules, target/, DerivedData first, never blind.
  • Guarded actions with previews and follow-up verification; persistence and code-signing audits.
Activity · Storage
Claude Code · $2/day budget · ok Ollama · 5 W cap · alerted
~/Library/Caches 18.4 GB
node_modules ×23 11.2 GB
Xcode DerivedData 7.9 GB
target/ (Rust) 6.3 GB
Docker.raw 4.1 GB
Cold data 90 d+
↺ 27.8 GB reclaimable · staged via Trash
04 · Scale

Ready your repos, watch every machine

Agents work on repositories and across machines. The Repos tab joins storage pressure, Git state, duplicate clones, per-repo AI spend, and operating-contract readiness; Fleet shows every Mac on your network running Aetower — zero config, no server, no account.

  • Check AGENTS.md readiness before pointing an agent at a repo.
  • Provider actions: re-run failed GitHub workflows, redeploy Cloudflare Pages.
  • Bonjour fleet summaries: CPU, memory pressure, thermal state per machine.
Repos · Attention
aetower master · clean · $1.30 AI spend / 7 d
contracts6.3 GB target/
client-portal feat/auth · dirty · 2 clones detected
duplicatedirty
data-pipeline main · CI failing · workflow re-run available
no contracts1.9 GB venv
blog main · clean · Cloudflare Pages linked
contractsdeployed

The top of the ladder

Local MCP

Let your agents operate themselves

The app owns a local MCP server on a Unix socket — one engine, no second collector. Your agents query the exact live state you're looking at: 30+ read-only tools for snapshots, history, anomaly explanations, memory breakdowns, storage intelligence, and repo inventory.

After a freeze or a pressure spike, one call to aetower_investigation_bundle hands the agent alerts, findings, recent changes, and history diffs for the window — instead of twenty shell commands.

aetower_investigation_bundle aetower_explain_anomalies aetower_reboot_report aetower_memory_breakdown aetower_ai_runtime_report aetower_wakeup_attribution aetower_diff_snapshots aetower_recommendations
you › what's straining my Mac right now?

agent › calling aetower_top_findings…
agent › Ollama (llama3:70b) leads at friction 58 —
        GPU-bound, 8.1 W. VRAM is at 78%, close to
        the swap cliff. Consider a smaller quant.

# Registered automatically for Claude when installed;
# manual config for any MCP client:
{
  "mcpServers": {
    "aetower": {
      "command":
        "/Applications/Aetower.app/Contents/Helpers/aetower-mcp"
    }
  }
}

# Read-only by default. Exports are privacy-tiered
# and redacted. Auto-registration is opt-in.

Plays well with your stack

CLI

The same live data in your shell, scripts, and pipelines.

OTLP → Grafana

Optional metrics export with a documented reference and a ready-made dashboard.

Docker

Local container metadata joined to the entities that own it.

Chau7

Agent sessions, per-repo costs, and runtime state when Chau7 runs.

Chromium debug

Tab-level attribution through compatible debug endpoints.

Shortcuts & shell hooks

Process events can trigger your own automations.

What it inspects

Process pressure

CPU, threads, friction.

Wakeups & energy

Battery, cost, carbon.

Memory

Footprint & leaks.

Storage

Growth, cold data, reclaim.

Code-signing

Unsigned / ad-hoc.

Persistence

Agents, daemons, cron.

Agent impact

Timelines, budgets & MCP.

Repositories

Clones, contracts, spend.

Versus the usual suspects

Activity MonitorA flat process list sorted by CPU, no history, no story.
Aetower groups processes into entities, ranks them by friction, and keeps seven days of playback.
Menu-bar gaugesHost-level CPU/RAM numbers with no attribution.
Aetower tells you which entity owns the pressure, who launched it, and what to do about it.
Disk cleanersFolder sizes and a scary "delete" button.
Aetower explains growth with filesystem evidence and stages safety-tiered cleanup through the Trash.
Everything elseNo concept of AI agents at all.
Aetower attributes GPU, VRAM, energy, and per-repo spend to each agent — and serves it all to agents over MCP.

Built like it preaches

Local-first

Runtime history and diagnostics stay on your Mac unless you explicitly export them.

Conservative

Endpoint Security, telemetry, and automatic MCP registration are all off until you opt in.

Open source

AGPL-3.0, with every binary release paired with its exact corresponding source archive.

Watches itself

The Diagnostics tab turns Aetower's own pipeline into the same observable surface it gives your apps.

Developer Preview

Join the preview deliberately

Aetower is a Developer Preview: signed, notarized, and auto-updating through Sparkle — and moving fast. Surfaces evolve between releases, and feedback steers what hardens first.

It's built for technical people who understand macOS permissions and want a say in what an agent-era operator console becomes. If that's you, you're early on purpose.