Airsc is free for everyone. If it helps you, support it with $2–$20.

Support
PluginCautionAgent workflow & memorySome setup

tlive

y49 · y49/tlive

Provides self-hosted remote approval and live monitoring for Claude Code/Codex agents via Telegram, Feishu, or a web terminal, from any device.

Self-hosted remote approvals + live monitoring for Claude Code / Codex — via Telegram, Feishu, or a web terminal. Any subscription or API key.

214 stars30License: MITUpdated last month0 opens

Preview

▍

What you can do with it

  • Remotely approve agent actions from your phone via Telegram or Feishu.
  • Monitor Claude Code or Codex agent runs live from any device.
  • Take over agent typing directly from a web terminal for fine-grained control.

Safety check

Caution

Usable, but read the notes first.

  • ●npm package runs a script automatically on install.package.json
  • ●Installer downloads a remote script and pipes it to the shell.README.md

Automated scan of the repo files. Always review code you run.

From the README

tlive

Vendor-neutral, self-hosted remote-approval + live-monitoring for claude / codex. Approve tool calls, watch runs, take over typing — from Telegram, Feishu, or a web terminal.

English · 简体中文

Your claude / codex runs in your terminal as usual. tlive rides the open hook mechanism both vendors support to push status (and, when you turn it on, approval cards) to Telegram / Feishu, and serves a web dashboard + real terminal off your own machine — watch a run, reply to continue, send a screenshot, or take over typing, from any device. Works regardless of subscription or API key; your session and data never leave your machine.

Out of the box tlive watches and notifies (mode: notify, the safe default — it can never hold up a tool call). Flip on remote approval — hold each tool call so you can Allow/Deny it from your phone — with one command: tlive mode full (or let tlive setup offer it).

[!WARNING] v2.0 is a ground-up rewrite — breaking, with no migration. tlive is no longer the Agent-SDK IM bridge of v1.x and earlier: it no longer drives or owns your sessions, and the old bridge model, its config schema, and its commands (workspace, /use, chat-binding, …) are gone and unsupported. Don't try to carry an old ~/.tlive config forward — just run tlive setup fresh. The final SDK-bridge release is preserved at git tag v1.0-sdk-bridge.

Jump to: Quick start · Integration levels · Features · Install · Codex companion · Security · CLI · Config · Architecture

30 seconds to running

npm install -g tlive

tlive setup        # wizard: registers the tlive plugin with Claude Code's/
                    # Codex's own plugin manager (hooks, skill, /tlive:*
                    # commands), then IM credentials — or skip IM entirely
                    # and say "help me configure tlive" inside Claude/Codex
tlive start        # daemon up — prints web URLs + a QR code for your phone

tlive run claude   # (optional) wrap the session → live web terminal + preview card

Scan the QR once — the dashboard lists every session and streams each run. Turn on remote approval (tlive mode full) and, when a tool call needs approval, your IM gets a card with Allow / Deny / Always-allow buttons and the web card lights up red.

The two integration levels

hooks/companion only (claude/codex as usual)wrapped (tlive run claude/codex)
Approval cards (IM + web)✅✅
Stop-resume by IM reply✅ (reply window)✅
Session card on dashboard✅ status / last message✅ + live terminal preview
Real web terminal (xterm)—✅ multi-device, phone keys
IM text injection (quote-reply → typed into the pty)—✅
IM photo/file → agent—✅ (downloaded, path injected)
Web paste/drop upload—✅

Hooks-only always works — wrapping is pure addition. The Approval cards row needs remote approval on (tlive mode full); the default notify mode does everything else — live monitoring, turn-finished / waiting notifications, reply-to-continue, the web terminal — without ever holding a tool call. IM messages carry a label · prefix (the session's directory) but no longer mark wrapped vs. hooks-only visually — the continue card's own "Reply to continue" line makes the distinction moot for what you actually do.

What's in the box

  • Posture — off / notify (default) / full / all. One coarse switch that sits above every fine toggle, in escalation order (how much tlive intercepts). off makes every hook a no-op (kill switch — no gating, notifications, monitoring, or daemon autostart). notify (default) watches and notifies but the shim can never hold or block an approval — every prompt stays 100% native (your local terminal dialog, or CC's own auto-deny when headless); when a prompt is waiting at the terminal it reports to the machine — desktop toast + read-only dashboard card, since only whoever is sitting there can act on it. IM stays quiet about these (a phone can't reach a terminal), except once ever per chat: the first time, a card explains why and offers the one-tap switch to full. The desktop toast has no on/off switch of its own — use your OS's Do Not Disturb to silence it temporarily, or tlive mode off to stop tlive entirely. full turns on remote approval for the main session — the posture that puts approvals on your phone: tlive holds each tool call so you can answer it from IM / desktop / dashboard (everything the Approvals bullet below describes), in parallel with the terminal dialog — first answer wins. Sub-agent prompts still pass through to the terminal. all holds sub-agent approvals too — the trade is that a held sub-agent has no terminal dialog until the window ends, because Claude Code awaits the hook before deciding whether to build one; use it only when nobody is at the keyboard, and tlive mode full goes back. Flip postures live with tlive mode off|notify|full|all (or /mode from IM — a bare /mode replies with a card listing the ladder and marking the current rung); the shim re-reads config on the next hook, so no restart or new session is needed, and tlive status shows the effective mode. Remote approval is opt-in by design — a freshly-installed tool must never be able to silently hang a workflow.
  • Approvals (remote approval — mode: full or all) — a tool call that needs approval is held so you can answer it from IM buttons or the web card:
    • Parallel, first-answer-wins — on Claude Code the PermissionRequest hook fires alongside the local p
View source on GitHub