Skip to content

KestrelEverything is a plugin.

A kernel, an agent runtime and a plugin host behind one small protocol. Run agents on any desktop OS or orchestration platform; drive them from a browser, desktop shell or phone.

Kestrel

One runtime, many shapes ​

bash
# Anywhere Node 22 runs
pnpm install && pnpm build
KESTREL_PLUGINS=plugins,examples/plugins node apps/server/dist/bin.js

# Or a container
docker build -t kestrel . && docker run --rm -p 7331:7331 -v "$PWD:/workspace" kestrel

The server exposes a small REST surface plus an event stream. The bundled console is a static application: it can be served by the agent host, by a CDN, or wrapped by a desktop or mobile shell without changing a line of agent code.

What "plugin" means here ​

ConcernPluginContract
Model access@kestrel/plugin-openai, @kestrel/plugin-anthropicprovide models
Filesystem and shell tools@kestrel/plugin-tools-coreprovides tools
Durable notes@kestrel/plugin-memoryinjects tools, provides memory
Model Context Protocol@kestrel/plugin-mcpinjects tools, provides mcp
Skills@kestrel/plugin-skillsinjects prompts, tools, provides skills
Delegation@kestrel/plugin-subagentsinjects sessions, tools, prompts, provides subagents
Your productanything in plugins/whatever you declare

There is no privileged core plugin. tools-core is simply the plugin that happens to ship with the repository. Removing it yields an agent that can still talk, but cannot touch the workspace.

Where to go next ​

  • Quickstart — run the server and console in five minutes.
  • Architecture — how the kernel, runtime and transport fit together.
  • Writing a plugin — add a tool, a provider or a whole subsystem.
  • Protocol — build a client in any language.

Released under the MIT License.