Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$schema": "https://www.schemastore.org/claude-code-marketplace.json",
"name": "webcmd",
"description": "Turn websites, browser sessions, desktop apps, and local tools into deterministic CLI surfaces for humans and AI agents.",
"owner": {
"name": "AgentRHQ",
"url": "https://github.com/agentrhq"
},
"plugins": [
{
"name": "webcmd",
"description": "Webcmd CLI, browser, search, authoring, sitemap, and repair skills. Requires the @agentrhq/webcmd npm CLI.",
"source": "./",
"category": "productivity"
}
]
}
18 changes: 18 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "webcmd",
"version": "0.6.0",
"description": "Turn websites, browser sessions, desktop apps, and local tools into deterministic CLI surfaces for humans and AI agents.",
"author": {
"name": "AgentRHQ",
"url": "https://github.com/agentrhq"
},
"homepage": "https://webcmd.dev/docs",
"repository": "https://github.com/agentrhq/webcmd",
"license": "Apache-2.0",
"keywords": [
"webcmd",
"browser-automation",
"cli",
"agent-skills"
]
}
16 changes: 14 additions & 2 deletions docs/agents/claude-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,18 @@ Fetch and follow https://raw.githubusercontent.com/agentrhq/webcmd/main/start.md
* Claude Code (`claude`), installed globally or in the project
* A browser runtime; confirm with `webcmd doctor` before browser work

### Install and configure
### Install the plugin

```bash
claude plugin marketplace add agentrhq/webcmd
claude plugin install webcmd@webcmd
```

This installs all seven bundled Webcmd skills. Do not also add those skills with `webcmd skills add`; running both leaves two copies that can sit at different versions.

Plugin updates are version-gated, not commit-gated. Run `claude plugin update webcmd@webcmd` to pick up a new release; it is separate from `webcmd update`, which upgrades only the npm CLI.

### Install and configure without the plugin

Install Webcmd and its skills:

Expand Down Expand Up @@ -57,7 +68,8 @@ Denying these tools does not affect the Bash tool, which is how `webcmd` is driv
| Symptom | What to try |
| --- | --- |
| `webcmd doctor` is red | Fix the browser runtime first; browser commands depend on it. |
| Skills not loading in Claude Code | Run `webcmd skills add` with the `claude` provider, then restart `claude`. |
| Skills not loading in Claude Code | Run `webcmd skills add` with the `claude` provider, then restart `claude`. With the plugin, run `claude plugin install webcmd@webcmd` and restart. |
| Skill text looks out of date | `webcmd update` upgrades only the CLI. Run `claude plugin update webcmd@webcmd` to refresh plugin skills. |
| Claude Code still uses `WebFetch` / `WebSearch` | Confirm `permissions.deny` lists both in the active settings file, then restart `claude`. |
| `claude` requires permission prompts for `webcmd` | The Bash tool still asks before non-approved commands; run `claude --dangerously-skip-permissions` or allow the shell command if you accept the risk. |
| Browser sessions stop working after idle | Ask the agent to open a fresh session or re-bind with `tabs` and `bind --page`. |
Expand Down
10 changes: 10 additions & 0 deletions docs/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,16 @@ the npm CLI automatically if `webcmd` is missing.
The plugin includes all seven bundled Webcmd skills. Do not also add those
skills with `webcmd skills add` in Codex.

## Install the Claude Code Plugin

```bash
claude plugin marketplace add agentrhq/webcmd
claude plugin install webcmd@webcmd
```

This installs all seven bundled Webcmd skills. Do not also add those skills
with `webcmd skills add` in Claude Code.

## Other Agents or Plugin-Free Setup

Webcmd requires Node.js 20.6+ and a place where your agent harness can run its
Expand Down
5 changes: 5 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@
"type": "json",
"path": ".codex-plugin/plugin.json",
"jsonpath": "$.version"
},
{
"type": "json",
"path": ".claude-plugin/plugin.json",
"jsonpath": "$.version"
}
]
}
Expand Down
16 changes: 15 additions & 1 deletion scripts/check-codex-plugin.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ const packageJson = readJson('package.json');
const manifest = readJson('.codex-plugin/plugin.json');
const marketplace = readJson('.agents/plugins/marketplace.json');
const marketplacePlugin = marketplace.plugins?.[0];
const claudeManifest = readJson('.claude-plugin/plugin.json');
const claudeMarketplace = readJson('.claude-plugin/marketplace.json');
const claudeMarketplacePlugin = claudeMarketplace.plugins?.[0];

assert.equal(manifest.name, 'webcmd');
assert.equal(manifest.version, packageJson.version);
Expand All @@ -27,6 +30,15 @@ assert.deepEqual(marketplacePlugin?.source, {
url: './',
});

assert.equal(claudeManifest.name, 'webcmd');
assert.equal(claudeManifest.version, packageJson.version);
assert.equal(claudeManifest.author?.name, 'AgentRHQ');
assert.equal(claudeMarketplace.name, 'webcmd');
assert.equal(claudeMarketplace.owner?.name, 'AgentRHQ');
assert.equal(claudeMarketplace.plugins?.length, 1);
assert.equal(claudeMarketplacePlugin?.name, 'webcmd');
assert.equal(claudeMarketplacePlugin?.source, './');

const expectedSkills = [
'smart-search',
'webcmd-adapter-author',
Expand Down Expand Up @@ -54,4 +66,6 @@ assert.match(usageSkill, /## CLI Preflight/);
assert.match(usageSkill, /webcmd --version/);
assert.match(usageSkill, /npm install -g @agentrhq\/webcmd/);

console.log(`Codex plugin metadata valid: ${actualSkills.length} skills`);
console.log(
`Codex and Claude Code plugin metadata valid: ${actualSkills.length} skills`,
);