sepia is a free, open source ai development platforms project written in Python and released under MIT. It has 2,672 GitHub stars, 175 forks and 8 open issues, and was last pushed 11 hours ago. On this registry it ranks #108 of 116 tracked projects in AI Development Platforms, with 5 head-to-head comparisons available.

sepia

English | 繁體中文 | 简体中文

behavioral eval version consistency release license: MIT

De-AI writing at the layer that actually gives AI away. Fiction gets its narrative architecture repaired before anyone touches word choice; professional documents (release notes, PR replies, postmortems, tickets, technical articles) each get rules matched to their venue.

A portable Agent Skill: any agent that speaks the standard can load it, and the Skills CLI, which supports 77+ agents, installs it with one command. Claude Code, Codex, Grok Build, Antigravity, and QwenPaw additionally get native plugin packaging. One canonical SKILL.md, no per-platform forks. Four operations: write, review (diagnose only), refactor (minimal edits), recreate (full rewrite).

Why another humanizer

Every popular humanizer edits word choice and syntax. StoryScope (Russell et al., 2026: 61,608 stories, human + 5 frontier LLMs) showed that a classifier using narrative-structure features alone detects AI fiction at 93.2% macro-F1. In the same study's LAMP-edited condition, where human editors had rewritten the surface style, detection dropped only from 95.5% to 93.9%. The tells that survive are architectural: themes explained by the narrator, single-track causally-tidy plots, emotions rendered only as bodily sensation, no real-world references, no reader, linear time, endings resolved by protagonist growth and acceptance.

sepia turns those measured gaps, together with the related studies digested in research/, into a three-pass writing and revision protocol for fiction:

Pass Layer Examples
1 Narrative architecture (fiction) stop explaining the theme, loosen the causal chain, back-load revelations, mix emotion modes, sparse character networks, name real things
2 Discourse flow de-template the paragraph-question sequence, fix the mid-story sag, vary rhythm and positions
3 Surface style the classic layer: clichés, syntax templates, vocabulary, register

Plus a 30-feature diagnosis rubric and per-model fingerprints in two layers: narrative tells measured by StoryScope (Claude, GPT, Gemini, DeepSeek, Kimi) and sentence-level tells taken from the vendors' own prompting guides (Claude Fable 5.1 and Mythos 5.1, Fable 5 and Mythos 5, Opus 5, Opus 4.8; GPT-5.6, GPT-6 Astra; Gemini 3 series), applied when the writing or executing model is known. Vendors that publish no such guidance are recorded as consulted, not guessed.

Professional prose fails differently. The studies digested in research/ point at filler that carries no information, hedging where a judgment was needed, chatbot leftovers, register that ignores the venue, and formatting that looks stamped out. Each document type gets a thin rule file on top of one shared checklist:

Domain The gist
Release notes / announcements user impact first, artifacts per claim, no marketing inflation
PR / issue replies answer first, cite file:line, no reflex praise, length ∝ stakes
Postmortems blameless toward people, merciless toward mechanisms; timestamps, dead ends, owned action items
Tickets / work orders title = outcome, testable acceptance criteria, link don't repeat
Technical articles open at the problem, one real dead end, one committed opinion, numbers with conditions
Long-form journalism (features, investigations, data stories) lead and body in two registers, quotations keep their spoken texture, every number carries a comparison, no summary ending

The governing principle throughout: calibrate to the human distribution, don't invert the AI one. Humans sit at moderate values; a story with every rule applied is a new fingerprint. The skill selects 3–5 moves per story and leaves slack.

Operation entries

The complete plugin package gives Claude Code, Codex, Grok Build, and Antigravity a general router plus five direct entries. QwenPaw gets the /sepia router only, so the table below does not apply there:

Operation Claude Code Codex Grok Build Antigravity Meaning
write /sepia-write $sepia-write /sepia-write /sepia-write Create new prose
review /sepia-review $sepia-review /sepia-review /sepia-review Diagnose without editing
refactor /sepia-refactor $sepia-refactor /sepia-refactor /sepia-refactor Make minimal in-place edits
recreate /sepia-recreate $sepia-recreate /sepia-recreate /sepia-recreate Rewrite from the source facts and intent
hemingway /sepia-hemingway $sepia-hemingway /sepia-hemingway /sepia-hemingway Write or refactor fiction with the built-in Hemingway voice applied

The general /sepia (Claude Code, Grok Build, Antigravity, and QwenPaw) or $sepia (Codex) router remains available; on QwenPaw the package installs the six skills into each workspace and registers no per-operation slash commands. The operation wrappers depend on their sibling canonical skill, so standalone wrapper installation is unsupported; install the complete plugin package. What was verified on each platform is stated under Install.

Experimental: composing with voice skills

Since v0.4.0, sepia defines an interface for stacking a voice or style skill on top of it — a minimalism method, a brand voice, a persona guide. It is opt-in: tell sepia the voice skill is in play, and it loads references/voice-skills.md over the normal route. No external voice is loaded unless you say so.

The contract in short: sepia's architecture decisions come first. The voice's moves are applied selectively (3–5 signature moves per piece, formula endings deliberately broken sometimes). Review reports the voice's known costs instead of fixing them away, while uniformity findings keep full strength: a voice does not excuse a metronome. On professional routes the venue still sets the register. Direct conflicts come back to you. The interface is grounded in one blind review experiment on a strict-minimalism specimen — a worked example, not measured evidence. One built-in profile ships under references/voices/ (Hemingway: iceberg omission for fiction, the Kansas City Star rules for professional prose, each move traced to its source). The built-in profile follows the same rule. On fiction, a review only reports when your text's recorded findings fit the Hemingway profile; it loads nothing. Asking for strong de-AI on a story counts as opting in, and sepia then says which profile it is applying and how to decline. /sepia-hemingway is the direct entry.

Sentence rhythm and Chinese calibration

The style pass checks the spread of sentence lengths, the one syntactic measure on which every study that measured it agrees (human text varies more within a passage, in English and in Chinese); mean sentence length, punctuation counts, and paragraph length are not treated as signals because the measured directions contradict each other. Chinese text loads references/languages/zh.md, a calibration built on the one human-vs-machine Chinese corpus (HC3, 2023) plus a private human-side measurement of Traditional Chinese journalism (about two thousand articles from one unnamed Taiwanese publication over about ten years; corpus not distributed), with the limits of both stated in the file; evidence and numbers are in research/rhythm-syntax.md, and the journalism digest is research/zh-news-corpus.md.

Install

Every command below is written for user scope — install once, use it in every project.

Any agent (Skills CLI, 77+ agents)

npx skills add Nanako0129/sepia -g     # -g = user scope; the default is project
npx skills update sepia -g             # update
npx skills remove sepia -g             # uninstall

Installs on every agent the Skills CLI supports — Cursor, Cline, Windsurf, Copilot, OpenCode, goose, and more. Pick your agents when prompted. Runtime behavior outside the five platforms below has not been exercised by us; the skill is plain markdown under the Agent Skills standard, so file an issue if your agent trips on it.

The five platforms below have native plugin installers, each exercised with a live install (QwenPaw's by its contributor, see that section).

readme truncated — read the full docs on github

Frequently asked questions

Is sepia free to use?

sepia is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does sepia do?

De-AI writing skill for any Agent Skills-compatible agent (77+ via the Skills CLI), with native plugins for Claude Code, Codex, Grok Build, and Antigravity. Nar

What is sepia written in?

sepia is primarily written in Python. Its source is publicly available at https://github.com/Nanako0129/sepia, and it has 2,672 GitHub stars.