You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Install the agent-desktop skills from a Claude Code and Codex plugin marketplace
#509
As an agent running in Claude Code or Codex, I want the agent-desktop skills managed through my harness's own plugin manager, so the person who set me up installs, updates, and removes them with that harness's commands instead of npx skills add or a snippet pasted into AGENTS.md.
Both harnesses now read a plugin catalog straight from a GitHub repository: claude plugin marketplace add vercel-labs/agent-desktop and codex plugin marketplace add vercel-labs/agent-desktop. This repository has no catalog file, so both commands have nothing to read. I searched issues, pull requests, and Discussions for marketplace, plugin, and codex and found no earlier request.
Proposed solution
Add one file, .claude-plugin/marketplace.json, at the repository root. It lists a single plugin, agent-desktop, whose source is the repository root and whose skills are the four existing directories under skills/. Nothing in skills/ is copied or moved, so the skills the binary embeds and the skills the plugin installs come from the same files.
{
"name": "agent-desktop",
"description": "Skills for operating desktop apps with the agent-desktop CLI",
"owner": { "name": "Vercel Labs" },
"plugins": [
{
"name": "agent-desktop",
"description": "Operate desktop apps through native accessibility trees with the agent-desktop CLI",
"source": "./",
"strict": false,
"skills": [
"./skills/agent-desktop",
"./skills/agent-desktop-macos",
"./skills/agent-desktop-windows",
"./skills/agent-desktop-linux"
]
}
]
}
When a marketplace entry's source is the marketplace root and it lists skills, Claude Code loads only those directories, so jev-desktop and agent-desktop-ffi stay out. Codex reads .claude-plugin/marketplace.json as a compatible catalog, so the same file serves both harnesses.
The pull request would also add the install commands next to npx skills add in the README's "For AI agents" section and in apps/docs/content/docs/skills.mdx:
claude plugin marketplace add vercel-labs/agent-desktop
claude plugin install agent-desktop@agent-desktop
codex plugin marketplace add vercel-labs/agent-desktop
codex plugin add agent-desktop@agent-desktop
The plugin installs skills only. Users still install the CLI through npm, Homebrew, or Scoop, and the skills' requirements frontmatter already names it.
What I checked
I ran this file against a copy of skills/ with Claude Code 2.1.317 and Codex CLI 0.163.0, each under a throwaway config home:
claude plugin validate passes. Its one warning, a missing marketplace description, is fixed in the file above.
Claude Code adds the marketplace, installs agent-desktop@agent-desktop, and claude plugin details agent-desktop lists exactly the four skills, at about 611 always-on tokens per session.
Codex adds the marketplace from the same file and installs agent-desktop@agent-desktop. Its plugin cache holds all six skill directories, because it copies the whole source root. I have not confirmed whether a Codex session loads only the four listed skills.
Open questions for maintainers
Version skew. The marketplace tracks the default branch, while users run a released binary, so the installed skills can describe behavior that has not shipped. npx skills add from main has the same gap, and the docs already point to agent-desktop skills get as the version-matched source. Is that acceptable, or should the catalog follow release tags, or should the plugin ship a short skill that tells the agent to run agent-desktop skills get desktop and agent-desktop skills get platform?
Root source size. With "source": "./", Claude Code clones the repository and Codex copies the root into its plugin cache, including crates/, probes/, and apps/. A dedicated plugin directory avoids that, but it needs copied skills or symlinks, and this repository's .claude symlink already checks out as a plain file on Windows.
Codex catalog. Keep the single compatible file, or add a native .agents/plugins/marketplace.json with Codex's policy and category fields? .agents/ currently holds only the contributor skills.
Naming. The marketplace and plugin are both named agent-desktop, which makes the install id agent-desktop@agent-desktop. A marketplace name such as vercel-labs would read better if more plugins join later.
Fit. ClawHub publishing was removed in c34d1b25, and the eve extension in feat(eve): add @agent-desktop/eve extension #404 moved to its own repository. If a marketplace catalog belongs outside this repository too, I'd like to know before opening a pull request.
Target platform(s)
All platforms. The catalog has no platform code. Each platform skill applies only on its own OS.
Adding an install channel is a maintainer decision, so I'm raising it here as a request. If you want a pull request with the catalog file and the doc changes, I can follow up with one.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Problem / use case
As an agent running in Claude Code or Codex, I want the agent-desktop skills managed through my harness's own plugin manager, so the person who set me up installs, updates, and removes them with that harness's commands instead of
npx skills addor a snippet pasted intoAGENTS.md.Both harnesses now read a plugin catalog straight from a GitHub repository:
claude plugin marketplace add vercel-labs/agent-desktopandcodex plugin marketplace add vercel-labs/agent-desktop. This repository has no catalog file, so both commands have nothing to read. I searched issues, pull requests, and Discussions formarketplace,plugin, andcodexand found no earlier request.Proposed solution
Add one file,
.claude-plugin/marketplace.json, at the repository root. It lists a single plugin,agent-desktop, whose source is the repository root and whose skills are the four existing directories underskills/. Nothing inskills/is copied or moved, so the skills the binary embeds and the skills the plugin installs come from the same files.{ "name": "agent-desktop", "description": "Skills for operating desktop apps with the agent-desktop CLI", "owner": { "name": "Vercel Labs" }, "plugins": [ { "name": "agent-desktop", "description": "Operate desktop apps through native accessibility trees with the agent-desktop CLI", "source": "./", "strict": false, "skills": [ "./skills/agent-desktop", "./skills/agent-desktop-macos", "./skills/agent-desktop-windows", "./skills/agent-desktop-linux" ] } ] }When a marketplace entry's source is the marketplace root and it lists
skills, Claude Code loads only those directories, sojev-desktopandagent-desktop-ffistay out. Codex reads.claude-plugin/marketplace.jsonas a compatible catalog, so the same file serves both harnesses.The pull request would also add the install commands next to
npx skills addin the README's "For AI agents" section and inapps/docs/content/docs/skills.mdx:The plugin installs skills only. Users still install the CLI through npm, Homebrew, or Scoop, and the skills'
requirementsfrontmatter already names it.What I checked
I ran this file against a copy of
skills/with Claude Code 2.1.317 and Codex CLI 0.163.0, each under a throwaway config home:claude plugin validatepasses. Its one warning, a missing marketplacedescription, is fixed in the file above.agent-desktop@agent-desktop, andclaude plugin details agent-desktoplists exactly the four skills, at about 611 always-on tokens per session.agent-desktop@agent-desktop. Its plugin cache holds all six skill directories, because it copies the whole source root. I have not confirmed whether a Codex session loads only the four listed skills.Open questions for maintainers
npx skills addfrommainhas the same gap, and the docs already point toagent-desktop skills getas the version-matched source. Is that acceptable, or should the catalog follow release tags, or should the plugin ship a short skill that tells the agent to runagent-desktop skills get desktopandagent-desktop skills get platform?"source": "./", Claude Code clones the repository and Codex copies the root into its plugin cache, includingcrates/,probes/, andapps/. A dedicated plugin directory avoids that, but it needs copied skills or symlinks, and this repository's.claudesymlink already checks out as a plain file on Windows..agents/plugins/marketplace.jsonwith Codex'spolicyandcategoryfields?.agents/currently holds only the contributor skills.agent-desktop, which makes the install idagent-desktop@agent-desktop. A marketplace name such asvercel-labswould read better if more plugins join later.c34d1b25, and the eve extension in feat(eve): add @agent-desktop/eve extension #404 moved to its own repository. If a marketplace catalog belongs outside this repository too, I'd like to know before opening a pull request.Target platform(s)
All platforms. The catalog has no platform code. Each platform skill applies only on its own OS.
Adding an install channel is a maintainer decision, so I'm raising it here as a request. If you want a pull request with the catalog file and the doc changes, I can follow up with one.
All reactions