Skip to content

Use skills

Kora reads SKILL.md files from the directories below. Add a file, then open the / palette in the chat composer to use it.

Kora scans six directories plus custom skills defined in Settings and any prompts exposed by connected MCP servers.

Scope Directories
Global ~/.claude/skills/, ~/.agents/skills/, ~/.kora/skills/
Project <project>/.factory/skills/, <project>/.opencode/skills/, <project>/.agents/skills/

Project skills override global ones with the same name. Each skill lives in its own subdirectory as a SKILL.md file (a standalone .md file in the directory root also works if it has name or description frontmatter).

---
name: my-skill # required (falls back to directory name)
description: One line # required
triggers: "..." # optional, comma-separated
---
Prompt body.

Optional fields: allowed-tools, context7-libs, user_invocable (defaults to true).

Settings → Skills includes a marketplace backed by skills.sh. Search skills by name and install or uninstall them without leaving Kora:

  • Search returns the skills published on skills.sh, with their descriptions.
  • Install adds the skill to Kora; it then appears in the / palette like any other skill.
  • Uninstall removes an installed skill. Installed entries show an Installed badge.
  • Type / in the chat composer to open the skill palette, then select a skill.
  • A skill whose triggers match a phrase in your message activates automatically — works in Italian and English (verbs like usa, use, attiva, run, applica).
  • The model can invoke a skill by name via the skill tool.

Skills are isolated per session. A skill loaded by the skill tool is registered for the active session only — it does not leak into other sessions running against the same project. The composer shows the active skill chips after sending and after remounting the panel. Each chip has an X to remove it for upcoming turns; a Clear all link drops the entire set in one click.

  • Skill not in / palette → the file is not in a recognized directory, the frontmatter has unbalanced --- fences, or user_invocable: false is set.
  • Triggers don’t fire → triggers are matched as case-insensitive substrings; words shorter than 2 characters are dropped. Re phrase your message using the skill’s exact trigger.
  • Project skills don’t load → the directory name must be exactly .factory/skills, .opencode/skills, or .agents/skills under the project root.
  • MCP prompts missing → confirm the MCP server is connected (see MCP servers); prompts are loaded only when the server is up.
  • Active chip stays in the composer after I expected it to clear → the chip is per-session; it clears the next time you start a new session, or when you click X or Clear all.