{"id":50682286,"url":"https://github.com/zeroclaw-labs/zeroclaw-plugins","last_synced_at":"2026-06-27T21:03:51.013Z","repository":{"id":363323925,"uuid":"1261597849","full_name":"zeroclaw-labs/zeroclaw-plugins","owner":"zeroclaw-labs","description":"Official plugin registry for ZeroClaw — zeroclaw plugin search/install","archived":false,"fork":false,"pushed_at":"2026-06-22T07:29:52.000Z","size":42,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-25T18:02:47.929Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeroclaw-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-06T22:52:42.000Z","updated_at":"2026-06-22T07:29:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zeroclaw-labs/zeroclaw-plugins","commit_stats":null,"previous_names":["zeroclaw-labs/zeroclaw-plugins"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zeroclaw-labs/zeroclaw-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeroclaw-labs%2Fzeroclaw-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeroclaw-labs%2Fzeroclaw-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeroclaw-labs%2Fzeroclaw-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeroclaw-labs%2Fzeroclaw-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeroclaw-labs","download_url":"https://codeload.github.com/zeroclaw-labs/zeroclaw-plugins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeroclaw-labs%2Fzeroclaw-plugins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34867644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-08T20:00:23.312Z","updated_at":"2026-06-27T21:03:50.982Z","avatar_url":"https://github.com/zeroclaw-labs.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# ZeroClaw Plugin Registry\n\nThe official catalog of [ZeroClaw](https://github.com/zeroclaw-labs/zeroclaw)\nWASM plugins — **self-contained WIT components** the agent can fetch and install\non demand. This is what `zeroclaw plugin search` and\n`zeroclaw plugin install \u003cname\u003e` read by default.\n\n```bash\nzeroclaw plugin search wikipedia\nzeroclaw plugin install wikipedia-summary\nzeroclaw plugin install wikipedia-summary@0.1.0    # pin a version\n```\n\n## What's in this repo\n\n```\nplugins/\u003cname\u003e/        # one wit-bindgen component per directory\n  Cargo.toml           # cdylib + wit-bindgen, standalone [workspace]\n  src/lib.rs           # implements the `tool-plugin` WIT world\n  manifest.toml        # name, version, capabilities, permissions, [[credentials]]\n  README.md\nwit/v0/                # vendored ZeroClaw plugin WIT contract (the ABI plugins build against)\nregistry.json          # GENERATED index — published by CI, do not hand-edit\ntools/build-registry.py\n.github/workflows/publish.yml\n```\n\nPlugins are **WebAssembly components** built for `wasm32-wasip2` against the WIT\nworld `tool-plugin` (`wit/v0/`). They run sandboxed and deny-by-default: the\nhost grants only the capabilities a plugin's `manifest.toml` declares.\n\n## How install works\n\n- [`registry.json`](./registry.json) is a single index, fetched from\n  `https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw-plugins/main/registry.json`.\n- Each entry's `url` points to a zipped plugin directory published as a\n  **GitHub Release asset** — binaries are never committed to git, only the small\n  text index.\n- On install the CLI downloads the zip, **verifies the `sha256`** (transport\n  integrity), then the host enforces the configured **Ed25519 `signature_mode`**\n  (authenticity).\n\n### Index format\n\n```json\n{\n  \"plugins\": [\n    {\n      \"name\": \"wikipedia-summary\",\n      \"version\": \"0.1.0\",\n      \"description\": \"Look up a short factual summary of a topic from Wikipedia\",\n      \"author\": \"ZeroClaw Labs\",\n      \"capabilities\": [\"tool\"],\n      \"url\": \"https://github.com/zeroclaw-labs/zeroclaw-plugins/releases/download/plugins/wikipedia-summary-0.1.0.zip\",\n      \"sha256\": \"\u003chex digest of the zip\u003e\"\n    }\n  ]\n}\n```\n\n`registry.json` is **generated** — the [publish workflow](./.github/workflows/publish.yml)\nbuilds every `plugins/*`, packages the zips, uploads them to the `plugins`\nrelease, and commits a refreshed index. The checked-in copy is a seed; the\n`sha256`/`url` become live once the publish workflow uploads the release assets.\n\n## Add a plugin\n\n1. Create `plugins/\u003cyour-plugin\u003e/` with `Cargo.toml` (cdylib + `wit-bindgen`),\n   `src/lib.rs` implementing the `tool-plugin` world, and a `manifest.toml`. Use\n   `plugins/wikipedia-summary` (no auth) and `plugins/mastodon-post`\n   (host-injected credentials) as templates.\n2. Build it:\n   ```bash\n   rustup target add wasm32-wasip2\n   (cd plugins/\u003cname\u003e \u0026\u0026 cargo build --target wasm32-wasip2 --release)\n   ```\n3. Open a PR. On merge, the publish workflow packages and indexes it.\n\nThe contract in `wit/v0/` is vendored from\n[zeroclaw `wit/v0`](https://github.com/zeroclaw-labs/zeroclaw/tree/master/wit/v0);\nbump it together when the plugin ABI version changes.\n\n## Secrets / credentials\n\nA plugin never sees secret values. It declares `[[credentials]]` in its\n`manifest.toml`, and the host injects the secret into matching outbound requests\n(e.g. `Authorization: Bearer \u003ctoken\u003e`) at the HTTP boundary — see\n`plugins/mastodon-post`. The plugin can only check existence via the\n`secret_exists` permission.\n\n## Run your own registry\n\n```bash\nzeroclaw plugin install \u003cname\u003e --registry https://my-host/registry.json\nexport ZEROCLAW_PLUGIN_REGISTRY_URL=https://my-host/registry.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeroclaw-labs%2Fzeroclaw-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeroclaw-labs%2Fzeroclaw-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeroclaw-labs%2Fzeroclaw-plugins/lists"}