app-server README omits implemented plugin/share RPCs

Open 💬 2 comments Opened Jun 1, 2026 by bar-d

What happened?

The app-server README method list documents plugin endpoints up through plugin/skill/read, then jumps to skills/changed.

The current protocol and message processor also expose implemented plugin share endpoints:

  • plugin/share/save
  • plugin/share/updateTargets
  • plugin/share/list
  • plugin/share/checkout
  • plugin/share/delete

These do not appear in the README method list.

Expected behavior

The app-server README should document the implemented plugin/share/* RPCs, or clearly mark them as intentionally omitted if they are not intended for clients yet.

Additional context

I searched open issues and PRs for terms including plugin/share/save, plugin/share/updateTargets, plugin/share/list, and app-server README, and did not find an existing open item that appears to cover this documentation gap.

View original on GitHub ↗

2 Comments

kiankhooban · 2 months ago

I've implemented a fix for this in my fork: https://github.com/kiankhooban/codex/tree/fix/app-server-readme-docs — adds the five plugin/share/* RPCs (save, updateTargets, list, checkout, delete) to the API overview after plugin/skill/read. Happy to submit a PR if the repo opens contributions.

313743062-coder · 1 month ago

I confirmed this against the current generated protocol surface.

The TypeScript ClientRequest union includes the five implemented share RPCs:

  • plugin/share/save with PluginShareSaveParams
  • plugin/share/updateTargets with PluginShareUpdateTargetsParams
  • plugin/share/list with PluginShareListParams
  • plugin/share/checkout with PluginShareCheckoutParams
  • plugin/share/delete with PluginShareDeleteParams

The app-server README currently documents plugin/skill/read and then jumps straight to skills/changed, so adding short API overview bullets after plugin/skill/read would align the README with the schema without changing behavior.

A minimal README-only patch would be:

diff --git a/codex-rs/app-server/README.md b/codex-rs/app-server/README.md
@@
 - `plugin/read` — read one plugin by `marketplacePath` plus `pluginName`, returning marketplace info, a list-style `summary`, manifest descriptions/interface metadata, and bundled skills/hooks/apps/MCP server names. Remote plugin details expose the canonical `shareUrl` supplied by the remote catalog when available; it is `null` for local plugins or when the catalog omits it. This field is separate from `summary.shareContext`, which continues to describe user and workspace sharing state. Returned plugin skills include their current `enabled` state after local config filtering; bundled hooks are returned as lightweight declaration summaries keyed for correlation with `hooks/list`. Use `plugin/install`'s `appsNeedingAuth` to drive post-install authentication and `app/list`'s `isAccessible` to determine current connector accessibility (**under development; do not call from production clients yet**).
 - `plugin/skill/read` — read remote plugin skill markdown on demand by `remoteMarketplaceName`, `remotePluginId`, and `skillName`. This lets clients preview uninstalled remote plugin skills without downloading the plugin bundle.
+- `plugin/share/save` — save a local plugin to the remote plugin share catalog, optionally updating an existing `remotePluginId`, `discoverability`, and share targets (**under development; do not call from production clients yet**).
+- `plugin/share/updateTargets` — update discoverability and share targets for an existing remote shared plugin (**under development; do not call from production clients yet**).
+- `plugin/share/list` — list remote shared plugins available to the current account, including checkout metadata when present (**under development; do not call from production clients yet**).
+- `plugin/share/checkout` — check out a remote shared plugin into a local marketplace/cache and return the local plugin identity and paths (**under development; do not call from production clients yet**).
+- `plugin/share/delete` — delete an existing remote shared plugin by `remotePluginId` (**under development; do not call from production clients yet**).
 - `skills/changed` — notification emitted when watched local skill files change.

I saw the contributing guide says external PRs are invitation-only, so I am leaving this as analysis/a suggested patch rather than opening an unsolicited PR.