-
Notifications
You must be signed in to change notification settings - Fork 0
Host Adapters
One authored primitive, two hosts — how each kind lands on Claude Code and Antigravity, and where a host can't follow.
crickets targets two hosts — Claude Code and Antigravity — from one source. A primitive declares supported_hosts, and the generator emits a host-shaped artifact for each: same kind, host-specific destination and packaging. Where a host can't honor a primitive, the gap is named rather than hidden.
The generator mirrors the source layout into dist/<host>/plugins/<group>/, and each kind lands at a host-specific path inside that plugin. The host's own plugin manager installs the whole plugin — nothing is copied into .claude/ or the project tree.
| Kind | Claude Code | Antigravity |
|---|---|---|
skill / agent / command
|
same in-plugin path on both hosts | same |
hook |
hooks/hooks.json + hooks/<name>/
|
root hooks.json + hooks/<name>/; runs observe-only |
snippet |
dropped — no instruction-file surface | rules/<name>.md |
The two hosts agree on most paths and split in a few places: the plugin manifest (.claude-plugin/plugin.json vs a root plugin.json), the hook manifest location, and the marketplace pointer. Two splits are load-bearing — Claude Code drops snippets (it has no instruction-file surface), and Antigravity runs hooks observe-only (it ignores exit codes and never reads stdout), so a hook that vetoes or injects is Claude-only-effective.
- Build & distribution — the pipeline that runs the emit. Host adapters define where each kind lands; build & distribution puts it there.
-
Customization model — the inputs the adapter switches on. Each primitive's
supported_hosts+kinddecide which hosts receive it and what artifact it becomes.
- Antigravity authoring gaps. Hooks, scheduled tasks, and multi-agent orchestration have no file-based authoring path, so a primitive can emit without being effective — each gap is tracked with its re-address trigger in the limitations register.
Detail:
- Per-host paths — the destination table per primitive × host.
- Compatibility — which kinds and hooks are effective on each host.
- Antigravity limitations — the host-gap register.