Claude Code skill
The Octa Editor skill teaches Claude Code how to work with your site’s content. Ask for a change in plain language, such as “shorten the meta description on /about/” or “add a draft page under Services”, and Claude finds the record, previews the write and saves it through the REST API.
The skill needs nothing installed on the site beyond Octa Editor itself. It talks to the same pipeline as the panel and the bulk importer, so identity, validation and warnings behave identically.
What the skill does
Section titled “What the skill does”The skill covers posts, pages, custom post types and taxonomy terms. It reads, updates and creates them, including ACF fields, SEO title and description, taxonomy assignment and parent pages. It never deletes anything, because Octa Editor has no delete operation.
Every write follows the same loop. Claude reads the record, sends only the keys it changes, runs a dry-run and checks that the preview targets the expected record and changes only the intended keys. Then it writes. Updates carry the record’s modification time as a lock, so an edit someone made on the site after Claude read the record is never overwritten.
Claude asks before it publishes new content, changes a slug, status or parent, or writes more than a handful of records at once. A preview with an unexpected change or warning stops the work and gets reported instead of saved.
Install
Section titled “Install”Download the skill into your user-level skills folder, so it works in every project.
mkdir -p ~/.claude/skills/octa-editorcurl -o ~/.claude/skills/octa-editor/SKILL.md https://editor.octadevs.com/skills/octa-editor/SKILL.mdTo limit it to one project, use .claude/skills/octa-editor/ inside that project instead. Run the same command again to update the skill.
Connect a site
Section titled “Connect a site”-
Create an Application Password for the account Claude will work as, under Users → Profile → Application Passwords. The account’s role decides what Claude may read and write, so an Editor account is usually enough. See Installation.
-
Add the connection to
.claude/settings.local.jsonin the project you work in, and make sure the project’s.gitignorecovers that file.{"env": {"OCTA_URL": "https://example.com","OCTA_USER": "editor","OCTA_APP_PASSWORD": "abcd efgh ijkl mnop qrst uvwx"}} -
Restart Claude Code so it picks up the variables.
Each project points at its own site, so one installed skill serves any number of sites. OCTA_URL is the site root without a trailing slash.
Several sites
Section titled “Several sites”The variables hold one site, and Claude checks before every write that the page you asked about lives on that site. A request about a page on another domain stops with an explanation instead of reaching a page with the same path on the configured site.
If you look after several sites, give each one its own project folder with its own settings.local.json. Avoid switching one shared configuration between sites: a session that still holds the previous site’s variables would read and write there.
A tool that serves many sites from one project, such as an agency workspace with a folder per client, should wrap the requests in its own helper. The helper resolves the site and credentials from the client in play and refuses a write when they disagree. The skill’s editing rules stay the same; only the connection and request steps change. Keep each person’s Application Passwords in a local file that is ignored by git and never shared, so every change on the site carries the name of the person who made it.
Example requests
Section titled “Example requests”Claude picks the skill up on its own when you ask about site content. You can also call it explicitly with /octa-editor.
- “Rewrite the SEO description of https://example.com/about/ to under 155 characters.”
- “List the pages under Services and give each one a meta description.”
- “Create a draft page Implementation under Services, using the same sections as the other service pages.”
- “Add the category Case studies and assign it to these three posts.”
For large, reviewable batches, the bulk import loop is often a better fit, because the admin preview lets a person approve every file before the save.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Cause |
|---|---|
| HTTP 401 on every request | Wrong user or password, or the server strips the Authorization header. See REST API overview. |
| HTTP 429 | Too many failed logins in a short window. Wait a few minutes and fix the credentials. |
octa_forbidden or octa_cannot_publish |
The account’s role lacks the capability. Use an account with the right role. |
/wp-json/ answers 404 |
The site uses plain permalinks. The skill falls back to ?rest_route= on its own. |