Skills & agents
The cross-adapter skills registry, named agent profiles, and the workspace sidebar that browses both.
A skill is a SKILL.md file (markdown body + YAML frontmatter) that any agent inside atrium can load on demand. A named agent (or _agent profile_) is a saved bundle of an adapter, a system prompt, and a list of attached skills — addressable by a kebab-case slug like qa or code-reviewer. Together they're the reusable building blocks of agent workflows: write a runbook once, attach it to any agent, spawn that agent in one keystroke.
Both live in the Skills & Agents view of the workspace sidebar, alongside the file tree and overview modes.
The skills registry
atrium scans three sources on startup and watches them for changes:
- atrium-managed.
~/.atrium/skills/(user scope, available across every workspace) and<workspace>/.atrium/skills/(project scope, scoped to one repo). Cross-adapter — every installed adapter can read them. - Harness-installed.
~/.claude/skills/,~/.codex/skills/,~/.gemini/skills/,~/.cursor/skills/, plus the per-workspace variants (<workspace>/.claude/skills/etc.). These are the tool-native skill directories — when you install a skill into Claude Code's own catalog, atrium picks it up automatically. - vercel-labs/skills. The published vercel-labs/skills catalog. Skills here aren't installed until you ask atrium to fetch them — they're browse-only entries in the registry until then.
scripts/ / references/ / assets/ directories, and a provenance overlay (the colored accent strip on the section header tells you which source the skill came from).
When the same skill name appears under multiple adapters at the same scope, atrium collapses them into a single composite row with adapter chips — so a code-review skill installed in Claude Code _and_ Codex shows up once, not twice, with both adapter icons in the row.
The Skills & Agents sidebar mode
The workspace sidebar title is a mode switcher. Click it to flip between:
- Workspaces — the file tree of the active workspace plus the list of all workspaces.
- Overview — every workspace with its active agent sessions and recent activity.
- Skills & Agents — the registry view, with Skills and Agents subtabs.
Skills subtab
Search filters by name and description live. A source-filter dropdown lets you hide entire sources (e.g. show only atrium-managed skills, hide vercel-labs catalog entries). A workspace-scope chip filters project-scoped entries to the active workspace.
Sections render in this order: atrium (cross-adapter), then one section per adapter (Claude Code, Codex, Gemini, Cursor Agent) for harness skills, then vercel-labs/skills at the bottom. Each section header has an adapter brand icon, a count, and a chevron to collapse it.
Right-clicking a row (or clicking the ⋮ kebab) opens the row menu with six actions:
- View metadata — opens a read-only modal showing the skill's frontmatter, file path, body size, and bundle size.
- Mention in active session — inserts a
+namesigil into the focused agent pane's composer. - Open in editor — opens the SKILL.md in a Markdown editor pane. Disabled for harness and vercel-labs skills, since those are managed by their installer's own tools.
- Copy invocation command — copies the universal
$ATRIUM_CLI_PATH skills load <name> --provenance <scope>form. - Copy composite id — copies the
{scope}:{name}identifier you can paste anywhere atrium accepts a skill reference. - Reveal in Finder — opens the skill's directory in macOS Finder.
Agents subtab
Each agent row shows its name, slug, attached-skill count, last-used relative time, and a strip of provenance dots (one per attached skill, color-coded to that skill's source). Row actions: Edit (opens the agent editor), Duplicate (creates a copy with a -copy suffix), ⎘ (copies the slug for use in a ++slug mention), ▶ (opens the Launch Agent modal), and the ⋮ kebab.
Creating a skill
The + New skill button in the Skills toolbar opens a two-stage scaffold modal.
Stage 1 — Where should the new skill live? Three radio options:atrium:user— writes to~/.atrium/skills/<slug>/SKILL.md, available across every workspace.atrium:project— writes to<workspace>/.atrium/skills/<slug>/SKILL.md, scoped to the active workspace. Disabled when no workspace is open.install via vercel-labs/skills— punts to the install dialog (see below).
name or description keys, malformed YAML, or a name that doesn't match the directory all surface inline. Skills that fail frontmatter parsing still appear in the registry with a warning badge — they just can't be invoked until the issue is fixed.
Installing a skill from vercel-labs/skills
Pick vercel-labs in the scaffold modal (or hit the Browse vercel-labs/skills entry point) to open the install dialog. Search the catalog, then check one or more target scopes before clicking a skill's Install button:
- atrium (user) — installs to
~/.atrium/skills/<slug>/. Available everywhere. - atrium (workspace) — installs to
<workspace>/.atrium/skills/<slug>/. Disabled when no workspace is open. - Claude Code — installs to
~/.claude/skills/<slug>/. - Claude Code (workspace) — installs to
<workspace>/.claude/skills/<slug>/. - One row each for Codex, Gemini, and Cursor Agent, with matching (workspace) variants for installed adapters.
Named agents
An agent profile is { slug, name, description, adapter, prompt, attachedSkills }, persisted under ~/.atrium/profiles/. Every field except the slug is editable from the editor; the slug is the immutable identifier you reference with ++slug (see Sigils & auto-injection).
The agent editor
Opens from + New agent or Edit on a row. The header is Name / Slug / Description; the body is split into:
- Prompt — a markdown editor with the agent's system prompt. Loaded once at launch.
- Attached skills — a search-first picker. Type to filter the entire registry; the dropdown shows composite rows (one row per skill across all adapters where it exists, with adapter chips inline) so you can pick
code-reviewonce and have it resolve to whichever adapter the spawned agent uses. Already-attached skills appear in a list below the picker; each has a mode toggle (always-loaded vs discovery — see Skill modes) and an×to remove.
Launching a named agent
The ▶ button on a row opens the Launch Agent modal. It reuses the same adapter-tile picker as the task launcher, plus an execution mode selector:
- Current branch — spawns the agent in the active workspace, on whatever branch is currently checked out.
- Fresh worktree — creates a new git worktree off a base branch, opens it as a new workspace, and spawns the agent inside it. Useful for running an agent in isolation without disturbing your current branch state.
++<slug> so the UserPromptSubmit hook expands the profile body in-place (or, on Cursor, the agent reads the fallback context note and pulls it via atrium agents load <slug>).
Where this fits
- Skills are runbooks — instructions the agent reads.
- Agents are pre-configured CLI sessions — system prompt + skills + adapter, bundled.
- The sidebar is how you browse and manage both.
- The
+skilland++agentsigils are how an in-pane agent (or you) actually loads them.
