tlive
y49 · y49/tlive
Cung cấp tính năng phê duyệt từ xa tự host và giám sát trực tiếp cho các agent Claude Code/Codex qua Telegram, Feishu hoặc terminal web, từ mọi thiết bị.
Phê duyệt từ xa tự host + giám sát trực tiếp cho Claude Code / Codex — qua Telegram, Feishu hoặc terminal web. Bất kỳ gói đăng ký hoặc API key nào.
Xem trước
Bạn có thể làm gì với nó
- Phê duyệt từ xa các hành động của agent từ điện thoại qua Telegram hoặc Feishu.
- Giám sát trực tiếp các phiên chạy của agent Claude Code hoặc Codex từ bất kỳ thiết bị nào.
- Tiếp quản trực tiếp việc gõ lệnh của agent từ một thiết bị đầu cuối web để kiểm soát chi tiết.
Kiểm tra an toàn
Dùng được, nhưng nên đọc ghi chú trước.
- ●Gói npm tự chạy script khi cài đặt.
package.json - ●Trình cài đặt tải script từ xa và chạy thẳng bằng shell.
README.md
Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.
Trích từ 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.
Your
claude/codexruns 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 lettlive setupoffer 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~/.tliveconfig forward — just runtlive setupfresh. The final SDK-bridge release is preserved at git tagv1.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).offmakes 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 tofull. The desktop toast has no on/off switch of its own — use your OS's Do Not Disturb to silence it temporarily, ortlive mode offto stop tlive entirely.fullturns 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.allholds 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, andtlive mode fullgoes back. Flip postures live withtlive mode off|notify|full|all(or/modefrom IM — a bare/modereplies 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, andtlive statusshows 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: fullorall) — 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
PermissionRequesthook fires alongside the local p
- Parallel, first-answer-wins — on Claude Code the