Machine Setup Manifest

πŸ—’οΈ What this is

The single source of truth for the agent/dev tooling that should exist on every machine I work on: Claude Code plugins, agent skills, CLI tools, MCP servers, and their runtime prerequisites.

How to use it: point the agent at this note β€” β€œinstall everything from Machine Setup Manifest” β€” and it walks Β§0β†’Β§6 in order, reinstalling anything missing. No more wondering why a skill/tool exists on one box but not another.

One unified desired state across all machines (decided 2026-07-12). Not per-machine reality β€” Β§7 tracks which machine is synced to which date and any per-machine carve-outs. Reconciled against the real box PLSOFT-PCD1 (Windows 11 Pro, build 26200) on 2026-07-12.

Version numbers below are reference/minimums, not hard pins β€” machines legitimately run different patch levels. Only pin where compatibility breaks (e.g. npm 12 needs Node β‰₯22.22.2).


Β§0 β€” Runtimes & prerequisites (install FIRST)

Everything below depends on these. Install via winget / choco on Windows.

ToolMin / refThis box (PLSOFT-PCD1)Install (Windows)
Node.jsβ‰₯22.22.2 (LTS or current)24.18.0 via nvm4w (C:\nvm4w\nodejs)winget install OpenJS.NodeJS β€” but this box manages Node with nvm4w + fnm (see Β§7 cleanup todo)
npmβ‰₯11 (12 needs Node β‰₯22.22.2)11.16.0ships with Node; optional bump npm i -g npm@latest
Python3.11–3.133.13.13 primary, +3.12 +3.11 (py --list)winget install Python.Python.3.13 (keep 3.11/3.12 too)
uvβ‰₯0.90.11.15winget install astral-sh.uv
gitβ‰₯2.492.54.0winget install Git.Git
gh (GitHub CLI)β‰₯2.872.92.0winget install GitHub.cli β†’ gh auth login
ffmpegβ‰₯8.08.1.2 (gyan full build)choco install ffmpeg
yt-dlplatest2026.07.04yt-dlp.exe on PATH (…\Python313\Scripts, pip-provided). Update with python -m pip install -U yt-dlp β€” NOT yt-dlp -U (errors on pip installs).
scoopβ€”installed (2026-07-13)~\scoop\shims on PATH. Backs supabase (Β§4). Update apps: scoop update *. See scoop.sh

Β§1 β€” Claude Code plugins

Add each marketplace once, then install its plugins. claude plugin install <plugin>@<marketplace> works headless from the shell (auto-enables at user scope) β€” no need for the interactive /plugin TUI.

Marketplaces

# claude-plugins-official is built in
/plugin marketplace add anthropics/skills                 # β†’ "anthropic-agent-skills"
/plugin marketplace add kepano/obsidian-skills            # β†’ "obsidian-skills"
/plugin marketplace add nextlevelbuilder/ui-ux-pro-max-skill
/plugin marketplace add openai/codex-plugin-cc            # β†’ "openai-codex"
/plugin marketplace add AgriciDaniel/claude-seo           # β†’ "agricidaniel-seo"
/plugin marketplace add getsentry/sentry-mcp
/plugin marketplace add 200iqlabs/shared-skills
/plugin marketplace add JuliusBrussee/caveman
# personal/project marketplace (git, autoUpdate): plsoft-vsoft-marketplace
#   git: https://github.com/plipowczan/plsoft-vsoft-agent.git

Plugins (user scope β€” sync everywhere) β€” 30 enabled

# from claude-plugins-official
claude plugin install superpowers@claude-plugins-official
claude plugin install frontend-design@claude-plugins-official
claude plugin install context7@claude-plugins-official
claude plugin install code-review@claude-plugins-official
claude plugin install typescript-lsp@claude-plugins-official
claude plugin install pyright-lsp@claude-plugins-official
claude plugin install claude-md-management@claude-plugins-official
claude plugin install security-guidance@claude-plugins-official
claude plugin install commit-commands@claude-plugins-official
claude plugin install skill-creator@claude-plugins-official
claude plugin install vercel@claude-plugins-official
claude plugin install github@claude-plugins-official
claude plugin install playwright@claude-plugins-official
claude plugin install chrome-devtools-mcp@claude-plugins-official
claude plugin install sentry@claude-plugins-official
claude plugin install cloudflare@claude-plugins-official
claude plugin install feature-dev@claude-plugins-official
claude plugin install supabase@claude-plugins-official
claude plugin install stripe@claude-plugins-official
claude plugin install plugin-dev@claude-plugins-official
claude plugin install pr-review-toolkit@claude-plugins-official
claude plugin install claude-code-setup@claude-plugins-official
claude plugin install explanatory-output-style@claude-plugins-official   # canonical output style (Β§6)
# from other marketplaces
claude plugin install document-skills@anthropic-agent-skills
claude plugin install obsidian@obsidian-skills
claude plugin install ui-ux-pro-max@ui-ux-pro-max-skill
claude plugin install codex@openai-codex           # needs the codex CLI binary too (Β§4)
claude plugin install claude-seo@agricidaniel-seo
claude plugin install sentry-mcp@sentry-mcp
claude plugin install caveman@caveman

