./scripts/record-onboarding-demo.sh --replay

Watch the onboarding.

Two halves of the same flow, recorded deterministically by one script: the CLI a developer runs locally, and the portal view a curator sees in parallel. Switch tabs to compare.

CLI & portal, side by side.

Same scripted scenario, two perspectives. The CLI half walks init --projectloginbootstrapproject listplan showplan importplan historydoctor. The portal half shows the curator viewing the same project, plan, and members in real time.

onboarding-demo · CLI ⇆ Portal

Want to re-record locally? ./scripts/record-onboarding-demo.sh generates both halves from the same seeded dataset.

The original three-act demo.

The first demo we ever recorded, still useful as the shortest possible tour: (1) init --project + login + bootstrap for project-aware install, (2) project list + project show + plan show to browse the curated bundle, (3) plan import + plan history + doctor to import an updated plan and verify state.

~/code/acme-billing-service — skill-pool · 90 seconds

Onboard a new repo in under 2 minutes.

1. Drop into the project

The developer clones a repo and runs one command. If direnv is installed, it happens automatically:

$ git clone git@github.com:acme/billing-service && cd billing-service
$ direnv allow
# detected: rust, axum, postgres
# install 4 matching skills + 1 project-pinned bundle? [Y/n]
OK installed 4 skills · 2 agents · 1 command
OK linked into .claude/skills/, .claude/agents/, .claude/commands/

2. Curator's view in the portal

The curator opens the portal at https://acme.skills.example/projects/acme-billing-service. They see the same bundle the developer just installed, plus drafts captured from prior sessions waiting for review.

3. Verify the install

$ skill-pool doctor
OK registry reachable      (acme.skills.example, latency 23ms)
OK token valid             (tenant: acme · scope: publish · expires in 87 days)
OK 7 skills linked         (into .claude/skills/)
OK 2 agents linked         (into .claude/agents/)
OK 1 command linked        (into .claude/commands/)
OK no dangling symlinks

4. Use it in Claude Code

The developer starts a Claude Code session. The freshly-linked skills, agents, and commands are immediately available — Claude picks them up the way it picks up any other entries in ~/.claude/.

$ try it yourself → when this fits