Writer author documentation
Writing skills and extensions
Install reusable writing guidance, understand the skill format, and know when to use an extension.
Install a writing skill
Open Writer's add-ons folder from settings. Skills live in
~/.writer/addons/skills/. Drop a Markdown file there, or place a
folder containing SKILL.md there. Restart Writer, then ask a
frame's agent to use the skill by name (for example, “Use Editorial design
to improve this section”). The loader also rereads skill files for new
prompts, so edits apply to the next request without replacing the app.
Deleting a file removes its instructions from subsequent prompts.
A loose file can contain plain instructions. Optional YAML frontmatter provides a readable name and description:
---
name: Editorial design
description: Turn comparisons into tables and key points into cards.
---
Preserve the current article's facts. Use Markdown headings and comparison tables.
Use Writer's supported card format for an important takeaway.
See examples/skills/editorial-design.md for a complete example. A
skill provides guidance; it does not add tools or make unsupported HTML,
scripts, or components render in Writer. The agent receives the full
instructions for all successfully loaded skills and is instructed to apply
relevant skills, subordinate to the current request and Writer rules. This
works across provider routes without relying on a vendor's skill-directory
discovery.
Skills are restricted to the Writer-owned folder. Symbolic links are rejected;
ambient Pi, Claude, Codex, and document directories are not searched. Each
file must be UTF-8 and at most 32 KiB; up to 32 skills and 128 KiB of
instructions are loaded. Bad YAML, duplicate file/folder ids, and oversized
files appear as add-on diagnostics instead of preventing valid skills from
loading. Related scripts or files alongside SKILL.md are not
automatically loaded or executed.
Extensions
Extensions are executable local code, unlike instruction-only skills.
Discovery reads
~/.writer/addons/extensions/<folder>/manifest.json without
executing its entry file. See
the extension authoring guide for the
supported runtime contract, installation instructions, and an offline example.