30 user-scope plugins. context7, playwright, chrome-devtools-mcp, sentry, sentry-mcp, github, vercel, supabase, cloudflare each also register an MCP server (see Β§5).

Output style: manifest uses explanatory-output-style (canonical as of 2026-07-12), NOT learning-output-style. See Β§6.


Β§2 β€” Agent Skills (npx skills add)

Standalone skills, symlinked into ~/.claude/skills (and ~/.agents/skills) by the Agent Skills CLI. Source-of-truth lockfile: ~/.agents/.skill-lock.json.

npx skills add bradautomates/claude-video -g     # β†’ skill "watch" ([[Claude Video]])
npx skills add vercel-labs/skills -g             # β†’ find-skills
npx skills add vercel-labs/agent-skills -g       # β†’ web-design-guidelines, writing-guidelines, vercel-* patterns, deploy-to-vercel
npx skills add Omerr/claude-skills -g            # β†’ create-marp-deck
npx skills add firecrawl/cli -g                  # β†’ firecrawl + 6 sub-skills (agent/crawl/download/map/scrape/search)
npx skills add heygen-com/hyperframes -g         # β†’ hyperframes + family (animation/cli/core/creative/keyframes/registry) + media-use
  • notebooklm β€” NOT installed this way; ships with the uv tool via notebooklm skill install (see Β§3).
  • Additional local skills present on this box (source varies β€” complete confirm provenance): browser-use (Browser Use uv tool, Β§3), graphify, uxruler, prd / to-prd, review-fix, review-loop, prepare-openspec-goal. Some likely come from the plsoft-vsoft marketplace or manual drops.

Β§3 β€” uv tools (Python CLIs)

# NotebookLM
uv tool install "notebooklm-py[browser]"         # β†’ CLI "notebooklm" ([[NotebookLM-py]]) v0.7.3
notebooklm skill install                         # installs the notebooklm agent skill into ~/.claude/skills + ~/.agents/skills
"$(uv tool dir)/notebooklm-py/Scripts/playwright.exe" install chromium   # bundled venv browser binary (Windows)
notebooklm login                                 # interactive Google sign-in β€” run by the user when needed
notebooklm auth check --test --json              # expect "status": "ok"

# Browser automation ([[Browser Use]]) β€” driven via isolated Edge CDP; launcher C:\Users\pawel\browser-use-edge.ps1
uv tool install browser-use                       # v0.13.3 β†’ CLI: browser-use / bu / browser-use-tui

# Serena (semantic code MCP + agent)
uv tool install serena-agent                      # v1.5.3 β†’ serena / serena-agent / serena-hooks (also an MCP server, Β§5)

Β§4 β€” npm global CLIs

npm i -g @github/copilot @google/gemini-cli @marp-team/marp-cli @openai/codex \
  @sentry/cli firecrawl-cli nano-banana-mcp openai vercel @fission-ai/openspec
PackageVersion (ref)Notes
@fission-ai/openspec1.6.0OpenSpec CLI
@github/copilot1.xCopilot CLI β€” ⚠️ on this box copilot on PATH resolves to the VS Code copilot-chat CLI (PATH shadow); the npm one is present but shadowed. complete
@google/gemini-cli0.50.0Gemini CLI β€” needs key
@marp-team/marp-cli4.xMarp CLI β€” deck export
@openai/codex0.144.1Codex CLI β€” required binary for the codex@openai-codex plugin (Β§1)
@sentry/cli3.6.0Sentry releases β€” postinstall was skipped by npm allow-scripts guard; run npm approve-scripts @sentry/cli if the binary is missing
firecrawl-cli1.19.xbacks the Firecrawl skills (Β§2)
nano-banana-mcp1.0.3image-gen MCP
openai6.xOpenAI SDK/CLI
vercel55.0.0Vercel CLI β€” vercel login
pnpm10.33.0via corepack (C:\nvm4w\nodejs\pnpm.ps1), NOT an npm global on this box β€” leave as-is

npm bulk installs trigger a npm warn allow-scripts guard (postinstall scripts blocked): @sentry/cli, @github/keytar, esbuild, protobufjs, @fission-ai/openspec. If a CLI misbehaves, run npm approve-scripts <pkg> to complete its postinstall.

Standalone CLIs (outside npm)

  • supabase CLI 2.109.1 β€” installed via scoop: scoop install supabase (npm global install is deprecated for Supabase; needs scoop, Β§0). Complements the supabase plugin (Β§1) + MCP (Β§5). Update: scoop update supabase.

Β§5 β€” MCP servers

