tap captures every TTY/PTY session on a Linux host using eBPF. Local-first — install on a server, list and watch sessions immediately, no extra daemons, no network. Authentication is the kernel's own answer to "who's connecting": SO_PEERCRED on a Unix socket. Remote and AI access via hop →
From a fresh install to streaming a live session in seconds.
Active sessions you can see. Sticky opener identity (who logged in) plus the current writer (sudo/setpriv visible inline). Byte counters, age, idle.
Current screen of pty N as a row × column grid. Colors, attributes, alt-screen, cursor — full SGR-aware reproduction.
Live byte stream into your terminal. Captured escape sequences flow through unchanged; what the original user sees, you see.
One curl. Linux-only — eBPF requires a Linux kernel.
hop-tap-d via systemd, eBPF needs CAP_BPF/CAP_PERFMON/CAP_SYS_ADMIN.
The CLI you actually run. Connects to the daemon's local Unix socket.
tap captures every TTY/PTY automatically. Existing sessions are seeded from /proc.
tap list immediately. No keys, no peers, no setup beyond the install.
Authentication is the kernel's authoritative answer to "who's connecting" — not a claim on the wire.
The daemon listens on /run/hop-tap/local.sock mode 0666 — any local user can connect. On each accept, the daemon reads SO_PEERCRED from the kernel; that's the caller's real uid. The wire carries no identity claims, and there's no way for a client to lie.
Root (uid 0) gets the creator role and sees every active session. Non-root users get the peer role and see only sessions whose opener matches their username. Sticky opener identity (captured at session creation) means a user can't escape their scope by escalating privileges mid-session.
Local audit on a single host has a natural authority gradient: root is the OS administrator. Anything more complex (ACLs, named groups, capabilities) wouldn't survive contact with the actual deployments, where root is what you have. tap embraces it.
Pure-Rust eBPF, CO-RE across kernels, alacritty driving the off-screen grid, sticky opener identity.
tap captures via kernel-side BPF programs that ride on Linux's pty subsystem. macOS/Windows are out of scope for the daemon. The CLI naturally only runs where the daemon does.
Need to drive tap from another machine? Pair it with hop — same eBPF capture, but accessible over an authenticated QUIC peer connection from any client OS.