Skip to content

Getting Started

m4bwav edited this page Oct 9, 2026 · 2 revisions

editwright is a plugin with one skill. The skill is a folder: SKILL.md (the rules and the passes), kb/ (editing knowledge the agent reads on demand), references/suggestion-format.md and scripts/ew.py. Every install route puts that folder where your agent looks for skills.

What it needs

  • Python 3.9 or newer, standard library only. Nothing to pip install. The CI runs the tests on Python 3.9 and 3.14 on Linux, macOS and Windows. These pages were run on Python 3.14.4 on Linux and 3.14.6 on Windows; 3.9 was not run for them.
  • An agent that runs skills and can run commands: Claude Code, GitHub Copilot CLI, or another agent that reads SKILL.md. Claude Desktop and claude.ai take the skill as an upload (not tested for these pages).
  • Optional: readwright for EPUB and PDF manuscripts. ew.py reads text, Markdown, Fountain and .docx itself.

Install

Claude Code

/plugin marketplace add m4bwav/editwright
/plugin install editwright@editwright

Not run for these pages, since it changes the agent's own settings. The plugin manifest passes claude plugin validate . (run on the v0.1.1 checkout on 2026-10-09).

GitHub Copilot CLI

copilot plugin marketplace add m4bwav/editwright
copilot plugin install editwright@editwright

Not run for these pages.

gh skill (gh 2.90 or newer)

gh skill install m4bwav/editwright editwright

This was run with gh 2.100.0 and --dir pointing at a scratch folder. It installed the skill from the latest release tag (v0.1.1, on 2026-10-09), with scripts/ew.py, kb/ and references/ in place. Without --dir, gh picks the folder for your agent (--agent, --scope); run gh skill install --help for the list.

claude.ai and Claude Desktop

Download editwright.zip from the latest release, then go to Customize > Skills > Upload skill. The 0.1.1 zip holds 21 files under one editwright/ folder, including SKILL.md, scripts/ew.py, the ten kb/ files and their INDEX.md (listed on 2026-10-09). The upload itself was not tested for these pages.

A first job

You do not need to run ew.py yourself. Ask in your own words:

  • "edit my short story ./story.md"
  • "give me an editorial letter for chapter 3"
  • "proofread this essay"
  • "coverage on my script"
  • later, "apply S-003 and S-007"

The agent asks only what it cannot infer: the genre, the level of edit and your name for your preferences file. Then it works through the steps on How it works: intake, a full read, the passes from big to small, a hand-over where it stops and waits for your choice, and the apply.

To see what the script does on its own, copy ew.py into a folder with a story and run it there. The examples on these pages use --works works, which keeps the works store in a works folder beside the story. Leave --works out and the store is ~/editwright-works (see Works store and privacy).

$ python3 ew.py --version
editwright 0.1.1
$ python3 ew.py --works works intake story.md --work the-salt-road --title "The Salt Road" --author "Test Author" --genre short-story --level full
job: works/the-salt-road/jobs/20261009-1-full
source sha256: cdfeb8dcbc53776821db0c623bac936ce182c087ee6980279f3cdf16854f0aff (snapshot source.md, read-only)
clean.md: 133 words, 9 paragraphs; cleanup rules applied: 2 (cleanup-log.md); word check passed
mode: human-authored; AI-word limit for short-story: 0 words / 0.0%
author preferences: works/authors/test-author.md (none yet)

The rest of that job is on Commands. On Windows, run python instead of python3.

Updating and removing

Each route has its own update path (/plugin in Claude Code, copilot plugin, gh skill update, a new upload on claude.ai). None was run for these pages. Removing the plugin does not touch the works store: your manuscripts' snapshots and notes stay where they are until you delete them.

Clone this wiki locally