feat(kilocode): implement skill management and marketplace#11527
Draft
idreesmuhammadqazi-create wants to merge 6 commits into
Draft
Conversation
Add functionality to browse, install, and uninstall skills via the CLI. This includes support for installing skills from tarball URLs, registering local skill folders, and managing a skill marketplace. - Implement `installSkill`, `removeInstalledSkill`, and `installSkillFolder` API endpoints in the kilocode server. - Add TUI components for skill selection and marketplace browsing. - Update the SDK with new kilocode service methods and types. - Add new keybindings for skill management actions in the CLI. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…kill The earlier commit merged createSignal into the existing solid-js import and added the DialogPrompt import inline. Both are Kilo-specific additions in a shared upstream file. Move them into a kilocode_change start/end block and restore the original dialog.setSize position so the upstream diff stays minimal. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
The 4 new skill management actions (browse, install url, install folder,
uninstall) were registered with keybind("none", ...) in a4631bc, which
caused DialogSelect to hide them from the footer (it filters out actions
without a bound key). Bind them to F1-F4 by default so the footer renders
all 4 actions out of the box. Users can rebind via kilo.json.
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
F1 is hijacked by VS Code's command palette in the integrated terminal and F2-F4 are unreliable across terminal emulators. Switch the 4 skill management action keybinds to leader-letter combos (ctrl+x k/i/f/d) matching the existing TUI convention (e.g. ctrl+x b for sidebar, ctrl+x e for editor, ctrl+x m for model list). These are guaranteed to reach the TUI in any terminal, including VS Code's integrated terminal and Codespaces. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Two issues with the skill management dialog actions:
1. Footer actions were only triggerable via keybind. Add onMouseUp
handlers to each action label so users can click them with the
mouse. The handler uses actions().find(a => a.title === item.title)
to look up the original action with proper typing (visibleActions
widens the discriminated union and drops variant-only fields).
Mirrors the requiresSelection logic from the useBindings run()
handler at lines 319-330.
2. Previous keybind attempt used <leader>k/i/f/d (ctrl+x + letter).
The leader mechanism requires two keypresses within the leader
timeout (default 2s) and is fragile in terminal emulators and
Codespaces. Switch to direct ctrl+shift+letter combos that are
captured by neither the TUI nor VS Code's integrated terminal:
browse = ctrl+shift+b
install url = ctrl+shift+i
install folder = ctrl+shift+f
uninstall = ctrl+shift+u
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…face errors Three real bugs in the marketplace browse dialog, all silent: 1. The marketplace API at https://api.kilo.ai/api/marketplace/skills returns application/x-yaml (~28 KB, 40 items, top-level { items: [...] } mapping). The client only tried JSON.parse which threw, falling back to { items: [] }. The dialog saw an empty list and the user had no idea why. 2. The schema declared name/displayName/displayCategory fields that the API never returns (it returns id, description, category, githubUrl, rawUrl, content). Both the Zod schema in marketplace.ts and the HTTP route schema in groups/kilocode.ts were wrong. 3. The dialog had no error/loading/empty UI. Any failure (network, parse, schema) was invisible. Fixes: - Add yaml to packages/opencode/package.json (already a Kilo dep in kilo-vscode and kilo-console). - parseResponse() now tries parseYaml first, then JSON, then empty. - SkillItem/RawSkill schemas match the real 6-field API response. - Server route schema (MarketplaceSkillItem) updated to match. - Dialog title-cases item.id / item.category on the client for display. - Dialog surfaces data.error in the footer (loading/error/empty).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add functionality to browse, install, and uninstall skills via the CLI. This includes support for installing skills from tarball URLs, registering local skill folders, and managing a skill marketplace.
installSkill,removeInstalledSkill, andinstallSkillFolderAPI endpoints in the kilocode server.Issue
Fixes #
Context
Implementation
Screenshots / Video
How to Test
Manual/local verification
Reviewer test steps
Blocked checks and substitute verification
Checklist
Get in Touch