Settings: Capabilities
The Capabilities panel (/settings/capabilities) merges two formerly separate panels into a single tabbed page: Skills (the old Skills Hub, for managing skill packs) and MCP & Voice (the old Tools page, for MCP servers, image generation, and speech-to-text).
The left sidebar entry is labelled Skills & Tools and navigates to /settings/skills (the standalone Skills page). This Capabilities panel is at /settings/capabilities and is reached via the router directly or via the /settings/tools redirect. See the URL table below for the full redirect map.
Skills tab
Section titled “Skills tab”The Skills tab embeds SkillsHubSettings without its outer wrapper. This is the older skill hub component; the standalone /settings/skills route uses a newer SkillsSettings component with a different layout (filter rail, health bar, detail drawer). The controls available in this tab are described below.
Discovered external skills
Section titled “Discovered external skills”When Wayland finds skills in the directories of other CLI tools, they appear in this section before your own library. Skills are scanned from the following locations:
| Source | Path |
|---|---|
| Global Agents | ~/.agents/skills |
| Gemini CLI | ~/.gemini/skills |
| Claude Code | ~/.claude/skills |
| OpenCode | ~/.config/opencode/skills |
| OpenCode (alt) | ~/.opencode/skills |
| Custom paths | Paths you register via “Add Custom Skill Path” |
Custom paths are stored in custom_external_skill_paths.json inside the app’s working directory. Each path is validated against an allowlist of approved directories at both registration time and enumeration time; paths outside that allowlist are silently skipped.
Import a discovered skill to copy it into your user skills directory. Import All copies every skill from the active source tab in one step. Refresh rescans the above locations without restarting.
My skills
Section titled “My skills”Your installed skills. Each row shows the skill name, description, and a badge: Built-in (shipped with the app) or Custom (added by you). Hover a row to reveal Export and Delete actions.
- Export copies the skill (as a symlink) to a discovered external source directory you choose from a dropdown. Available only when at least one external source is detected.
- Delete is available only for custom skills. Built-in skills cannot be removed here.
The path to your user skills directory is shown below the toolbar:
<app-data>/skills/Built-in skills are kept in:
<app-data>/builtin-skills/Both paths are resolved at runtime by the app and displayed in the UI for reference.
Extension skills
Section titled “Extension skills”Skills contributed by installed extensions appear in a separate section, badged to distinguish them from built-in and custom skills. They have no delete action here; uninstalling the extension removes them.
Auto-injected skills
Section titled “Auto-injected skills”Skills listed here are injected into every agent automatically. They are app-managed and cannot be toggled or removed from this panel.
MCP & Voice tab
Section titled “MCP & Voice tab”The MCP & Voice tab has three sections: MCP Servers (a redirect to the MCP Library), Image Generation, and Speech-to-Text.
MCP Servers
Section titled “MCP Servers”This section links out to the MCP Library full-page view (/settings/mcp-library/installed). The old inline CRUD for adding and editing server rows was removed when the MCP Library page was introduced. Configure MCP servers there.
Image generation
Section titled “Image generation”Enable or disable the built-in image generation MCP server. The toggle requires a model to be selected first; it is disabled when no image-capable model is configured.
| Control | Description |
|---|---|
| Model selector | Choose a provider and model. Only providers that include a model whose name contains image, banana, or imagine appear in this list. |
| Enable toggle | Starts or stops the built-in image generation server and syncs it to all agents. |
| Agent status | Badge showing which agents the server is installed for, visible when the server is enabled. |
The selected provider, base URL, API key, and model name are written to the built-in server’s transport.env as WAYLAND_IMG_PLATFORM, WAYLAND_IMG_BASE_URL, WAYLAND_IMG_API_KEY, and WAYLAND_IMG_MODEL. The API key is kept in sync with the key stored on the provider record in Models settings; if you remove a provider, the image generation config clears automatically.
Speech-to-text
Section titled “Speech-to-text”Enable voice input for the chat box. Configuration is stored at tools.speechToText in app config.
| Provider | Required fields | Notes |
|---|---|---|
| OpenAI | API key (via Providers) | Uses whisper-1 by default. Base URL and language are optional. The API key is entered in Models settings, not here; a “Open Providers” button links there. |
| Deepgram | API key | Uses nova-2 by default. Base URL, model, language, detect language, punctuate, and smart format are configurable. |
| Whisper (local) | None | Runs on-device. Choose base or small model. The model file downloads from Hugging Face (ggerganov/whisper.cpp) on demand. The UI shows an installed state with a re-download option. |
A microphone check widget is always shown after selecting a provider, so you can confirm your input device is working before relying on voice input.
Whisper model locations
Section titled “Whisper model locations”| Model | Asset ID | Source URL |
|---|---|---|
base | whisper-ggml-base | https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin |
small | whisper-ggml-small | https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin |
Install state is checked via voiceAsset.exists on load and after any download. A cancel button stops an in-progress download.
Text-to-speech
Section titled “Text-to-speech”Enable voice output. Configuration is stored at tools.textToSpeech in app config.
| Control | Description |
|---|---|
| Provider | kokoro-local (on-device) or system-native (OS speech synthesis). |
| Voice | Free-text voice name passed to the provider. |
| Speed | Slider from 0.5x to 2x in 0.1 increments. |
| Auto-read responses | When enabled, assistant responses are spoken automatically. |
| Test voice | Plays a short phrase via window.speechSynthesis regardless of stored provider, as a device sanity check. |
When kokoro-local is selected, a Download Model button fetches the Kokoro ONNX model from:
https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/kokoro-v1.0.onnxAsset ID: kokoro-onnx-model. Install state is probed on mount and clears to a re-download option once the file is present.
URL and tab switching
Section titled “URL and tab switching”| URL | Result |
|---|---|
/settings/capabilities | Opens on the Skills tab (default). |
/settings/capabilities?tab=skills | Opens the Skills tab. |
/settings/capabilities?tab=tools | Opens the MCP & Voice tab. |
/settings/skills-hub | Router redirect to /settings/skills (the full Skills page, not this panel). |
/settings/tools | Router redirect to /settings/capabilities?tab=tools. |
Tab switches update the URL in place (replace, not push) and preserve other query parameters.
The settings modal sider uses a separate remap table (LEGACY_ANCHOR_REMAP in SettingsSider.tsx). In that context, the tools and mcp anchor IDs both resolve to the mcp-library sider entry, and the capabilities anchor resolves to skills. These remap only when navigating within the modal; the router paths above apply to full-page settings navigation.