Story Setup for Web Novel Writing
zenstory-ai/oh-story-claudecode
Deploys and checks a web-novel writing toolkit in a project folder for supported coding agents, merging into existing configuration instead of overwriting it.
Search, download, and extract public-domain books from Project Gutenberg.
$ npx skills add magnus919/agent-skills --skill gutenberg -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install magnus919/agent-skills gutenberg --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/gutenberg .claude/skills/gutenberg && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gutenberg" agent skill from https://github.com/magnus919/agent-skills/tree/main/gutenberg into .claude/skills/gutenberg/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gutenberg", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/magnus919/agent-skills/tree/main/gutenbergType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add magnus919/agent-skills --skill gutenberg -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install magnus919/agent-skills gutenberg --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/gutenberg .agents/skills/gutenberg && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gutenberg" agent skill from https://github.com/magnus919/agent-skills/tree/main/gutenberg into .agents/skills/gutenberg/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gutenberg", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add magnus919/agent-skills --skill gutenberg -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install magnus919/agent-skills gutenberg --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/gutenberg .cursor/skills/gutenberg && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gutenberg" agent skill from https://github.com/magnus919/agent-skills/tree/main/gutenberg into .cursor/skills/gutenberg/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gutenberg", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/magnus919/agent-skills.git --path gutenberg--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add magnus919/agent-skills --skill gutenberg -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install magnus919/agent-skills gutenberg --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/gutenberg .gemini/skills/gutenberg && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gutenberg" agent skill from https://github.com/magnus919/agent-skills/tree/main/gutenberg into .gemini/skills/gutenberg/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gutenberg", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install magnus919/agent-skills gutenbergInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add magnus919/agent-skills --skill gutenberg -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/gutenberg .github/skills/gutenberg && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gutenberg" agent skill from https://github.com/magnus919/agent-skills/tree/main/gutenberg into .github/skills/gutenberg/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gutenberg", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add magnus919/agent-skills --skill gutenberg -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install magnus919/agent-skills gutenberg --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/gutenberg .opencode/skills/gutenberg && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gutenberg" agent skill from https://github.com/magnus919/agent-skills/tree/main/gutenberg into .opencode/skills/gutenberg/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gutenberg", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gutenbergSearch, download, and extract public-domain books from Project Gutenberg.
Gutenberg is an agent skill from magnus919/agent-skills. Search, download, and extract public-domain books from Project Gutenberg. Look up books by ID or keyword via gutendex, download plain-text and EPUB editions, strip licensing boilerplate, extract clean text from EPUB for illustrated works, and classify fiction vs non-fiction. Ships a portable CLI script with zero external dependencies. Use when the user says "gutenberg", "public domain", "download a book", "classic literature", "free ebook", "gutenberg.org", or names any public-domain title or author. Do not use…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `README.md`, `evals/evals.json` and `references/epub-extraction.md`). Compatibility notes: Python 3.8+ with zero external dependencies. The CLI uses only the Python standard library (urllib.request, json, html.parser, zipfile, re, sys). For EPUB…
It sits in Documents & Office, covering Creative writing and fiction and Project scaffolding. The repository describes itself as: Curated collection of AI agent skills for Hermes and other agent frameworks. The licence is MIT.
Read from SKILL.md and the folder at commit c545c2b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
gutenberg.orgAlso links to:
gutendex.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Python 3.8+ with zero external dependencies. The CLI uses only the Python standard library (urllib.request, json, html.parser, zipfile, re, sys). For EPUB extraction, Python 3.8+ with only stdlib is required (zipfile + html.parser). The gutendex API (https://gutendex.com) requires no API key or registration. No env vars needed for basic operation.
From compatibility in the SKILL.md frontmatter.
Gutenberg loads about 2.3k tokens when it runs, and up to ~3k if it reads all its reference files. Until then it costs about 150 tokens; SKILL.md has 713 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from magnus919/agent-skills at commit c545c2b, republished under its MIT licence (© magnus919). 713 words, ~2,290 tokens.
.claude/skills/gutenberg/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Search, download, and extract clean text from Project Gutenberg — 70,000+ free public-domain ebooks. Ships a portable Python CLI with zero external dependencies.
# Search for books
python3 scripts/gutenberg search "Moby Dick"
# Download by Gutenberg ID (plain text)
python3 scripts/gutenberg download 2701 --format txt
# Download EPUB (for illustrated books)
python3 scripts/gutenberg download 2701 --format epub
# Extract clean text (strips PG boilerplate)
python3 scripts/gutenberg extract 2701
# Classify fiction vs non-fiction
python3 scripts/gutenberg classify 2701
# Full pipeline: search → download → extract
python3 scripts/gutenberg pipeline "Alice's Adventures in Wonderland"Project Gutenberg provides 70,000+ free public-domain ebooks in multiple formats. The gutendex API (https://gutendex.com) offers a free, unauthenticated JSON catalog. No API key required — just curl or this CLI.
User provides title/ID/author
↓
gutendex API search → pick book by ID
↓
Download plain text (preferred) or EPUB (fallback for illustrated books)
↓
Strip PG boilerplate → clean text
↓
Classify fiction/non-fiction → extract contentsearch — Find books by keywordpython3 scripts/gutenberg search "Moby Dick"
python3 scripts/gutenberg search "Dracula" --limit 5
python3 scripts/gutenberg search "Sherlock Holmes" --json
python3 scripts/gutenberg search "Alice" --language enReturns: ID, title, author (with life dates), language, subjects, download count. Results sorted by download count (most popular first).
metadata — Get full metadata for a book by IDpython3 scripts/gutenberg metadata 2701 # Moby Dick
python3 scripts/gutenberg metadata 11 # Alice's Adventures
python3 scripts/gutenberg metadata 1342 # Pride and Prejudice
python3 scripts/gutenberg metadata 1342 --json # JSON-only outputReturns: title, author(s), language(s), subjects, bookshelves, summaries, copyright status, download count, and all available format URLs.
download — Download a book by Gutenberg ID# Plain text (UTF-8, preferred — works for most books)
python3 scripts/gutenberg download 2701 --format txt
# EPUB with images (for illustrated/scientific books)
python3 scripts/gutenberg download 2701 --format epub
# HTML (alternative fallback)
python3 scripts/gutenberg download 2701 --format html
# Specify output directory
python3 scripts/gutenberg download 2701 --format txt --output ./books/The file is saved to ./gutenberg-<id>.<ext> (or --output path). Large books may take a moment.
extract — Strip PG boilerplate and produce clean textpython3 scripts/gutenberg extract 2701 # from downloaded txt
python3 scripts/gutenberg extract 2701 --input ./gutenberg-2701.txt
python3 scripts/gutenberg extract 2701 --format epub # extract from EPUBOutput: clean text without the Project Gutenberg license header/footer. For EPUB extraction (illustrated books), extracts text from all XHTML files and merges them into a single cleaned document.
Size detection: if a plain-text download is under 50KB for a known substantial book, warns that the text may be truncated and recommends EPUB mode.
classify — Classify fiction vs non-fictionpython3 scripts/gutenberg classify 2701
python3 scripts/gutenberg classify 2701 --jsonUses the book's subjects and bookshelves to classify:
Returns: fiction, non-fiction, or ambiguous (with explanation of why).
pipeline — Full fetch pipelinepython3 scripts/gutenberg pipeline "Moby Dick" # search first
python3 scripts/gutenberg pipeline 2701 # by known ID
python3 scripts/gutenberg pipeline 2701 --clean /tmp/pipeline-output/ # save cleaned textRuns: search (if title) → metadata → download (txt) → check size → extract (or EPUB fallback) → classify. Prints an executive summary at the end.
| Flag | Effect |
|---|---|
--json | Output machine-readable JSON instead of human-readable text |
--quiet | Suppress diagnostic output |
--dry-run | Show what would be done without executing |
--output ./dir | Save downloads to a specific directory |
--timeout 30 | Override API timeout (default 15s) |
When the classified result is fiction, the extracted text comes from an authored imagination. Consider splitting analysis into two tracks:
| Track | What it covers | Example claims |
|---|---|---|
| Canon | Facts within the fictional world — named entities, quoted lines, story events, world rules | "In Stoker's text, Dracula can assume wolf, bat, and mist forms" |
| Craft | Real-world technique — how the author achieves effect, publication history, literary influence | "Stoker's epistolary form forces the reader to piece together the narrative like an investigator" |
| Negative space | Deliberate omissions — what the author notably leaves unspecified | "Dracula is never granted interior voice in the novel" |
When classified as non-fiction, claims can be treated as real-world factual assertions about the subject matter.
pipeline command does this check automatically.--timeout 30 for slow responses, or navigate directly to https://www.gutenberg.org/ebooks/<id> as a fallback.-0.txt file path, then to EPUB, then to HTML. The download command reports which format was actually retrieved.sleep 1 between calls for more than 10 rapid-fire requests.text/plain; charset=utf-8 and a text/plain; charset=us-ascii URL. Prefer UTF-8; fall back to US-ASCII if the UTF-8 URL returns a 404.ambiguous. Use --json to inspect the subject list and decide manually.© magnus919, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, references) in gutenberg of magnus919/agent-skills.
Open the folder on GitHubat commit c545c2b
Gutenberg next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Gutenberg this skillmagnus919/agent-skills | 116 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Story Setup for Web Novel Writingzenstory-ai/oh-story-claudecode | 7.4k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Hermes3000 WritingHybridAIOne/hybridclaw | 158 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Venue TemplatesK-Dense-AI/claude-scientific-writer | 2.4k | 2 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Story Maintenancedanjdewhurst/story-skills | 283 | 1 repos | ~5.4k | Automated safety check: Notes | MIT | |
| Weak Agent Testkklimuk/docx-cli | 216 | — | ~6.1k | Automated safety check: Notes | MIT |
zenstory-ai/oh-story-claudecode
Deploys and checks a web-novel writing toolkit in a project folder for supported coding agents, merging into existing configuration instead of overwriting it.
HybridAIOne/hybridclaw
Use Hermes3000 to plan, draft, revise, save, check consistency, and export long-form manuscripts through the Hermes3000 AI writing portal API.
K-Dense-AI/claude-scientific-writer
Prepare journal manuscripts, conference papers, research posters, and grant documents using venue-specific formatting guidance and bundled LaTeX scaffolds.
danjdewhurst/story-skills
This skill should be used when the user asks to "validate", "reindex", "repair registries", "check links", "run the continuity, pacing, clue, voice, or name checks", "count words", "summarize a…
kklimuk/docx-cli
Run the weak-agent adversarial test harness against docx-cli.
yaomindong1996/forge-admin
Generate or review Forge project code-generation output for CRUD modules.
magnus919/agent-skills
Organize durable agent research outputs as summaries, analysis, and evidence dossiers.
magnus919/agent-skills
Build portable, first-person colored ASCII city engines and small GIS-derived city packs.
magnus919/agent-skills
Manage color workflows with ICC profiles, working spaces, gamut mapping, and color science.
magnus919/agent-skills
A skill your agent uses for PhD-level expertise in data science, statistics, and machine learning: rigorous statistical analysis, experimental design, causal inference, advanced modeling, research…
magnus919/agent-skills
Use Docker Compose to define, run, debug, and harden multi-container applications.
magnus919/agent-skills
Design, review, simulate, and verify FPGA logic using explicit RTL contracts, clock and reset models, CDC analysis, timing constraints, and reproducible implementation evidence.
Categories
Search, download, and extract public-domain books from Project Gutenberg. Gutenberg is an agent skill from magnus919/agent-skills. Search, download, and extract public-domain books from Project Gutenberg.
Gutenberg fits situations like: the user says gutenberg; download a book; classic literature; names any public-domain title.
Run `npx skills add magnus919/agent-skills --skill gutenberg -a claude-code`. Or copy the skill folder (gutenberg in magnus919/agent-skills) into .claude/skills/gutenberg in your project. Claude Code loads it when a task matches its description.
Run `npx skills add magnus919/agent-skills --skill gutenberg -a codex`. Or copy the skill folder (gutenberg in magnus919/agent-skills) into .agents/skills/gutenberg in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add magnus919/agent-skills --skill gutenberg -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gutenberg, .gemini/skills/gutenberg, .github/skills/gutenberg and .opencode/skills/gutenberg in your project.
Going by SKILL.md and its folder, Gutenberg needs the command-line tools its instructions call (python3). Our summary lists: Python 3. Compatibility (from SKILL.md): Python 3.8+ with zero external dependencies. The CLI uses only the Python standard library (urllib.request, json, html.parser, zipfile, re, sys). For EPUB extraction, Python 3.8+ with only stdlib is required (zipfile + html.parser). The gutendex API (https://gutendex.com) requires no API key or registration. No env vars needed for basic operation..
SKILL.md names 2 domains. In commands or code: gutenberg.org; the agent is likely to contact it when it follows the instructions. As links in the text: gutendex.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Gutenberg is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 760 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Gutenberg: Story Setup for Web Novel Writing (zenstory-ai/oh-story-claudecode, 7.4k stars), Hermes3000 Writing (HybridAIOne/hybridclaw, 158 stars), Venue Templates (K-Dense-AI/claude-scientific-writer, 2.4k stars) and Story Maintenance (danjdewhurst/story-skills, 283 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
magnus919 (a GitHub user) maintains it in magnus919/agent-skills, which has 116 GitHub stars. The repository holds 130 skills in this directory. The repository was last updated on October 8, 2026.
Source: magnus919/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.