yoagent 0.25.12

The agent loop for Rust: stream from 7 LLM protocols, run tools, loop until done. Native or wasm32 (Cloudflare Workers).
Documentation
# Plugin compatibility

How the most-downloaded third-party plugins of two agent ecosystems load in
a yoagent agent, unchanged, through yoagent-rutis's adapters. Generated by
`scripts/ecosystem-matrix.mjs` on 2026-10-16; raw results in
[`plugin-compatibility.json`](plugin-compatibility.json).

**What was checked.** Each package is installed on its own from npm and
loaded the way an agent would load it; the probe lists what a run would be
offered. Nothing is called: tools are listed, not run, and no model is
asked. So "works" means it loads and yoagent gets what is listed, not that
every tool was exercised.

**In short.**
- **pi:** 12 of 20 give an agent run tools, tool-call or input hooks, or prompt additions (3 fully). 5 are refused because they hook what yoagent cannot enforce, or their startup needs pi app internals; 3 register nothing usable as installed. Their skills: all 118 (in 7 packages) load with yoagent's skills loader.
- **DSH:** 3 of 20 give an agent tools or prompt guidance, with DSH's own host services loaded (files, attachments, credentials, storage, session persistence, skills: `plugins/dsh/host-services.json`). 12 need DSH's own app (its web server, model layer, agents, settings, …); 4 add nothing an agent uses (UI or settings). 1 fails to load or install (the table says why). DSH's popular plugins mostly extend the DSH app rather than add agent tools.

**Results.**
- **works**: loads; everything it registers maps to yoagent.
- **works, partly**: loads; some of what it registers is an app feature
  yoagent's agent loop has no place for (commands, shortcuts, renderers, a
  DSH web UI, …), listed as *ignored*. Its tools, policies and prompt
  additions work.
- *checked each run*: `message_end` / `context` handlers get copies on
  every run; reading is fine, a change stops the adapter (yoagent cannot
  apply it). The probe sends a single one-message turn, so a handler that
  rewrites only longer conversations shows up as a stopped run later.
- **refused**: the adapter declined to load it — it handles an event
  yoagent never fires that would decide what the agent does, or its startup
  (`session_start`) failed, typically reaching for pi app internals such
  as its model registry. Failing closed is the intended outcome.
- **nothing to use**: loads, but offers a run no tools, hooks or prompt
  additions — everything it registers is ignored here, or, as installed, it
  registers nothing (several only do once given keys or a config file).
- **needs a DSH host**: it waits for services of DSH's own app (sessions,
  its web server, its model layer, …) or loads DSH app plugins that an
  agent library does not run.
- **not applicable**: nothing for an agent: themes, prompt templates, UI.
- **failed** / **not installed**: an error loading or installing it — or
  of this harness (a check that did not report), with the reason. Never a
  verdict on the package.

## pi packages