ServerScopeProvided byStatus on this box
context7plugincontext7 pluginβœ” connected
playwrightpluginplaywright pluginβœ” connected
chrome-devtoolspluginchrome-devtools-mcp pluginβœ” connected
sentry / sentry-mcppluginsentry / sentry-mcp pluginsβœ” connected
vercelpluginvercel plugin! needs vercel login
githubplugingithub plugin✘ failing to connect (#todo/complete β€” re-auth)
cloudflare-*plugincloudflare plugindocs βœ”; api/bindings/builds/observability ! need auth
supabasepluginsupabase plugintoken (after Β§4 install)
beeperuser (~/.claude.json)customβœ” connected β€” messaging (http://127.0.0.1:23373)
serenauserserena-agent uv tool (Β§3)βœ” connected β€” semantic code nav
perplexityprojectcustomneeds API key (only in its project)
claude-in-chromeChrome extensionClaude in Chromebrowser extension, not a CLI

Account-level remote MCP (claude.ai connectors β€” signed in via web/desktop, shared across sessions)

  • Sentry Β· inFakt (accounting) Β· Google Drive Β· Google Calendar Β· Gmail Β· ClickUp β€” all βœ” connected. These live on the claude.ai account, not in a local config file; may be absent in headless/cron runs.

Β§6 β€” Config & output

  • Output style: explanatory (from explanatory-output-style plugin) β€” canonical as of 2026-07-12. Provides inline educational insights.
  • effortLevel: xhigh.
  • Caveman: fully wired on this box β€” SessionStart hook (caveman-activate.js), UserPromptSubmit hook (caveman-mode-tracker.js), and a statusLine block β†’ caveman-statusline.ps1. Hooks now point at the stable nvm4w node (C:\nvm4w\nodejs\node.exe) β€” fixed 2026-07-13 (previously a per-session fnm_multishells\52756_… path that vanishes between sessions).
  • Other settings.json: theme: dark Β· autoUpdatesChannel: latest Β· permissions.defaultMode: auto Β· skipDangerousModePermissionPrompt Β· skipAutoPermissionPrompt Β· skipWorkflowUsageWarning Β· agentPushNotifEnabled β€” all true.
  • enabledPlugins: 30 (matches Β§1 user scope).

Β§7 β€” Per-machine sync status & project-scoped extras

Synced machines

MachineOSLast syncedNotes
PLSOFT-PCD1Windows 11 Pro (build 26200)2026-07-13reference machine; audited & converged to unified state. Node via nvm4w (fnm installed but unused); stack = video/browser/serena + full plugin set

The original 2026-07-11 draft described a different tool profile (notebooklm/scoop/supabase-centric, Node 22 in Program Files). The 2026-07-12 audit reconciled the manifest against the actual box (PLSOFT-PCD1) and merged both into one unified desired state.

Open cleanups

Resolved 2026-07-13:

  • βœ” Node manager β€” nvm4w chosen canonical (active, stable path C:\nvm4w\nodejs); caveman hooks repointed off the fragile per-session fnm multishell path onto it. fnm (winget) left installed but unused β€” optionally winget uninstall Schniz.fnm.
  • βœ” scoop + supabase installed (2.109.1).
  • βœ” notebooklm logged in (notebooklm auth check --test --json β†’ "status": "ok").
  • βœ” yt-dlp confirmed as .exe on PATH (pip-managed; update via python -m pip install -U yt-dlp).

Still pending β€” need interactive auth (user action):

  • github MCP ✘ fails to connect β†’ authenticate via the /mcp menu (it uses its own OAuth; the gh token here has scopes gist/read:org/repo/workflow, no Copilot scope, and isn’t used by this MCP).
  • vercel MCP β†’ vercel login. cloudflare MCP (api/bindings/builds/observability) β†’ authenticate via /mcp OAuth (docs endpoint already works).
  • copilot on PATH resolves to the VS Code copilot-chat CLI; the npm @github/copilot@1.0.70 lives at C:\nvm4w\nodejs\copilot β€” invoke by full path if you want the npm build. Harmless (both are the Copilot CLI).

Project-scoped plugins (do NOT global-sync β€” tied to specific local repos)

  • skill-creator@claude-plugins-official β€” general skill authoring (currently user scope here)
  • 200iqlabs-agent-skills@shared-skills β†’ repo …/portfolio (installed local, disabled globally)
  • plsoft-vsoft-marketplace (git, autoUpdate) β€” personal marketplace

Secrets / logins required (values live in env or .env, never in this note)

  • Claude Code β€” Anthropic account login
  • notebooklm login (Google) Β· Whisper optional: GROQ_API_KEY / OPENAI_API_KEY in ~/.config/watch/.env
  • FIRECRAWL_API_KEY Β· Perplexity key Β· vercel login Β· gh auth login Β· Sentry token Β· Supabase token Β· Cloudflare auth Β· Gemini/OpenAI/Copilot keys


Template: knowledge_note_how_to