Skills
A skill is reusable instruction — the knowledge of how to do something properly, written down once so Kay applies it every time instead of you re-explaining it. Skills don’t grant Kay any new capability; they shape how it uses the capabilities it already has. A skill is a directory with aSKILL.md in it:
skill://skills/authoring before creating or
improving a skill. That guide owns descriptions, structure, references,
specializations, and verification. The example above is a source file for a
repository; when Kay creates a personal skill through skill://, its tools
serialize the file from structured fields.
Where skills come from
1
Your own machine
Drop the skill directory in
~/.kay/agent/skills/<name>/SKILL.md and it’s
available to Kay.2
A project you're working in
A
.kay/skills/ directory inside a project applies whenever Kay is working
in that project — this is how a team ships its conventions alongside its
code. Kay also reads .claude/skills/, so an existing Claude Code skill
library works as-is.3
A shared repository
Ask Kay to add a skill source and point it at a git repository. Kay stages
it and asks the user to approve the source before syncing anything from it.
Approved sources can later be refreshed, revoked, or removed from the
Skills sidebar.
Plugins
A plugin is a package that Kay loads at startup and that can contribute:- Tools the agent can call
- Integrations — a connected service with its own sign-in, so the agent can reach an external API on the user’s behalf
- Addressable resources under its own
scheme://, which the agent browses and reads the same way it reads anything else - Skills bundled with the plugin, carrying the judgment its tools need
- Pages — full React apps hosted inside Kay’s workspace
How a user installs one
Plugins are distributed as git repositories, and installing one is a conversation rather than a package manager.1
Point Kay at the repository
The user asks Kay to add a plugin source. Kay stages it — no code is fetched
yet.
2
The user approves the source
A review card appears in the conversation. Approving it is what grants
trust, and it’s a decision only a human can make in Kay’s own UI — the agent
can stage a source and read its status, but can never approve one.
3
The user enables the plugin
Approved plugins appear in Settings → Plugins, each starting disabled.
Enabling one is a second, separate approval.
The approval model
One principle runs through all of the above, and it’s worth understanding before you design anything: the agent can propose, but only a human can grant. Kay’s agent can stage a skill source, stage a plugin source, request a permission, or ask to connect an integration. It cannot approve any of them, and it cannot route around them — installing a plugin by writing files into the plugins directory doesn’t work, because that path is consent-gated and fails closed rather than loading whatever it finds. Build with that grain rather than against it. An extension that needs a capability should ask for it explicitly and describe honestly what it does with it, because that description is what the user reads when deciding.What isn’t public yet
Kay is in private beta, and so is the developer surface:- The plugin SDK is published, but not publicly.
@yaklabs-ai/plugin-sdkand@yaklabs-ai/plugin-protocolship to GitHub Packages at matched versions, and both are private — installing them needs membership of theyaklabs-aiGitHub organization. So plugin authoring is limited to Yak Labs and design partners for now. Installing an already-built plugin from a repository works for anyone. - MCP servers are not available on the released build. Support for connecting external Model Context Protocol servers exists and is in internal testing, but it doesn’t ship in the current public release.
Quickstart
Install Kay and run your first task.
Kay home
What Kay is and who we build it for.