The 20 most-downloaded packages (by monthly downloads, among the first 1000 results of npm's search) with the `pi-package` keyword, through the pi adapter (pi 1.1.0), on 2026-10-16. 9 works, partly · 5 refused · 3 nothing to use · 3 works.

| # | Package | Downloads / month | Result | What yoagent gets |
|---|---|---:|---|---|
| 1 | [pi-mcp-adapter](https://www.npmjs.com/package/pi-mcp-adapter) 5.3.1 | 1,618,815 | works, partly | 1 tool, tool-call hooks, input hooks<br><sub>ignored: event "mcp_servers_change"; event "resources_discover"; event "session_tree"; command /mcp-adapter; command /mcp; command /mcp-auth; flag --mcp-config</sub> |
| 2 | [billion-context](https://www.npmjs.com/package/billion-context) 0.1.197 | 1,304,920 | refused | pi extensions handle events yoagent never fires, which would decide or rewrite what the agent does: pi-native.js: event "before_provider_headers"; pi-native.js: event "before_provider_request" (list an event in allowUnmapped to accept that it goes unenforced) |
| 3 | [pi-web-access](https://www.npmjs.com/package/pi-web-access) 0.41.0 | 762,066 | works, partly | 4 tools, tool-call hooks<br><sub>ignored: event "agent_settled"; event "session_tree"; command /websearch; command /curator; command /google-account; command /search; shortcut ctrl+shift+s; shortcut ctrl+shift+w</sub> |
| 4 | [pi-subagents](https://www.npmjs.com/package/pi-subagents) 0.78.0 | 608,963 | works, partly | 4 tools, tool-call hooks, input hooks, 2 skills<br><sub>ignored: event "session_tree"; event "turn_end"; event "model_select"; event "agent_end"; event "session_before_switch"; event "session_before_fork"; event "session_compact"; event "agent_start"; event "message_start"; event "agent_settled"; event "session_before_compact"; command /subagents-watchdog; comman</sub> |
| 5 | [pi-mcp-extension](https://www.npmjs.com/package/pi-mcp-extension) 1.5.1 | 327,285 | nothing to use | loads but registers nothing as installed (it may need configuration first) |
| 6 | [@langfuse/pi-observability-plugin](https://www.npmjs.com/package/@langfuse/pi-observability-plugin) 0.1.2 | 322,140 | nothing to use | loads but registers only session_start as installed (it may need configuration first) |
| 7 | [@juicesharp/rpiv-ask-user-question](https://www.npmjs.com/package/@juicesharp/rpiv-ask-user-question) 2.13.8 | 300,854 | works | 1 tool |
| 8 | [@juicesharp/rpiv-todo](https://www.npmjs.com/package/@juicesharp/rpiv-todo) 2.13.8 | 197,874 | works, partly | 1 tool<br><sub>ignored: event "session_compact"; event "session_tree"; event "tool_execution_end"; event "agent_start"; command /todos; shortcut ctrl+shift+t</sub> |
| 9 | [openwiki](https://www.npmjs.com/package/openwiki) 0.7.2 | 197,413 | works | 6 tools, 1 skill |
| 10 | [pi-goal-x](https://www.npmjs.com/package/pi-goal-x) 0.32.3 | 141,230 | refused | pi extensions handle events yoagent never fires, which would decide or rewrite what the agent does: goal.ts: event "before_provider_request" (list an event in allowUnmapped to accept that it goes unenforced) |
| 11 | [@plannotator/pi-extension](https://www.npmjs.com/package/@plannotator/pi-extension) 0.28.22 | 133,196 | works, partly | tool-call hooks<br><sub>ignored: event "turn_start"; event "turn_end"; event "message_start"; event "message_update"; event "tool_execution_start"; event "agent_end"; event "agent_settled"; event "resources_discover"; event "session_compact"; event "session_tree"; command /plannotator-plan-mode; command /plannotator-review; command</sub> |
| 12 | [@companion-ai/feynman](https://www.npmjs.com/package/@companion-ai/feynman) 0.5.47 | 119,524 | refused | pi extensions handle events yoagent never fires, which would decide or rewrite what the agent does: research-tools.ts: event "before_provider_request" (list an event in allowUnmapped to accept that it goes unenforced) Its 16 skills still load with yoagent's skills loader. |
| 13 | [bigpowers](https://www.npmjs.com/package/bigpowers) 2.88.9 | 115,055 | works | 1 tool, tool-call hooks, 81 skills |
| 14 | [pi-powerline-footer](https://www.npmjs.com/package/pi-powerline-footer) 0.20.1 | 104,616 | works, partly | tool-call hooks, input hooks, message_end checked each run (a rewrite would stop it)<br><sub>ignored: event "user_bash"; event "model_select"; event "thinking_level_select"; event "session_tree"; event "session_info_changed"; event "agent_start"; event "message_update"; event "message_start"; event "turn_end"; event "session_before_compact"; event "session_compact"; event "session_compact_failed"; e</sub> |
| 15 | [context-mode](https://www.npmjs.com/package/context-mode) 1.0.169 | 102,090 | works, partly | tool-call hooks, 8 skills, context checked each run (a rewrite would stop it)<br><sub>ignored: event "before_provider_response"; event "turn_end"; event "session_before_compact"; event "session_compact"; command /ctx-stats; command /ctx-doctor</sub> |
| 16 | [pi-lens](https://www.npmjs.com/package/pi-lens) 4.4.3 | 101,483 | works, partly | 8 tools, tool-call hooks, 4 skills, message_end and context checked each run (a rewrite would stop it)<br><sub>ignored: event "resources_discover"; event "session_tree"; event "tool_execution_end"; event "turn_start"; event "agent_end"; event "turn_end"; event "agent_settled"; command /lens-toggle; command /lens-context-toggle; command /lens-widget-toggle; command /lens-tdi; command /lens-map; command /lens-health; c</sub> |
| 17 | [@dietrichgebert/ponytail](https://www.npmjs.com/package/@dietrichgebert/ponytail) 5.3.1 | 101,019 | works, partly | input hooks, prompt additions, 6 skills<br><sub>ignored: event "session_tree"; event "session_switch"; event "session_branch"; event "agent_start"; event "agent_end"; command /ponytail; command /ponytail-review; command /ponytail-audit; command /ponytail-gain; command /ponytail-debt; command /ponytail-help</sub> |
| 18 | [pi-background-tasks](https://www.npmjs.com/package/pi-background-tasks) 2.6.10 | 97,554 | refused | its session_start failed, so the adapter did not load it: anthropic-attribution.js: Cannot read properties of undefined (reading 'getProvider') |
| 19 | [@langchain/langsmith-pi-extension](https://www.npmjs.com/package/@langchain/langsmith-pi-extension) 0.2.1 | 89,876 | nothing to use | loads; everything it registers is ignored here<br><sub>ignored: command /langsmith-tracing</sub> |
| 20 | [@narumitw/pi-usage](https://www.npmjs.com/package/@narumitw/pi-usage) 0.66.0 | 83,788 | refused | pi extensions handle events yoagent never fires, which would decide or rewrite what the agent does: index.ts: event "before_provider_request" (list an event in allowUnmapped to accept that it goes unenforced) |

## DSH plugins

The 20 most-downloaded packages (by monthly downloads, among the first 1000 results of npm's search) with the `dsh-plugin` keyword, over DSH's base packages and the tools adapter (DSH 0.2.0-rc.2), on 2026-10-16. 4 not applicable · 12 needs a DSH host · 3 works, partly · 1 failed.

| # | Package | Downloads / month | Result | What yoagent gets |
|---|---|---:|---|---|
| 1 | [dshmarket](https://www.npmjs.com/package/dshmarket) 1.66.28 | 596,609 | not applicable | starts, but adds no tools or guidance (UI, settings or server features). Its web UI needs DSH's web client. |
| 2 | [@michengai/dsh-skills-manager](https://www.npmjs.com/package/@michengai/dsh-skills-manager) 1.1.23 | 209,555 | needs a DSH host | waits for services yoagent's DSH runtime does not run: webServer, sessions. Its web UI needs DSH's web client. (installed without npm resolving its peers) |
| 3 | [@michengai/dsh-archive-manager](https://www.npmjs.com/package/@michengai/dsh-archive-manager) 1.0.20 | 186,731 | needs a DSH host | loads DSH packages an agent library does not ship: @deepseek-ai/dsh-spill. Its web UI needs DSH's web client. (installed without npm resolving its peers) |
| 4 | [dsh-whale-widget](https://www.npmjs.com/package/dsh-whale-widget) 0.4.2 | 186,009 | not applicable | starts, but adds no tools or guidance (UI, settings or server features). |
| 5 | [dsh-cost-meter](https://www.npmjs.com/package/dsh-cost-meter) 1.8.35 | 111,200 | not applicable | starts, but adds no tools or guidance (UI, settings or server features). Its web UI needs DSH's web client. |
| 6 | [dsh-plugin-model-proxy](https://www.npmjs.com/package/dsh-plugin-model-proxy) 0.1.6 | 104,994 | needs a DSH host | waits for services yoagent's DSH runtime does not run: settings, llm. Its web UI needs DSH's web client. |
| 7 | [@xmanrui/dsh-im](https://www.npmjs.com/package/@xmanrui/dsh-im) 4.39.0 | 63,448 | needs a DSH host | waits for services yoagent's DSH runtime does not run: connection, typertGateway. Its web UI needs DSH's web client. |
| 8 | [dsh-univer-office](https://www.npmjs.com/package/dsh-univer-office) 0.3.7 | 52,360 | works, partly | 14 tools<br><sub>ignored: its web UI (DSH's web client)</sub> |
| 9 | [@dfy-plugins/dsh-image-generation](https://www.npmjs.com/package/@dfy-plugins/dsh-image-generation) 0.1.4 | 52,343 | needs a DSH host | waits for services yoagent's DSH runtime does not run: settings. Its web UI needs DSH's web client. (installed without npm resolving its peers) |
| 10 | [@nanmicoder/dsh-agent-teams](https://www.npmjs.com/package/@nanmicoder/dsh-agent-teams) 0.1.23 | 51,849 | needs a DSH host | waits for services yoagent's DSH runtime does not run: llm, subagents, agents. Its web UI needs DSH's web client. |
| 11 | [dsh-plugin-wallpaper-engine](https://www.npmjs.com/package/dsh-plugin-wallpaper-engine) 1.3.3 | 49,597 | needs a DSH host | waits for services yoagent's DSH runtime does not run: webServer. Its web UI needs DSH's web client. (installed without its DSH peers (@deepseek-ai/dsh-client-runtime@0.2.0-rc.2, @deepseek-ai/dsh-host-webserver@0.2.0-rc.2, @deepseek-ai/dsh-client-ui-slots@0.2.0-rc.2)) |
| 12 | [dsh-mnemon](https://www.npmjs.com/package/dsh-mnemon) 0.5.29 | 47,552 | needs a DSH host | waits for services yoagent's DSH runtime does not run: loader. Its web UI needs DSH's web client. |
| 13 | [dsh-free-search](https://www.npmjs.com/package/dsh-free-search) 0.9.1 | 47,543 | works, partly | 9 tools, prompt guidance<br><sub>ignored: its web UI (DSH's web client)</sub> |
| 14 | [dsh-pet](https://www.npmjs.com/package/dsh-pet) 0.3.7 | 47,396 | needs a DSH host | waits for services yoagent's DSH runtime does not run: webServer, agentDefaultModel, llm, commands, connection. Its web UI needs DSH's web client. |
| 15 | [@liustack/modsearch](https://www.npmjs.com/package/@liustack/modsearch) 5.10.7 | 42,853 | failed | modsearch: failed plugin failed: TypeError: Cannot read properties of null (reading 'searchProvider') |
| 16 | [@dfy-plugins/dsh-bundle](https://www.npmjs.com/package/@dfy-plugins/dsh-bundle) 0.1.2 | 41,764 | needs a DSH host | waits for services yoagent's DSH runtime does not run: webServer, settings, workspaceRegistry, llm, agents, agentPresets. |
| 17 | [dsh-dream-skin](https://www.npmjs.com/package/dsh-dream-skin) 10.16.0 | 36,365 | needs a DSH host | waits for services yoagent's DSH runtime does not run: webServer, webRuntime. Its web UI needs DSH's web client. (installed without its DSH peers (@deepseek-ai/dsh-client-store@0.2.0-rc.2, @deepseek-ai/dsh-client-locale@0.2.0-rc.2, @deepseek-ai/dsh-client-runtime@0.2.0-rc.2, @deepseek-ai/dsh-client-ui-theme@0.2.0-rc.2, @deepseek-ai/dsh-client-ui-settings@0.2.0-rc.2, @deepseek-ai/dsh-client-ui-settings-general@0.2.0-rc.2)) |
| 18 | [@dfy-plugins/dsh-visualize](https://www.npmjs.com/package/@dfy-plugins/dsh-visualize) 0.1.5 | 30,311 | works, partly | 1 tool (installed without npm resolving its peers)<br><sub>ignored: its web UI (DSH's web client)</sub> |
| 19 | [@tt-a1i/archify-dsh](https://www.npmjs.com/package/@tt-a1i/archify-dsh) 1.0.0 | 30,098 | not applicable | starts, but adds no tools or guidance (UI, settings or server features). |
| 20 | [@iasiv5/dsh-obmc-web](https://www.npmjs.com/package/@iasiv5/dsh-obmc-web) 0.1.3 | 29,214 | needs a DSH host | waits for services yoagent's DSH runtime does not run: webServer, webRuntime. Its web UI needs DSH's web client. |