Overview
Beacon Skills are Agent Skills that let an agent in any harness run Beacon’s cross-harness memory loop. An agent working in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, or another supported harness can use them to recall what earlier sessions learned about a repository. It can also turn a recent session into a reviewed lesson, and promote that lesson into a skill the whole team loads. The skills do not replace Beacon’s capture or review model. They tell the agent whichbeacon commands to run and when to stop and ask. They keep the person reviewing in
control of every write to memory.
Requirements
- The Beacon CLI on
PATH, with endpoint capture installed so traces exist. See the quickstart. - For
beacon-memory-distillonly: an evaluator key inTYPESAFE_API_KEYorBEACON_JEV_API_KEY, orBEACON_JEV_ENDPOINTpointing at your organization’s compatible evaluator. Recall and promote need no key.
beacon mcp serve) in harnesses
that accept MCP servers from plugins. When the server is available, recall uses the
get_memory_context tool. Otherwise it falls back to beacon memory list.
Install
Beacon Skills install from theasymptote-labs/agent-beacon repository. Most harnesses
read its plugin marketplace directly:
Plugin installs also register Beacon’s local MCP server. Package, power, and skills
installs add the skills only, and recall falls back to
beacon memory list.
In Claude Code the skills appear as /beacon:beacon-memory-recall,
/beacon:beacon-memory-distill, and /beacon:beacon-memory-promote. Every harness also
loads them on its own when a request matches.
Using the skills
You rarely name a skill. Each one describes when it applies, and the harness loads it when your request matches.1
Recall before work
Starting a non-trivial task, or hitting a failure that might have a known fix,
triggers
beacon-memory-recall. The agent retrieves up to five approved memories
for the current repository. When one changes what it does, it cites the memory’s
ID. It treats memory as lessons from earlier sessions, not as policy. When a memory
conflicts with your instructions or the repository’s docs, the agent follows you and
the docs and says so.2
Distill a session into memory
Ask something like “turn yesterday’s packaging fix into memory” or “review the Beacon
memory candidates”.
beacon-memory-distill then:- Selects the traces you named, or proposes a short list.
- Runs
beacon memory evaluations run --dry-runand shows the selection and estimated cost. - Asks before the evaluation call, and runs it only on the selection you approved.
- Reads the source trace behind each candidate and drafts a lesson: title, kind, applicability, and body, each tied to the trace events that support it.
- Shows every draft with a recommendation to approve, reject, or supersede, and records only the decisions you confirm.
3
Promote memory to a skill
Ask to “make this a skill”.
beacon-memory-promote previews the generated skill,
checks it for anything that should not be committed, and installs it at
.agents/skills/<slug>/SKILL.md once you confirm. Committing it shares it with
every teammate and every harness that reads .agents/skills.Why the agent writes the lesson
The evaluator returns probabilities, such as how likely the task succeeded and how likely the trace holds a reusable lesson. It does not return lesson text. On its own, an approved candidate would say only that no lesson text was extracted.beacon-memory-distill closes that gap. The agent reads the trace, writes the lesson,
and you approve it with the reviewed text:
beacon memory for every
flag.
Privacy and control
- Nothing runs from hooks. The skills act only when an agent loads them in response to a request.
- One networked step. Only the evaluation in
beacon-memory-distillleaves the machine, after a dry run and your explicit yes. It sends the bounded, redacted trace projection described in Jev evaluation. - Keys stay out of the chat. The agent checks whether a key is set without printing it, never asks you to paste one, and never passes it on the command line.
- No silent writes. Approving, rejecting, superseding, and installing a skill each need your confirmation.
- Memory is shared, so it stays clean. Lessons must not contain secrets, tokens, credentials, internal hostnames, customer data, or personal details, even when the trace does.
Publishing and source
The skills live inagent-skills/
in the Beacon repository. One skills/ directory serves every harness through its own
manifest: .claude-plugin/plugin.json for Claude Code, an Agent Plugins plugin.json
for Codex, Copilot, VS Code, Kiro, and Devin, .cursor-plugin/plugin.json for Cursor,
kimi.plugin.json for Kimi Code, and gemini-extension.json for Gemini CLI. At the
repository root, .claude-plugin/marketplace.json is the marketplace most harnesses read,
.cursor-plugin/marketplace.json is Cursor’s, and package.json makes the repository a
Pi and Prime Agent package.
A test in the CLI checks every beacon command and flag the skills mention, so a change
that renames one fails the same pull request.
Related
Cross-harness memory
How traces become reviewed project memory.
beacon memory
Evaluate traces, review candidates, and install skills from the CLI.
beacon mcp
Serve approved memory to MCP clients.
beacon endpoint traces
Browse and search the traces the skills read.