Reviewing Your AI Agents Offline

amux v0.9.200 caches every running session’s scrollback locally in your PWA, so you can review your full agent fleet without any internet connection — on a plane, subway, or anywhere signal drops out. Updated July 2026.

TL;DR: Install the amux PWA or iOS app, browse your sessions while online, and the scrollback is cached locally. Open amux offline and every session shows its last-known terminal output. Queue new instructions via the offline outbox — they deliver the moment you reconnect.

Why Offline Matters for AI Engineering Teams

Running an AI engineering team means your agents are always working, but you’re not always online. The morning commute, a trans-continental flight, a conference with spotty wifi, a walk between buildings — these are the moments when you most want to check what your overnight agents accomplished. Before amux v0.9.200, every one of these gaps meant opening your laptop, SSH-ing in, and running tmux attach — which required a working network connection.

The amux offline scrollback cache changes that. Every session’s terminal output is written to local IndexedDB the moment you view it while online. When you go offline, the full history is already on your device. No server needed to read what your agents did. The dashboard behaves identically, just with a last-synced timestamp instead of a live stream.

This pairs with the rest of the phone-first amux stack: you can read what your agents did (scrollback cache), review the task board (kanban cached locally), check what’s blocked or completed (stalled badge), and write your next instruction (offline outbox) — all without a connection, and all from your phone.

What Works Offline vs Online-Only

Action Offline Online Notes
Read session scrollback Offline shows last-cached snapshot; online shows live stream
View kanban board and task statuses Board state cached from last sync
Read notes and reference docs Notes cached in PWA service worker cache
Check stalled/active session badges Stalled Nm badge visible from last sync
Queue messages (offline outbox) Queued in IndexedDB, auto-delivered on reconnect
Receive live scrollback updates SSE live stream requires server connection
Start or stop sessions Lifecycle control requires server
Deliver messages immediately Messages queue offline; delivered when signal returns
Use voice dictation ~ Record while offline; Gemini transcription queues until reconnect

How the Scrollback Cache Works

The amux dashboard uses IndexedDB, the browser’s built-in structured storage, to persist session scrollback locally. Here’s the data flow:

  1. Write on view: When you open a session’s Peek panel while online, the current scrollback buffer is written to IndexedDB under that session’s ID. This happens immediately, in the background, without any loading indicator.
  2. Cache survives backgrounding: Unlike session storage (which clears when the tab is suspended), IndexedDB persists across background eviction, device lock, and app restarts on both iOS and Android.
  3. Served from cache when offline: When the dashboard detects no server connection, it reads scrollback from IndexedDB and renders it exactly as it would render live output — same Peek panel, same formatting, same syntax highlighting for code blocks.
  4. Auto-sync on reconnect: The moment the SSE connection re-establishes, the dashboard fetches fresh scrollback and writes it back to IndexedDB. The offline snapshot is replaced without any manual refresh.

The cache size is bounded by the session’s scrollback buffer (typically the last few thousand lines of output). It does not store the full JSONL conversation history — only the rendered terminal output you would see in the Peek panel.

Setup Guide

No configuration is needed — offline scrollback caching is on by default in amux v0.9.200 and later. The steps below ensure you have the best offline experience before you need it.

Step 1: Install amux

# Homebrew (recommended — macOS/Linux)
brew install mixpeek/amux/amux
amux serve   # → dashboard at https://localhost:8822

# PyPI
pipx install amux && amux serve

# Zero-install trial
uvx amux serve

Step 2: Install the PWA on your phone

The offline cache only works in the installed PWA or iOS app — it does not apply to a regular browser tab that gets closed. Install steps:

Step 3: Prime the cache before you go offline

Open each session’s Peek panel once while you have signal. The scrollback writes to IndexedDB in the background. A quick pass through the Sessions tab — tap each card to open Peek, let it load, move to the next — takes about 30 seconds for a fleet of 10 agents and leaves you with a full offline snapshot of every session.

For automated priming, schedule a daily amux scheduler job that opens and polls each session while your device is on wifi overnight.

Step 4: Use the dashboard offline

When signal drops, the dashboard shows a small offline indicator in the header. All previously-cached sessions remain fully readable. The last-synced timestamp appears in the Peek header so you know exactly how fresh your snapshot is.

Offline Outbox — Queue Messages for Later

Reading scrollback offline is useful. Writing instructions offline is what makes it operational. The amux offline outbox lets you compose a message to any session and hit Send while completely offline. The message is stored in IndexedDB with a pending status and automatically sent to the server the moment connectivity returns.

Use case: You board a plane, review your agents’ overnight work in the scrollback cache, notice that agent-2 went down a wrong path, and type revert your last 3 edits and restart from the spec in /docs/requirements.md. You hit Send. Your phone queues the message. When the plane lands and your phone reconnects to cell signal, the instruction is delivered to agent-2 within seconds.

The outbox uses the same deduplication mechanism as the dictation offline queue: each message has a msg_id UUID generated at composition time. If the PWA reconnects and retries, the server rejects duplicate msg_ids, so you never accidentally send the same instruction twice.

