silo-code/silo/silo-extension-builder
Claude Code and agent skill by silo-code/silo
- community
Checking that the SKILL.md file is still in the repository.
Help the user design, write, compile, and install a Silo extension
Install
npx vskill@latest install silo-code/silo/silo-extension-builderSKILL.md
Extension Builder
Turn a natural-language description into a working Silo extension. The extension is real, publishable TypeScript — not a prototype or a hack. silo install drops it into Silo immediately; silo uninstall removes it cleanly.
Arguments
The skill accepts two optional arguments: id and path.
- `id` — the extension id (e.g.
dave.clock). If not provided, ask the user. - `path` — the directory to create the extension in. If not provided, default to
/tmp/silo-ext/<id>and confirm with the user.
Parse arguments from the invocation line. Examples:
/silo-extension-builder id=dave.clock— id given, use default path/silo-extension-builder path=~/projects/my-ext— path given, ask for id/silo-extension-builder id=dave.clock path=~/projects/my-ext— both given, skip both questions/silo-extension-builder— neither given, ask for both before proceeding
Workflow (always in this order)
- Resolve args — extract
idandpathfrom the invocation; ask the user for any that are missing - Scaffold — run
npx create-silo-extensionto create the directory structure and manifest - Plan — identify which
ctx.*APIs the extension needs (see API Reference below) - Write the implementation to
<path>/src/index.tsx(overwrites the scaffold placeholder) - Compile with esbuild (output to
<path>/dist/index.js) - Ask — show the user the compiled output path and ask if they want to install it now
- Install (only if the user says yes) via
silo install <path> - Tell the user what to look for in Silo
Choosing an extension id
If the user didn't supply one, ask before writing any files. Pick a namespaced id that reflects what the extension does: dave.clock, dave.tasks, dave.git-branch, etc. The user's name or handle makes a natural namespace.
Step 2 — Scaffold
Run create-silo-extension with all known args to avoid interactive prompts. Prefer the local build when inside the Silo repo; fall back to npx otherwise:
This creates <path>/src/index.tsx (placeholder) and <path>/package.json. Skip this step if the directory already exists from a previous run.
Step 3 — Source file shape (write over the scaffold placeholder)
Step 4 — Compile
The scaffold's package.json includes build (one-shot) and dev (watch) scripts wired to esbuild with the correct flags. Use npm run dev for interactive iteration.
Step 5 — Tell the user what to look for
There is no programmatic verification — Silo is a production desktop app. Describe what appeared and where:
- Status bar item: "A clock now appears on the left side of the status bar."
- Side panel: "Open the left sidebar and click the Tasks icon to see the panel."
- Command: "Run it via the command palette (⌘K → 'Tasks: Add item')."
- Extensions panel: "It should appear in Settings → Extensions with an Uninstall button."
Iteration
To rebuild: cd <path> && npm run build, ask the user if they want to reinstall, then silo install <path> if they confirm. Silo replaces the installed version.
To remove: silo uninstall <id>
Publishing
When the extension is ready to share:
- Move source to a proper project directory
npm publish- Others install it from Silo's Extensions settings page by typing the package name
API Reference
Registration — what activate(ctx) can register
Commands — named, invokable actions:
Status bar items — widgets in the strip at the bottom:
Side panels — left or right column panels:
SidePanelProps: { active: boolean, storage: ExtensionStorage, hydrated: boolean }
Settings pages — a page in the Settings dialog:
Menu items — entry in File/Edit/View/Window menu:
Keybindings — keyboard shortcut:
Avoid `registerDockPanelKind` — dock kinds can't be cleanly removed without a reload.
Services — what ctx.* provides
`ctx.process.exec(cmd, args, opts?)` — one-shot subprocess:
`ctx.workspaces` — reactive workspace state:
`ctx.editors` — editor/document model:
`ctx.files` — filesystem:
`ctx.ui` — toast notifications, file pickers, modals:
`SidePanelProps.storage` — persisted key/value per panel:
React patterns
Reactive workspace subscription (get active workspace folder):
CSS theming — always use design tokens, never hard-code colors/fonts:
Example Prompts
Git branch status bar:
/silo-extension-builderCreate a status bar item on the left that shows the current git branch for the active workspace, with a dot when there are uncommitted changes. Update when the active workspace switches.
Workspace task list:
/silo-extension-builderCreate a right-side panel called "Tasks" with a persistent to-do list. Items have a checkbox and a delete button. Persist tasks so they survive app restarts.
GitHub issues panel:
/silo-extension-builderCreate a right-side panel called "Issues" that fetches open GitHub issues for the active workspace's repo usinggh issue list --json number,title,url. Show a refresh button and make each issue a clickable link. Load lazily on first open.
Open PRs panel:
/silo-extension-builderSame as the Issues panel but for pull requests — call it "Pull Requests", usegh pr list --json number,title,isDraft,url, and dim draft PRs.
Scratch pad:
/silo-extension-builderA right-side panel called "Scratch Pad" with a full-height textarea, persisted via storage so notes survive restarts. Use Silo's theme tokens for colors and the monospace font.
Word count status bar:
/silo-extension-builderA right-aligned status bar item showing the word count of the currently active editor. Update when the active editor changes.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/silo-extension-builder/SKILL.md
Popularity
- Repository stars
- 58
- Repository forks
- 5
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/silo-code/silo/silo-extension-builder)