Unoff ships with AI agent skills, structured documentation files that give AI coding agents (Claude Code, GitHub Copilot, ChatGPT / Codex, Cursor, Windsurf) deep context about your plugin's architecture, conventions, and APIs, for both Figma and Penpot.
Skills are organized Markdown files that act as modular instructions for AI agents. They live in a dedicated repo (unoff-skills) and describe when to use a capability, how to do it, and what conventions to follow. Unlike generic prompts, skills load on demand and provide guardrails for consistent code generation.
The CLI installs three pieces, each in the format your assistant actually reads:
| Piece | Answers | Source |
|---|---|---|
| Skills | how we build | yelbolt/unoff-skills |
| Specs | what it does | your specs/ folder |
| Agents | who does it | agents/ in the same skills repo |
unoff ai # pick assistants, then install skills, specs, and agents
unoff ai status # what is configured, what is installed
Your choice is saved in unoff.config.json and committed, so the whole team targets the same set of assistants.
unoff add skills
git submodule update --init --recursive
The submodule lands in .unoff/skills/, and each assistant's skills directory gets a symlink to it (for example .claude/skills/unoff-create-plugin). One source of truth: git submodule update --remote refreshes every assistant at once. Run unoff sync skills after changing the assistant list.
Prefer copying files over tracking a submodule? Use skills.sh:
npx skills add yelbolt/unoff-skills
Claude Code users can get skills and agents pre-wired as a plugin instead of running unoff ai:
/plugin marketplace add yelbolt/claude-marketplace
/plugin install unoff@yelbolt
The marketplace is shared with the other Yelbolt plugins, so the first command is only needed once. Later releases: /plugin marketplace update yelbolt.