Voice dictation offline

If you use voice dictation, recordings captured while offline are also queued. Your phone records and saves the audio locally; when signal returns, the audio uploads to Gemini for transcription, and the resulting text lands in the session composer for your final review before sending. The offline queue for dictation and for typed messages share the same auto-flush mechanism.

Real-World Scenarios

✈ Transcontinental flight

Your team of 12 agents ran overnight. Board the plane, open amux, read every session’s scrollback in airplane mode. Compose correction messages for 3 agents that went off-spec. They all deliver the moment wheels down.

🚍 Subway commute

Open amux before descending underground. Cache primes automatically as you browse sessions above ground. Below ground, read what your agents built overnight. Queue your morning direction. Exit the station: instructions delivered.

🏫 Conference with bad wifi

Hotel wifi at 50 people is unusable. Your agents are still running on your home machine. Review their progress in the cached scrollback. Queue next-step instructions. When you step outside for a break and cellular kicks in, they all go through.

🏠 Travel day

Driving between cities with spotty coverage. Passenger uses voice dictation to describe corrections to the agent mid-route. The voice recording caches locally. First cell tower hit: transcribed, reviewed, delivered.

🏞 Morning walk

Wake up, prime the cache over home wifi (30-second Peek pass through all sessions). Go for your morning walk. Review everything the agents built while you slept. No data usage on cellular, full offline access.

🕑 Client meeting (device in bag)

Your phone locks during a 2-hour meeting. IndexedDB persists through the lock screen. After the meeting, open amux and the cached scrollback is exactly where you left it — no re-loading, no re-scrolling.

iOS-Specific Notes

iOS WebKit (Safari engine) has a few behaviors worth knowing when using the amux offline cache:

Quick Setup (5 Steps)

  1. Install amux: brew install mixpeek/amux/amux && amux serve
  2. Install the PWA: Open dashboard → Share → Add to Home Screen (iOS) or Install App (Android)
  3. Start your sessions and run your normal agent workflow
  4. Prime the offline cache: Open each session’s Peek panel once while on wifi to write the scrollback to IndexedDB
  5. Go offline confidently: Open amux anywhere, read all your agents’ cached output, queue instructions, reconnect to deliver them

FAQ

Can I check my AI agents without internet?

Yes — amux v0.9.200 caches every running session’s scrollback locally in IndexedDB. When you open the amux PWA or iOS app offline, you see the last-cached output for each session. You can read terminal output, check the task board, and review notes without any server connection.

Does this require amux Cloud?

No. Offline scrollback caching is a client-side feature built into the open-source amux PWA — it works with any self-hosted amux instance. The IndexedDB cache stores scrollback on your device, not on any amux server. amux Cloud adds a hosted dashboard, tunnel, and automatic backups, but offline caching works without it.

How fresh is the offline cache?

The cache is as fresh as the last time you viewed that session’s Peek panel while online. amux writes to IndexedDB on demand — it does not run background syncs while the app is closed. For best results, do a quick Peek pass through all your sessions before going offline. For automated freshness, use the amux scheduler to run a regular peek poll while on wifi.

Does the offline cache work on iPhone?

Yes. iOS WebKit fully supports IndexedDB and persists it across background eviction cycles — the scrollback survives iOS suspending the app. The PWA (Add to Home Screen in Safari) and the native iOS app both use the same IndexedDB-backed cache. IndexedDB is not affected by the “website data” quota that Safari caps at 50 MB; structured storage for installed PWAs gets the same quota as native apps on modern iOS.

Can I send messages to agents while offline?

Yes, through the offline outbox. Type your message in the session composer and press Send. The message queues in IndexedDB with a unique msg_id and auto-delivers the moment connectivity returns. Duplicate delivery is prevented by server-side msg_id deduplication.

What version introduced offline scrollback caching?

v0.9.200 (shipped 2026-07-26, commit a5e73c0). Earlier versions cached some PWA shell assets (HTML/CSS/JS) but not session scrollback. If you installed amux before this version, run brew upgrade mixpeek/amux/amux to update.

How is this different from the PWA offline sync outbox?

The offline outbox (v0.9.179) handles writing while offline — queuing messages you compose and delivering them on reconnect. The scrollback cache (v0.9.200) handles reading while offline — storing your agents’ output so you can review it without a server. They complement each other: read what agents did (scrollback cache), write your next instruction (outbox), deliver it when connected.

amux — review your AI agent fleet from anywhere, online or offline (315★ GitHub)
Open-source control plane for AI engineering teams. Offline scrollback cache, offline outbox, voice dictation, self-healing watchdog, and full PWA. Run Claude Code, Codex, and Gemini CLI from your phone.
View on GitHub ★

Review your agents anywhere — even offline

Install amux in 30 seconds. Open-source, MIT licensed, single Python file, no cloud dependency. The offline scrollback cache is built in — no configuration needed.

Star on GitHub Download iOS App

Related Guides