{"id":"agent-monitor","repo":"omercnet/paseo-plugins","url":"https://github.com/omercnet/paseo-plugins/tree/main/agent-monitor","package":"@omercnet/paseo-agent-monitor","npm":{"package":"@omercnet/paseo-agent-monitor","version":"3.0.0","integrity":"sha512-qF3X4vQAf0rF0jM3fqcCptzdW0wWOBggZxxr4f7he8O+y7D84iY0xj6IzuL5i4evpVe+LPOza9gvYTUUc0QyPQ==","publishedAt":"2026-10-19T13:03:27.330Z","downloadsLast30Days":7256},"name":"agent-monitor","description":"A Paseo plugin that provides a host-wide agent triage roster.","categories":["monitoring","productivity"],"platforms":["macos","linux","windows"],"caveats":["Requires Paseo 0.8.x"],"images":["https://raw.githubusercontent.com/omercnet/paseo-plugins/main/agent-monitor/docs/images/agent-monitor-roster.png","https://raw.githubusercontent.com/omercnet/paseo-plugins/main/agent-monitor/docs/images/agent-monitor-settings.png"],"themes":[],"health":{"manifestValid":true,"hasReadme":true,"hasLicense":true,"hasTests":true,"hasTypecheckScript":true,"updatedRecently":true},"scannedAt":"2026-10-23T13:11:40.325Z","addedAt":"2026-09-08T17:06:34+03:00","npmSecurity":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-19T14:36:34.510Z","version":"3.0.0","integrity":"sha512-qF3X4vQAf0rF0jM3fqcCptzdW0wWOBggZxxr4f7he8O+y7D84iY0xj6IzuL5i4evpVe+LPOza9gvYTUUc0QyPQ=="},"path":"agent-monitor","version":"3.0.0","security":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-19T14:36:34.510Z","commit":"01ba4209e099c0f27a5b85ca6a911def76bc0b2a"},"npmPreview":{"package":"@omercnet/paseo-agent-monitor","version":"3.0.0-next.278.2","integrity":"sha512-VaElWZ90USx1S4rA4hi9SYPHSRqbCPfu6wlrskfZ9fx0YR/uIL94NIN9bmF+MmwS94zHMAwiCxl33L1N6XSg/g==","publishedAt":"2026-10-20T12:40:51.360Z","distTag":"next"},"npmPreviewSecurity":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-20T14:48:06.627Z","version":"3.0.0-next.278.2","integrity":"sha512-VaElWZ90USx1S4rA4hi9SYPHSRqbCPfu6wlrskfZ9fx0YR/uIL94NIN9bmF+MmwS94zHMAwiCxl33L1N6XSg/g=="},"author":"Omer Cohen","license":"MIT","paseoVersionRequirement":"^0.12.0","descriptionNodes":[{"type":"text","text":"A Paseo plugin that provides a host-wide agent triage roster."}],"caveatNodes":[[{"type":"text","text":"Requires Paseo 0.8.x"}]],"manifest":{"id":"agent-monitor","description":"A Paseo plugin that provides a host-wide agent triage roster.","requirements":{"paseo":"^0.12.0"}},"repoMeta":{"stars":24,"defaultBranch":"main","pushedAt":"2026-10-23T13:10:15Z"},"owner":{"login":"omercnet","avatarUrl":"https://avatars.githubusercontent.com/u/639682?v=4"},"installNotesHtml":"<p>Requires Paseo <code>^0.12.0</code>, whose background workspaces the monitor lists. Development uses the 0.12 SDK line from the workspace catalog.</p>\n<p>Install the published package on the daemon host:</p>\n<pre><code class=\"language-bash\">paseo plugin install npm:@omercnet/paseo-agent-monitor\npaseo plugin update agent-monitor\n</code></pre>","readmeText":"# agent-monitor\n\nOne roster for every agent on a daemon: an `Agent monitor` screen in the sidebar plus a global\nCommand Center item (`Open agent monitor`). The sidebar row also counts the agents\nthat need attention.\n\nAnswers \"which of my 38 agents needs me right now\" without walking the workspace tree.\n\n## Demo\n\nhttps://github.com/user-attachments/assets/3c841799-ed98-4ec4-86a0-a7917e3894fc\n\n## Screenshots\n\nAgent, project, and workspace names come from an isolated synthetic workspace. Both PNGs were\ncaptured at 2× pixel density after browser DevTools replaced the local host label and verified that\nno private organization names remained in the rendered page.\n\n### Project-first roster\n\n![Agent Monitor project-first roster](https://raw.githubusercontent.com/omercnet/paseo-plugins/main/agent-monitor/docs/images/agent-monitor-roster.png)\n\n### Monitor settings\n\n![Agent Monitor settings sheet](https://raw.githubusercontent.com/omercnet/paseo-plugins/main/agent-monitor/docs/images/agent-monitor-settings.png)\n\n## What it shows\n\n- Counts and filters by triage bucket: Attention, Running, Idle, Closed. Attention covers\n  `requiresAttention`, `status === \"error\"`, and pending permission requests.\n- Default layout groups agents by **project**, then by workspace under each project. Open the\n  gear beside Refresh for the host-native Monitor settings screen, which can switch to workspace\n  groups or a flat compact list.\n- Settings also control float-pinned sorting, agent sort (triage / recently updated / title),\n  collapse of matching workspace headers, density, default bucket, whether Closed stays out of\n  All, and display toggles for diffs, pin markers, model, wait age, subagent counts, last error, and\n  compact placement. Preferences are a typed, host-scoped document shared by connected clients.\n- Workspace headers show up to two workspace labels and current `+additions −deletions`\n  (additions in the success color, deletions in danger when color diffs are on).\n- Per row: a status dot that separates errors (danger) from agents waiting on you (warning) and\n  running agents (success), state and wait age on a right-aligned rail (`attentionTimestamp`,\n  falling back to `updatedAt`), model, and `lastError` inline.\n- Parent rows show their subagent count; child rows use a left indent guide.\n- Text filter over title, agent id, provider, model, cwd, project, and workspace.\n- Select an agent row to open that agent, or select a workspace header (or its folder button when\n  collapsed) to open its workspace through Paseo's cross-platform navigation API.\n- Archive one agent, or sweep every closed agent (two taps).\n\n## Sidebar row\n\n- The row's badge counts the Attention bucket, using the same rule as the roster. It shows no\n  number while the roster loads or after a refresh fails, and `N+` once the agent list reaches the\n  2,000-agent page limit.\n- Press the badge for a popover of those agents, longest waiting first (up to eight), with\n  **Open monitor**, which opens the roster filtered to Attention.\n- The monitor screen accepts a `bucket` param (`attention`, `running`, `idle`, `closed`, or `all`)\n  as its initial filter, so a link such as `…/surface/monitor?param.bucket=attention` opens\n  filtered and keeps that filter on reload. Chips then filter in place without changing the URL.\n\n## How it reads state\n\n`usePaseo().agents.list()` pages the daemon agent directory, `usePaseo().workspaces.list()` reads\nworkspace pin state, project id, and diff stats (200 per page, up to 10 pages each), and\n`usePaseo().projects.list()` supplies registered project names, including custom renames, so an\nagent whose workspace is beyond the paged workspace list still lands under its real project. Rows\nrefresh from agent, workspace, and project subscription deltas, debounced 750ms, with a 30s\nbackstop refetch. The screen, the sidebar row, and its popover share that query, subscription set,\nand backstop; on web and desktop, refreshes pause while the window is hidden and catch up when it returns. The plugin\nborrows the selected host's connection; it opens no socket of its own. Agents and workspaces in\nbackground workspaces are included.\n\n## Limits\n\nInterrupting a turn is not part of `PaseoApi`, so archive is the only lifecycle action here.\n\nThe sidebar popover lists agents but cannot open them: Paseo 0.12 gives popovers no navigation.\nOpen the monitor and select the agent there.\n\n## Install\n\nRequires Paseo `^0.12.0`, whose background workspaces the monitor lists. Development uses the 0.12 SDK line from the workspace catalog.\n\nInstall the published package on the daemon host:\n\n```bash\npaseo plugin install npm:@omercnet/paseo-agent-monitor\npaseo plugin update agent-monitor\n```\n\n## Develop\n\n```bash\nbun install\nbun run check\nbun run test\nbun run test:coverage\nbun run typecheck\n```\n\nRelease Please maintains the version, changelog, component tag, and GitHub release from\nConventional Commits in the monorepo.\n\nThe project supports Paseo `^0.12.0` and pins `@getpaseo/plugin`, `@getpaseo/client`,\n`@getpaseo/protocol`, and `@getpaseo/cli` to the 0.12 SDK line through the workspace catalog. Renovate groups `@getpaseo/*`\nupdates so the SDKs move together.\n\nReact `19.1` and React Native `0.81` intentionally match the versions supplied by Paseo.\n"}