One catalog for ToolboxMD plugins. Codex, Claude Code, Grok Build, and Cursor load supported host-native distributions from the same accepted Project releases. Codex, Claude Code, and Grok Build add this marketplace, then install the plugins they want:
karpathy-wiki@toolboxmdagentsmd@toolboxmdcodex-thinking-knob@toolboxmd(Codex only)
A plugin repository is a plugin, not this marketplace. Do not path-install a plugin checkout as the happy path.
codex plugin marketplace add toolboxmd/marketplace{
"extraKnownMarketplaces": {
"toolboxmd": {
"source": {
"source": "github",
"repo": "toolboxmd/marketplace"
}
}
}
}Then enable plugins as karpathy-wiki@toolboxmd or agentsmd@toolboxmd.
If you previously enabled karpathy-wiki@karpathy-wiki-local or
agentsmd@agentsmd-local, rename those keys to the *@toolboxmd form.
grok plugin marketplace add toolboxmd/marketplaceThen install by name (trust hooks only from this publisher):
grok plugin install karpathy-wiki --trust
grok plugin install agentsmd --trustStart a new session or reload plugins. Grok copies plugin files on install; a
later plugin release is not live until grok plugin update <name>.
After the marketplace is added:
codex plugin add karpathy-wiki@toolboxmd
codex plugin add agentsmd@toolboxmdcodex plugin add codex-thinking-knob@toolboxmdThis selects only the wrapper and its setup Skill. It does not install AgentsMD
or other ToolboxMD modules. Use a configurable Codex App Server client to launch
the installed wrapper with --adaptive, following the
release installation guide.
Installing the plugin alone does not attach it to an existing desktop session.
The source release also provides a standalone package artifact for isolated
installation without adding this Marketplace.
codex plugin remove codex-thinking-knob@toolboxmdUninstall is per plugin. Removing one plugin leaves the others installed. Removing the marketplace is optional and host-specific. Wiki data, the wiki pointer, and per-wiki runtime files survive uninstalling karpathy-wiki.
For live checkouts next to each other (this machine: karpathy-wiki and
agentsmd as siblings), generate host indexes from this catalog:
python3 scripts/render_catalog.py --local-root /path/to/sibling-rootThen add that sibling root as marketplace toolboxmd on each host. Each generated index includes only the catalog entries supporting that host. Do not hand-edit generated JSON indexes. Do not nest plugins inside karpathy-wiki.
Codex local sources stay inside that sibling root (./karpathy-wiki, and so
on). Grok and Claude indexes for local-dev use the same names and in-root
paths.
Published Codex, Claude Code, and Grok Build sources are pinned to the full
commit SHA recorded in catalog.json. A tagged release may also record its tag
in release; Codex and Claude then verify both selectors. After a plugin
release is on GitHub, set or update release when applicable, then run:
python3 scripts/refresh_pins.pyCommit the updated catalog.json and rendered indexes. Entries without a
release resolve the repository HEAD only when this explicit refresh command
runs.
Project Record v1 lets a released Project point to its existing authoritative version, delivery, Skill, documentation, requirement, and proof files without copying those facts into Marketplace.
After the Project publishes a conforming immutable release, run:
python3 scripts/ingest_project.py <project-id> <release-tag>The command reads repository membership from catalog.json, resolves the exact
tag, validates the record and every referenced file from the same Git tree, and
only then updates the catalog and all three host indexes. A released Project
Record limits publication to its declared codex, claude-code, and
grok-build delivery hosts. A package delivery validates its package artifact
and does not imply another harness is supported. Legacy catalog entries without
hosts retain their existing three-host coverage. See
docs/project-record-v1.md for the contract,
deterministic local acceptance, and delivery-state boundaries.
Generate the Cursor multi-plugin manifest and the AgentsMD package from the
accepted catalog.json release:
python3 scripts/render_cursor.py agentsmdFor deterministic offline proof against an existing exact Git source, add
--source /path/to/agentsmd. The command verifies the accepted release commit
and Project Record digest before replacing generated output. It copies the
complete active Skill directories, required versionctl runtime, licences,
and provenance from that release and writes the source hashes to
cursor/agentsmd/SOURCE.json.
The package is staged at cursor/agentsmd, and the generated Cursor index
points at ./cursor/agentsmd. The directory must not be named plugins:
Grok Build scans plugins/* inside Claude Code marketplace clones, so a
package there is loaded in place of the native AgentsMD install and its
hooks. render_cursor.py rejects generated output under plugins/.
The Cursor package intentionally does not include AgentsMD's global
AGENTS.md, lifecycle hooks, or the Project Direction hook executable. Those
behaviors require separate host-level proof. The package exposes the released
Skills and their required resources only.
Validate the result with the current official
cursor/plugin-template
validator before local installation or submission.
- Give the plugin repo manifests for its supported hosts only. Name is the
short plugin id (
agentsmd, nottoolboxmd-agentsmd). Version mirrors that repo'sVERSION. - Add one object to
catalog.json(name,description,github,sha,category). - Run
python3 scripts/render_catalog.pyand the test suite. - Add one line to this README's plugin list.
No new marketplace name. Eligible later without a spec rewrite: building-agentskills, codex-adapter, html-skill, and future public plugin repos under github.com/toolboxmd.
bash tests/run-all.shToolybara's credential-independent policy, guided bootstrap, and proof contract
are documented in
docs/toolybara-bootstrap.md. The provisioning
wizard is intentionally not run during ordinary development or tests. It
creates the GitHub App, installation, organization Actions variable, and
organization Actions secret only when a human explicitly runs it:
scripts/bootstrap_toolybara.shThe wizard does not configure branch protection, rulesets, native auto-merge, automatic branch deletion, bypass actors, or any other repository setting.
The GitHub-hosted promotion workflow reconciles each event and an hourly
schedule against the newest independently validated release of each module in
toolybara/modules.json. AgentsMD and Agent Observer are
enrolled. Agent Observer remains unpublished until
its first valid release. Agent Observer is native-host-only: its source package
ships Codex, Claude Code, and Grok Build manifests but no Cursor manifest, so
its enrollment sets cursor: false with an empty cursorRuntime and promotion
renders only its native host indexes. Each run creates or updates
one generated Toolybara pull request, revalidates the exact head in a
trusted final job, merges through the SHA-bound pull-request API, and publishes
the corresponding Marketplace tag and GitHub Release.
The exact event payload, generated-file allowlist, failure behavior, and proof
contract are documented in
docs/toolybara-promotion.md.
catalog.jsonowns published membership and immutable source pins.toolybara/modules.jsonowns explicit approval for automatic module promotion.schemas/project-record-v1.schema.jsondefines the minimal released record.scripts/ingest_project.pyvalidates and accepts one immutable release..agents/plugins/marketplace.jsonis the Codex index..claude-plugin/marketplace.jsonis the Claude Code index..grok-plugin/marketplace.jsonis the Grok Build index..cursor-plugin/marketplace.jsonis the generated Cursor multi-plugin index.cursor/agentsmd/is the generated Cursor-native AgentsMD package. It is not underplugins/because Grok Build would load it from a Claude Code marketplace clone instead of the native AgentsMD install.scripts/render_catalog.pywrites those indexes (and local-dev indexes).scripts/render_cursor.pyvalidates provenance and writes Cursor output.scripts/toolybara_promotion.pyreconciles and validates Toolybara promotion.
VERSION is canonical. This repository versions the catalog and ingestion
contract, not the Projects it distributes.