@synthryn/sypi-discovery
v0.6.0-beta.20260816.6a00fcae
Published
Optional extension: Discover skills, MCP servers, markdown commands, and executable tools from supported external harnesses under project-trust controls. Use it when you need to reuse existing harness configuration without executing foreign hooks or exten
Maintainers
Readme
@synthryn/sypi-discovery
Optional external harness discovery for SyPi. It scans other agent harnesses'
config directories: claude, codex, gemini, opencode, cursor, windsurf, cline,
copilot (github), vscode, and a root mcp.json. It imports their skills,
MCP servers, markdown slash commands, and exec-format tools. SyPi-native
configuration always wins on name collisions, and project trust gates the
whole import: an untrusted or unknown project stays inactive unless you opt
in with allow untrusted.
What it does and does not load:
- Skills: Each discovered skill root directory is fed to the core skills loader after the SyPi roots. SyPi names always win.
- MCP servers: Deduplicated external servers are fed to sypi-mcp. A server the active profile already defines stays profile-owned.
- Commands: Discovered Markdown slash commands, including cline rules and
copilot instructions) become
/namecommands that expand$1..$N,$ARGUMENTS, and${N:-default}and run the markdown as a prompt. A name a builtin or another extension already claims is skipped and reported in/discovery. - Tools: Exec-format scripts (
.sh,.bash,.py,.jswith shebang) become tools that shell out to the script. TS/JS module tools are counted and reported but not loaded in v1. - Hooks and extensions: Detected and counted in
/discoveryonly. Foreign hooks never execute. Foreign extension packages never load.
One /discovery command reports status: active or inactive with its reason,
per-source and per-kind counts, issues, skipped collisions, and detected but
unexecuted hooks and extensions. It provides quick toggles (enable, disable,
allow, deny, rescan). A Settings row under integrations (category
integrations → External harness discovery) toggles the master switch, the
allow-untrusted bypass, the four kind rows, and all ten source rows
(both / project / user / off).
Configuration lives in the profile discovery block. Absent blocks default to
enabled with every source and kind on, while untrusted projects remain blocked.
When discovery is disabled, no scanning occurs. The command and Settings rows
remain live so discovery can be re-enabled.
It needs no account, API key, token, password, network, or external binary;
installing it requires npm, disclosed in catalog consent.
