Skip to content

Editor skills

Noemata is built for humans and agents to author frames together. For an agent to be useful in a workspace, it has to know the authoring model — what a frame is, how views and blocks fit together, which packs are installed. The noemata integration teaches it, by writing skills into the coding agents on your machine. It’s one of the always-installed integrations (see Integrations).

What a skill is

A skill is a bundle of instructions an agent loads when it’s relevant. The one Noemata ships, noemata-overview, is a high-level orientation: what Noemata is, the shape of a route (a frame holding a data view, and a page of blocks beside it), example frames, blocks and expressions to learn the model from, which packs are guaranteed installed, and links into the docs at @frames/@noemata/docs/. An agent working in your project picks it up and can author frames instead of guessing at the schema.

Because the docs also ship as the @noemata frame pack, the skill and the pages you’re reading now point at the same content — the agent reads the authoring guides from disk, the same way you browse them in the app.

Where skills install

Skills anchor at the repository root — where Claude Code and Cursor resolve them from — so one set serves every Noemata project in the repo. Outside a git tree they land in the project directory instead. When that root is above the project, setup names the directories and asks before writing them; declining records skills: false.

Under that root they’re written per host. Noemata always writes the universal location, and additionally writes a host’s own directory when it detects that host on your machine:

  • .agents/skills/ — the universal alias. Written every time, regardless of what’s detected. Codex and other Agent Skills-compatible hosts read this path.
  • .claude/skills/ — Claude Code. Written when the claude binary is on PATH.
  • .cursor/skills/ — Cursor. Written when cursor or cursor-agent is on PATH.

Detection is by binary presence and independent of telemetry integration selection. A detected skill host receives skills even when it has no telemetry integration.

Controlling installs

Skill writes are gated by integrations.skills in noemata.json:

{ "integrations": { "skills": true } }
  • true (the default) — install to every detected host.
  • false — install to none.
  • a host selector ("claude", "agents", or "cursor"), or an array of them — install to exactly those hosts, whether or not their binary is detected.

The --skills / --no-skills flag on noemata up takes precedence over the config for a single run. --no-skills reconciles everything else — packs, collector, service configs — but writes no skills.

This is the only setting that governs them. integrations.external_edits covers writes that leave the repository, such as ~/.claude/settings.json; the skills stay inside it, so declining those still installs them.

When you disable the noemata integration, reconciliation sweeps the noemata--prefixed skill directories from every known host, so your repo doesn’t carry orphaned skills.