Aetower

Developer Preview · v0.74 · 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 incident playback, storage reclaim, 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's Monitor tab: metric cards for friction, CPU, memory, disk, network, wakeups, and GPU above a friction-ranked list of running entities, led by the burden leaders.

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.
Aetower's Agents workspace: live CPU, memory, wakeups, and disk cards for the agent runtime, a session counter showing prompts and approvals, and per-session cards with repo, branch, and resource chips.
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.
Aetower's Activity workspace in Overview mode: cards for timeline events, criticals, persisted history range, and safe mode, above a recent timeline narrating friction spikes, anomalies, and disk churn.
03 · Steady state

Reclaim what agent work leaves behind

Agent-heavy work fills disks: build artifacts, caches, model weights, spare clones. Storage keeps a persistent index that explains what grew and what wrote it, then stages safety-tiered cleanup through the Trash — verified, APFS-aware estimates and per-path outcomes, never a blind delete.

  • A treemap and full-index explorer to find what's actually big.
  • Growth attribution with filesystem evidence: which roots grew, and why.
  • Rebuildable artifacts first — node_modules, target/, DerivedData — staged, not deleted.
Activity · Storage
58.7 GB reclaimable · 40 items largest: agent session logs · 12.2 GB
~/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+
↺ Stage 40 items via Trash · verified estimate
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 + CLI

One engine — for your agents and your shell

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.

The same socket answers you, too. The bundled aetower CLI is a thin client of that engine — aetower top, storage, repos, or --json into any pipeline — so you read the exact state your agents do, from any terminal. It ships in every download and installs onto your PATH.

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.

$ aetower top
ENTITY                  FRICTION  CPU%      MEM
Chrome · 48 procs             72   139   1.2 GB
Ollama · GPU 8.1 W            58    12   9.1 GB
Claude Code · repo x          14     0   340 MB

# 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

aetower top, storage, repos — or --json into any pipeline. Same live data as the app, while it's running.

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, sessions & 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.