by Nanako0129
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. Narrative-architecture repair for fiction, venue-matched rules for professional prose. Based on StoryScope (arXiv:2604.03136).
# Add to your Claude Code skills
git clone https://github.com/Nanako0129/sepiaLast scanned: 8/29/2026
{
"issues": [
{
"file": "README.md",
"line": 97,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/Nanako0129/sepia/main/install.sh | \"",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-08-29T10:49:35.650Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how sepia compares with popular alternatives.
sepia is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Nanako0129. 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. Narrative-architecture repair for fiction, venue-matched rules for professional prose. Based on StoryScope (arXiv:2604.03136). It has 3,115 GitHub stars.
Yes. sepia passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Nanako0129/sepia" and add it to your Claude Code skills directory (see the Installation section above).
sepia is primarily written in Python. It is open-source under Nanako0129 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh sepia against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
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).
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 |
A 30-feature diagnosis rubric and per-model fingerprints across two layers apply when the writing or executing model is known:
| Model family | Narrative layer (StoryScope) | Sentence-level prose layer (Vendor prompting guides) |
|---|---|---|
| Claude | Measured | Claude Fable 5.1 and Mythos 5.1, Fable 5 and Mythos 5, Opus 5, Opus 4.8 |
| GPT | Measured | GPT-5.6, GPT-6 Astra |
| Gemini | Measured | Gemini 3 and 3.1 |
| DeepSeek | Measured | Consulted (no guidance published) |
| Kimi | Measured | Consulted (no guidance published) |
Notice: Vendors that publish no prompt guidance are recorded as consulted, not guessed.
Professional prose fails differently, and the structure-level finding holds there too: a 2026 replication of StoryScope on 2,250 company blog posts against 11,250 AI mirrors separated them at 98.0 macro-F1 from structural features alone, with the AI shape described as tidy and self-announcing (SLOPSHAPE-2026 in the ledger, arXiv:2609.15369; a preprint whose features are LLM-scored; it tested detection of original and model-self-reworded posts, never human editing). 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 |
Governing principle: 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.
The complete plugin package gives Claude Code, Codex, Grok Build, Antigravity, and QwenPaw a general router plus five direct entries. On QwenPaw the package registers no commands of its own; the host's /<skill-name> dispatch serves each installed skill:
| Operation | Claude Code | Codex | Grok Build | Antigravity | QwenPaw | Meaning |
|---|---|---|---|---|---|---|
| write | /sepia-write |
$sepia-write |
/sepia-write |
/sepia-write |
/sepia-write |
Create new prose |
| review | /sepia-review |
$sepia-review |
/sepia-review |
/sepia-review |
/sepia-review |
Diagnose without editing |
| refactor | /sepia-refactor |
$sepia-refactor |
/sepia-refactor |
/sepia-refactor |
/sepia-refactor |
Make minimal in-place edits |
| recreate | /sepia-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 |
/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. What was verified on each platform is stated under Install.
Notice: Standalone wrapper installation is unsupported. The operation wrappers depend on their sibling canonical skill; install the complete plugin package.
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 interface contract operates under fixed precedence rules across operations and routes:
| Rule dimension | Contract specification |
|---|---|
| Architecture | sepia's architecture decisions come first. |
| Move selection | Voice moves are applied selectively (3–5 signature moves per piece, fewer when a sparse shape or the facts offer fewer; formula endings deliberately broken sometimes). |
| Review diagnostics | Review reports the voice's known costs instead of fixing them away. |
| Uniformity enforcement | Uniformity findings keep full strength: a voice does not excuse a metronome. |
| Professional register | On professional routes, the venue still sets the register. |
| Conflict resolution | Direct conflicts come back to you. |
Notice: The voice-skills interface is grounded in one blind review experiment on a strict-minimalism specimen — a worked example, not measured evidence.
Two built-in profiles ship under references/voices/, alongside a persona profile kind with declared override rights:
| Profile | Target routes | Source & characteristics | Opt-in & invocation |
|---|---|---|---|
Hemingway (references/voices/hemingway.md) |
Fiction and professional prose | Iceberg omission for fiction, the Kansas City Star rules for professional prose; each move traced to its source | Direct entry /sepia-hemingway (or $sepia-hemingway). On fiction, asking for strong de-AI on a story counts as opting in (sepia announces the profile and how to decline). Without an opt-in, a fiction review only reports when the text fits the profile and loads nothing. |
Taiwan long-form journalism (references/voices/tw-journalism.md) |
Professional routes only | Nine narrative shapes with their moves, drawn from private human-side journalism measurement and its close reading | Opt-in phrase: "apply the Taiwan journalism voice". Follows the same rules as Hemingway. |
Persona template (references/voices/PERSONA-TEMPLATE.md) |
Author-defined | One writer's style with declared override rights; checked by scripts/check_persona.py |
Author-created profile. Template at references/voices/PERSONA-TEMPLATE.md. |
Nyaneko (references/voices/personas/nyaneko.md) |
Professional routes only | Built-in companion voice written from the maintainer's voice specification with her own exemplars | Opt-in phrase: "apply persona Nyaneko" or 「套用 persona Nyaneko」. |
sepia's rules remove tells. Warmth has another source: the writer knowing who is speaking, and to whom. One case from this project's own release, with nothing measured: the v0.12.0 Threads po