v0.1 · macOS preview · self-hosted

Terminals weren't
built for teams.

Yaeger captures every command your team runs, indexes every output, and shares the trail across your workspace. So context survives — for engineers handing off at 2am, and for agents pointed at production.

workspace
production-ops
drift sync
3 pilots online
observation
247 cmd captured
tool call
k8s.deploy()
~/yaeger · production-ops · drift: alex, jamie
The missing primitive

Your terminal sees
everything.
Your team sees
nothing.

The terminal captures the highest-fidelity record of what your team does to its systems — every deploy, every rollback, every 3am incident. Nothing else in your stack can see it.

  • 01
    Context dies on session close.
    When the window closes, the trail is gone. Tomorrow's debugging starts from zero.
  • 02
    Slack threads aren't state.
    Half-remembered commands pasted into chat. Engineers re-explaining themselves on every handoff.
  • 03
    Agents work blind.
    Models can read your code, your docs, your tickets. They can't read what's actually running.
What changed

Two shifts pointed at
the same answer.

For thirty years, terminals being personal was fine. In the last three, two things broke that assumption — and neither is going back.

01Then → now

Teams went async.

Distributed engineering, rotating on-call, async handoffs across shifts and timezones. Every handoff is a memory transfer. Every memory transfer through Slack loses something.

02Then → now

Agents got real.

Models can now drive operational work. But they need observable state to act — and chat windows describe state, badly. The terminal is the only place state actually lives.

The terminal had to stop being personal.
It had to become team infrastructure.

The answer

Three things terminals
haven't done before.

Yaeger inverts what's broken. Workspaces become shared. Output becomes addressable. Models become participants.

# production-ops 3 pilots
alex · in shell · 2m ago
jamie · ran migrate.up
you · memory loaded

Pilot your team's terminal

Workspaces are shared. When you join one, you inherit its memory — runbooks, env state, command history. Two pilots, drift compatible.

$ kubectl rollout restart api
→ deploying api · v2.4.1
pod-7f4b9c-x2k9 · pulling
pod-7f4b9c-q1m4 · ready
✓ rollout complete · 1.2s
captured · indexed · drive

Observation, not chat

Every command captured, every output indexed. Models read your terminal directly. Tool calls beat conversations — and ship faster.

Self-hosted by default

Your data, your VPS. Postgres for memory, MinIO for blobs, all behind your own domain. No vendor cloud to leak through.

The drift

Two pilots,
one mind.

When you join a workspace, you inherit it. Your teammate's last deploy, env state, and audit trail are visible from your own terminal. No copy-pasting context. No "what happened on staging?" Slack threads.

A
Alex
on prod-ops · 4h ago
$ deploy --service api v2.4.1 ✓ rollout 1.2s · 3/3 pods # captured · drive
drift sync
S
You
just joined · alex's state restored
▸ memory loaded last deploy 4h ago · alex rollback safe · monitor 14m

Stop re-explaining
yourselves.

Sign in once with GitHub. Download Yaeger. Drop into your team's workspace. No password, no email gate, no vendor cloud — just your team's terminal.

macOS · Apple Silicon Self-hosted on your VPS MIT-licensed framework