diff --git a/.agents/docs/demo-gif-creation.md b/.agents/docs/demo-gif-creation.md new file mode 100644 index 0000000..6e07b28 --- /dev/null +++ b/.agents/docs/demo-gif-creation.md @@ -0,0 +1,65 @@ +# Demo GIF creation + +Source-of-truth process for the `docs/public/demo.gif` shown in the README and used in Show HN / social-media posts. + +## Why manual, not CI + +We considered a GitHub Action that re-renders `demo.gif` whenever `packages/cli/src/**` changes. Rejected for HN launch: it adds a moving part to the repo before the launch story is settled, and stale screenshots rarely block users more than a 5-minute manual re-render. Reconsider in v0.6.x if the GIF goes stale visibly more than twice. + +## Tool + +[VHS](https://github.com/charmbracelet/vhs) — declarative `.tape` files, real pixel output, regenerable by anyone with VHS installed. [gum](https://github.com/charmbracelet/gum) drives the fake-agent HUD (Frame 3). + +```bash +mise install # picks up vhs + aqua:charmbracelet/gum from mise.toml +``` + +## Files + +``` +docs/public/demo.tape # source of truth (declarative script) +docs/public/demo-agent-hud.sh # scripted fake-agent HUD (gum banner/spinner/tool-call lines) +docs/public/demo.gif # rendered artifact (committed, referenced in README) +docs/public/demo.mp4 # rendered artifact (committed, for social posts) +``` + +## Render locally + +```bash +cd docs/public +vhs demo.tape # produces demo.gif + demo.mp4 +``` + +Re-render whenever any of these change: + +- The CLI's `add` command output (installer text) +- The Tier-1 harness list (Claude Code, Codex, OpenCode, Pi) +- The plugin name featured in the storyboard (`agentplugins-conventional-commits`) + +## Storyboard (current) + +| Frame | Duration | What happens | +| --- | --- | --- | +| 1 | 0–1s | `cd` into a pre-warmed demo folder | +| 2 | 1–2s | User's natural-language ask typed live (shell comment, cosmetic only) | +| 3 | 2–6s | Scripted fake-agent HUD runs (`docs/public/demo-agent-hud.sh`), prints `Plugin is ready` | +| 4 | 6–7s | `clear` | +| 5 | 7–12s | Real `agentplugins add sigilco/agentplugins-conventional-commits -y`, waits for `Installed to:` (the punchline) | + +Total budget: 15–30s, width 1200, height 700, font size 18. + +## Agent HUD (Frame 3) — why scripted + +A live capture of the agent scaffolding the plugin is more authentic, but brittle and slow: any agent behavior change breaks the tape, and a real `claude` run takes 5–15 minutes to render. Instead `docs/public/demo-agent-hud.sh` drives [`gum`](https://github.com/charmbracelet/gum) (mise tool `aqua:charmbracelet/gum`) to render a real bordered banner, a real animated spinner, and boxed tool-call lines — deterministic, no network/API calls, runs in ~3s. The install segment stays a real, live `agentplugins add` call; it's already fast and deterministic, and is the visual punchline. + +## Plumbing + +- VHS pulls `ttyd` and `ffmpeg` automatically on macOS. +- The `.tape` uses `Output docs/public/demo.gif` and `Output docs/public/demo.mp4` so a single run produces both. +- Screenshots reference `./docs/public/img/logo-light.png` and `./docs/public/img/logo-dark.png` if any frame embeds the logo. + +## What is NOT in scope + +- Auto-rendering on PR / CLI change (deferred to v0.6.x). +- GIF hosting on a CDN (the file is small and GitHub renders it natively). +- git-lfs (the GIF stays under 5 MB; if it ever blows past, switch then). \ No newline at end of file diff --git a/.gitignore b/.gitignore index 4fb4f63..6a66c5c 100644 --- a/.gitignore +++ b/.gitignore @@ -59,6 +59,9 @@ docs/public/* !docs/public/img/ !docs/public/img/logo-dark.png !docs/public/img/logo-light.png +!docs/public/demo.tape +!docs/public/demo.gif +!docs/public/demo.mp4 # Misc *.local diff --git a/README.md b/README.md index 7d3c62f..6d51795 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,67 @@ -# AgentPlugins - -
+
+ Write AI agent plugins once, ship to any harness. +
+ + + +## Why + +- **Write once, run everywhere** — one manifest compiles to Claude Code, Codex, OpenCode, Pi Mono, Copilot, Gemini, and Kimi +- **Universal codegen first, per-harness fallback second** — Tier-1 harnesses get full parity; Tier-2 gets skills + commands + a subset of hooks +- **No runtime proxy** — every adapter emits the harness's native output format; no shim layer, no lock-in +- **Honest capability matrix** — capability gaps emit `WARN` at compile time and surface on the [capability matrix page](https://agentplugins.pages.dev/guide/capability-matrix) +- **Plays nicely with what you already have** — install a plugin into a harness that already has its own plugins; they coexist -Install any plugin into every supported AI agent — **Tier-1:** Claude Code, Codex, OpenCode, Pi Mono. **Tier-2:** Copilot, Gemini, Kimi. +## Install -[**Sponsor development →**](https://buy.polar.sh/polar_cl_Mv1gdlG7bw3I70EC9IHtfeSHJj4PEKvA7JAUz23CFhj) +Install the CLI, then add any plugin to every supported AI agent — **Tier-1:** Claude Code, Codex, OpenCode, Pi Mono. **Tier-2:** Copilot, Gemini, Kimi. ```bash -npx @agentplugins/cli add user/awesome-plugin +curl -fsSL https://agentplugins.pages.dev/install.sh | bash +agentplugins add user/awesome-plugin ``` +Or skip the install and use `npx`: + ```bash -agentplugins add sigilco/agentplugins-ponytail +npx @agentplugins/cli add user/awesome-plugin ``` -Or install the CLI globally first: +Full guide → [agentplugins.pages.dev/guide/install](https://agentplugins.pages.dev/guide/install) + +
+
+