Inspect local instructions, rules, skills, MCP servers, commands, subagents, and plugins for Paseo providers.
npmjs · Paseo 0.9+
paseo plugin add npm:@koinzhang/paseo-plugin-customize@0.3.0GitHub · Paseo 0.8 fallback
paseo plugin add koinzhang/paseo-plugins --ref 7c2d3ce8a7435f45cd17ef0b2cb2deda5e5c993a --path customizeGit security status and fallback installation are pinned to commit 7c2d3ce8a743.
From the plugin's README
paseo plugin add koinzhang/paseo-plugins --path customize
README
One board that scans local agent configuration for a project: instructions (AGENTS.md, CLAUDE.md …), rules, skills, MCP servers, commands, subagents, and plugins at project and user level.
Requires Paseo >= 0.9.0.
/customize in an agent composer to open the board. It selects the agent's Provider and workspace Project when available, updating each independently and keeping the current selection for any unavailable value.thirdPartyExtensibilityEnabled IDE setting; OpenCode's follows its external-skill environment flags. The icon and skill explanation update on the next scan when those settings change.v prefix to the left of Provider, between the compatibility icon (when present) and the picker. Versions come from the host diagnostic first, then a local CLI fallback; missing versions and probe/parse failures hide the version area entirely. Version metadata refreshes with each scan and persists in the saved snapshot. Compact layouts keep the compatibility icon, version, and Provider together while the remaining controls can wrap..agents/skills, then another path. Same-name skills backed by different files remain separate.metadata.opencode/autoinvoke: false (boolean or string "false") show as Manual only: hidden from the model's available list, but still explicitly loadable by ID. Customize detects the version from the host's provider diagnostic first, then falls back to opencode --version on the daemon's PATH. The mechanism note explains the matching v1/v2 behavior; an unknown version leaves flagged skills awaiting confirmation. v1 ignores this field. OpenCode ignores other agents' disable-model-invocation; skill deny permissions still hide and block loading (v1 permission.skill, v2 permissions[]).| Status | Meaning |
|---|---|
| Auto | Loaded / offered to the model without you doing anything |
| Conditional | Loaded when a glob, nested directory, or the agent's judgement matches |
| Manual only | Only when you invoke it (/name, @rule, disable-model-invocation, allow_implicit_invocation: false …) |
| Needs approval | Found, but the provider asks before using it (e.g. unapproved .mcp.json servers) |
| Disabled | Explicitly turned off in config (enabled = false, skillOverrides: off, disabledMcpServers …) |
| Not loaded | Present but ignored (shadowed by a higher-priority file, untrusted project, off by default) |
The reason (the exact frontmatter key or config setting) is shown next to the status.
Each row shows an estimated token count after the status pill for Instructions, Rules, Skills, Commands, Subagents, and Plugins. The estimate is a script-aware heuristic — ceil(ascii / 4 + cjk * 1.05 + otherNonAsciiBytes / 3) — calibrated against GPT's o200k_base on local Chinese AGENTS.md files and a 2168-file corpus (about 10% mean error; Claude-family tokenizers run another 10–20% denser on CJK). Instructions and Rules show one number (≈1.2k tok) because they are always on. Skills, Commands, and Subagents show two: the advertised name + description that is always in context (≈114 tok) plus the body that arrives when the entry is invoked (+1.2k on invoke); manual-only entries show the invoke segment alone, and disabled or not-loaded entries show none. Plugin rows recursively sum the prompt files (.md / .markdown / .mdc / .rules / .txt) under the package's skills, commands, agents, rules, and instructions directories with the same split; manifests, code, and node_modules are not counted. MCP is not counted, because a server's real cost is its tools/list payload, which cannot be read from a config file. Counts are cached by path + mtime + size and persisted with the scan snapshot.
Click a row for a preview pane at the bottom (first 64 KiB / 400 lines) with Open, Reveal, and Copy path. MCP previews mask env / headers values and secret-looking arguments.
Scanning is read-only. Preview and open only accept paths returned by a scan. The list is disk evidence, not a live CLI inventory. Trust, plugin enablement, command-line flags, and newer CLI versions may change what a running agent uses. An empty category marked "No scanned location" means no verified file location is configured in Customize; it does not mean the provider lacks that capability.
Provider/Project scans are saved as private JSON snapshots in the Paseo host's plugin-data/customize/ directory ($PASEO_HOME, or ~/.paseo by default). The board shows the saved list after an app or plugin restart; hover over Rescan to see the last scan time. It scans in the background when the snapshot is at least 10 minutes old, a compatibility switch changes, no snapshot exists, or you press Rescan. A failed refresh keeps the last list visible with a retry action. Damaged or incompatible snapshots are ignored. Previews and Open recheck paths from saved snapshots against a current scan.
Plugin rows read the declared specification version from the root plugin.json $schema. A valid supported manifest shows Agent Plugins 1.0.0; a future canonical version shows its declared version with an unverified qualifier until Customize supports that schema. The badge does not validate bundled skills or MCP servers, or confirm runtime activation.
For Cursor, the Plugins tab also scans local test packages under ~/.cursor/plugins/local/<plugin-name>.
Per-provider mechanisms and their sources are recorded in specs/001-customize-board/research.md and specs/003-acp-configurations/research.md.
paseo plugin add koinzhang/paseo-plugins --path customize
cd customize
npm install
npm run typecheck
npm test
paseo plugin install "$PWD"
paseo plugin reload customize
Provider scanners live in server/providers/; shared helpers (nested directory index, skill discovery, redaction) in server/scan-kit.ts and server/mcp.ts. The "how it loads" notes are data in shared/mechanisms.ts. UI follows the Activity design tokens (client/design-tokens.ts); npm test rejects raw font / radius / icon literals.
Scanned 15 Oct 2026, 12:29 UTC from koinzhang/paseo-plugins/customize.