dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Local flight recorder and execution boundary for AI coding agents. It records every tool call, blocks the risky ones until you approve, and shows it all in a local cockpit. Works with Cursor, Claude Code and any MCP server.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A local flight recorder, execution boundary and cockpit for AI coding agents.
Sentinel is a single Go binary. It sits between an AI coding agent and your machine, records what the agent does, stops what looks dangerous until you say yes, and shows it all in a local web cockpit.
It works with the Cursor agent and Claude Code (through their hooks) and with any MCP server (as a stdio proxy). Everything runs on your machine, on 127.0.0.1: no cloud, no account.
A coding agent setting this up should follow AGENTS.md. It is the ordered procedure, with the checks that mean it is actually working.檢視完整 README ↗Gain instant visibility into what your AI coding agents and MCP tools are actually doing.
Inspect every shell command, file edit, API payload, latency bottleneck, and error — 100% locally with zero cloud dependencies.
Quickstart (30s) · Features · Capture Profiles · CLI Reference · Architecture · Roadmap
The Agent Sentinel cockpit: Interactive call timeline waterfall, concurrency tracks, and real-time evidence inspector.
Modern AI coding agents (like Cursor and Claude Code) and MCP (Model Context Protocol) servers execute shell commands, patch local files, run background tasks, and query tools autonomously.
Until now, understanding their actions meant squinting at fragmented terminal logs or trusting opaque status bars. When a tool fails, loops, or takes 15 seconds, you are left wondering: What exact arguments were passed? Why did it hang? What diff was generated?
Agent Sentinel solves this by acting as a passive, non-intrusive flight recorder:
Navigate agent tool activity with proportional interval bars, concurrency indicators, and status tags (Ok, Error, Open, Interrupted). Filter by specific tools (shell, read_file, edit_file, MCP methods), text search inside arguments, and sort by duration or payload size.
Click any call in the timeline to open the evidence panel. Inspect exact input arguments, output results, payload sizes, capture transformations, and the step-by-step timing journey. Copy normalized JSON payloads with one click.
Track agent usage across time, projects, and agent types. View UTC daily activity trends, compare call volume against previous periods, and identify latency regressions with nearest-rank p50 and p95 duration percentiles.
Quickly see where time and errors concentrate. Sentinel highlights your top completed calls by duration, largest retained responses, and cumulative tool execution time.
Built for developer speed. Press Cmd + K (or Ctrl + K) to open the command palette, navigate calls with vim-style J / K, press ? for the shortcut sheet, and use Esc to dismiss inspectors.
Replay past recordings offline directly from local JSONL files without re-executing any captured commands. Drill down into individual native agent sessions and connection scopes.
Need to share a bug report or review an agent session with a teammate? Export the entire session into a standalone, script-free, zero-dependency HTML report with a single click.
Let Sentinel set up the binary, background collector, agent hooks, and self-test automatically:
curl -fsSL https://raw.githubusercontent.com/zaninifrancesco/agent-sentinel/main/install.sh | bash
Or run directly from a local clone:
./install.sh --agent all
You can ask your AI coding agent (Claude Code, Cursor, Codex) to configure Sentinel directly:
Claude Code Plugin: Agent Sentinel includes native .claude-plugin/plugin.json and hooks.
Install or point Claude Code to the repository:
claude --plugin-dir /path/to/agent-sentinel
Agent Skill (Cursor / Claude / Codex): Install the official skill into your global agent skills directory:
make install-skill
Then simply tell your agent in chat:
"Set up Agent Sentinel for this project"
The agent will download/verify the binary, launch the background collector, configure hooks in .cursor/ or .claude/, run the synthetic self-test, and return your Cockpit link!
Prerequisites: Go 1.27+ and Node.js 20.19+ / 22.12+.
# Clone and build the binary with embedded web cockpit
git clone https://github.com/zaninifrancesco/agent-sentinel.git
cd agent-sentinel
make install
make install builds the embedded UI and installs the binary to ~/.sentinel/bin/sentinel. Verify the installation:
~/.sentinel/bin/sentinel version
~/.sentinel/bin/sentinel serve --mode observe
The collector starts in observation mode and listens at http://127.0.0.1:8848. Verify its configuration:
curl -sf http://127.0.0.1:8848/api/config
# => {"mode":"observe","policy":"off","approvals":false,"budgetEditable":false}
~/.sentinel/bin/sentinel hook install --dir /path/to/project
Injects passive hooks into .cursor/hooks.json while preserving all existing hooks and custom configurations.
~/.sentinel/bin/sentinel hook install --agent claude --dir /path/to/project
Injects passive hooks into .claude/settings.local.json. Restart Claude Code to load the hooks.
(Optional: Add --mcp to record agent MCP tool hooks, or --user to configure globally across all projects).
You can also record any MCP server directly via stdio proxying:
~/.sentinel/bin/sentinel mcp --ui -- /path/to/mcp-server arg1 arg2
Traffic is forwarded transparently while protocol frames and execution intervals are mirrored to the cockpit.
Open your browser to: 👉 http://127.0.0.1:8848
Or inspect any existing recording file:
~/.sentinel/bin/sentinel ui ~/.sentinel/sessions/<session-id>.jsonl
Sentinel provides configurable capture profiles to balance diagnostic depth against disk and memory usage:
| Profile | Sensitive Data Redaction | Max Stored Payload | Ideal For |
|---|---|---|---|
standard (default) | ✅ Best-effort regex & field redaction of tokens/secrets | 64 KiB per payload | Daily development, shared machines, safe traces |
full | ❌ Retains raw payload without redaction | 1 MiB per payload (configurable) | Deep debugging, protocol troubleshooting, local testing |
Configure your profile when starting the collector:
# Standard profile with custom 32 KiB cap
~/.sentinel/bin/sentinel serve --capture standard --max-payload-bytes 32768
# Full capture for deep MCP debugging
~/.sentinel/bin/sentinel mcp --capture full --ui -- /path/to/mcp-server
Usage:
sentinel serve [--mode observe] [--port N] [--log FILE|-] [--open]
Record Cursor / Claude Code hooks in the local cockpit
sentinel hook install [--agent cursor|claude] [--dir PATH] [--mcp] [--user] [--dry-run]
Install passive hooks, preserving existing entries
sentinel hook uninstall [--agent cursor|claude] [--dir PATH] [--user]
Remove only Sentinel hooks
sentinel hook [--mode observe] [--timeout 1s] [--url URL]
Deliver hook JSON from stdin; returns neutral response even if offline
sentinel mcp [--mode observe] [--ui] [--port N] [--log FILE|-] -- <server-cmd> [args]
Forward MCP stdio unchanged and record protocol frames
sentinel ui [--port N] [--open] [FILE]
Inspect a recorded JSONL session (defaults to latest recording)
sentinel version
Print current version
sentinel help
Show full help message
┌──────────────────────────────────────────────┐
│ AI Coding Agent / Workspace │
│ (Cursor / Claude Code) │
└──────────────────────┬───────────────────────┘
│ Passive Hooks (stdin/stdout)
│ Bounded timeout (1s default)
▼
┌──────────────────────────────────────────────┐
│ Agent Sentinel (Local Go Binary) │
│ │
│ ┌────────────────────┐ ┌──────────────────┐ │
│ │ Hook Receiver │ │ MCP Stdio Proxy │ │
│ └─────────┬──────────┘ └────────┬─────────┘ │
│ │ │ │
│ ▼ ▼ │
│ [Normalizer & Sensitive Redaction Engine] │
│ │ │
│ ┌─────────────────────┴──────────────────┐ │
│ │ Local JSONL Stream & History Store │ │
│ │ (~/.sentinel/sessions) │ │
│ └─────────────────────┬──────────────────┘ │
│ │ │
│ ┌─────────────────────▼──────────────────┐ │
│ │ Embedded Web Cockpit (React+Tailwind) │ │
│ │ Timeline · Inspector · Analytics │ │
│ └────────────────────────────────────────┘ │
└──────────────────────────────────────────────┘
{} or {"permission":"allow"} so work never stalls.~/.sentinel/sessions/*.jsonl. Sentinel never makes outbound network calls.The current release is an observation profiler. Command policies, approval holds, and spending limits have been removed.
--policy, --max-cost, --approval-timeout, and --offline are rejected with migration guidance.sentinel hook install --dir <path> to update hooks to observation mode.sentinel hook uninstall --dir /path/to/project
sentinel hook uninstall --agent claude --dir /path/to/project
# Run all tests: Go vet, race detection, frontend typecheck, and telemetry tests
make test
# Typecheck and build embedded frontend only
cd web
npm run build
Follow AGENTS.md for the setup verification playbook.
MIT © Francesco Zanini.