Documentation
AI Generation
Ash is AIStoryHub's AI writing partner. This page covers Generate PRO, Revise, Human Grit Pass, outline-driven drafting, Version History, BYOK setup, and best practices.
Meet Ash
Ash is your AI writing partner inside every story. It doesn't overwrite your voice — it writes inside the parameters you set through your Voiceprint style profile, story configuration, and generation instructions.
Three Ways to Write With Ash
Every chapter has a toolbar with three AI actions. Each does something different — pick the one that matches what you need:
Generate PRO
Write new proseWrites the chapter in a single pass. Describe what happens, pick a writing style and preset, and Ash pulls in your characters, locations, lore, previous chapter, and Story Rules to write the scene. If the chapter has a beat sheet and you have filled in the Story Skeleton, it follows those too, with no extra steps.
- • Style-dominant generation using your active Voiceprint
- • Context-aware: characters, lore, and Story Rules inform every sentence
- • Follows the chapter's beat sheet and the Story Skeleton when they are set, including where the chapter sits in the arc
- • Can automatically chain a Human Grit Pass if you enable it
- • Honors the banned words list from story settings
Revise
Edit existing proseApplies targeted, instruction-based edits to a chapter that already has content — "make it more dramatic," "add dialogue," "tighten the pacing." You can save an instruction for reuse and attach file references for extra context.
- • Free-form instructions, not a fixed menu of edits
- • Save frequently used instructions in account-level Instructions
- • Stays aligned to the chapter's beat sheet so revisions keep to the plan
- • Rewrites the chapter content directly — snapshot first, review after
Human Grit Pass
HumanizeA dedicated rewrite pass that targets the tells of AI prose — it varies sentence cadence, strips clichés, removes over-used em-dashes and exclamation points, differentiates character voices, and breaks overly symmetrical dialogue. It never changes facts or plot.
- • One click, confirm the token warning, and it runs
- • Purely a style/voice pass — story content stays the same
- • Can be run standalone or chained after Generate PRO
Outline-Driven Writing
Every chapter has an Outline tab alongside Manuscript and World. It is where you plan a chapter before writing it, and where the whole book's shape lives. Ash reads everything you put here when it generates.
Chapter Beat Sheet
Five beats per chapter: Hook, Goal / Conflict, Obstacle / Complication, Turn / Shift, and Cliffhanger. Fill them in yourself, or let Ash draft them.
- • Plan Next Chapter writes the beats before a word of prose exists, building from the previous chapter's ending, or from the story premise for chapter one. Choose Prev for tight continuity, or Full story to stay consistent with the entire manuscript so far.
- • Extract From Draft reads a chapter you have already written and summarizes its beats back out.
- • Planning always draws on your existing characters, locations, and lore, so it references your world instead of inventing new names.
The Story Skeleton
Open Story Skeleton from the Outline tab to define the whole-book spine: premise, logline, arc, theme, and where the story is heading. Next to it, the Chapter Map lists every chapter in order with its beats, so you can see the shape at a glance and jump straight to any chapter.
It steers every draft automatically
When you run Generate PRO on a chapter, Ash is handed that chapter's beat sheet, the Story Skeleton, and where the chapter sits in the arc ("chapter 3 of 12"), with no extra clicks. Revise stays aligned to the same beats, so edits keep to the plan.
Generate Draft from Outline
Once your chapters have beats planned, Generate Draft in the Story Skeleton view drafts them in order in a single run. Each chapter is written from its beats, the Story Skeleton, your world bible, and the previous chapter's ending, then saved before the next begins so continuity holds.
Built to protect your work
- • Empty chapters only by default. Chapters you have already written are skipped and used as context, never overwritten.
- • Only chapters that actually have a beat sheet are drafted, so nothing is written blind.
- • To rewrite specific chapters, pick them explicitly. Every rewrite is snapshotted to Version History first.
- • Chapters run one at a time with a live progress list, a Cancel button, and per-chapter Retry on failure.
Each chapter is a separate generation on your own API key, so a full-book run uses tokens accordingly. The preflight shows exactly how many chapters will be drafted before you start.
Version History, Not Patch Review
Ash rewrites chapter content directly rather than proposing a line-by-line diff. Before Generate PRO, Revise, or Human Grit Pass runs, the editor automatically snapshots the chapter's current state.
If you don't like the result
- Open Version History (the clock icon in the editor toolbar)
- Find the snapshot taken before the AI action ran
- Restore it to return the chapter to its prior state
Because every AI action snapshots first, you can always experiment freely — nothing is permanent until you decide it is.
Story Rules
Story Rules are a per-story node type (found in the story's World tab) that Ash always includes in generation for that story — think of them as standing instructions specific to one manuscript, separate from your account-wide Instructions.
Story Rules show up as selectable context in Generate PRO, Revise, and Improve Text, alongside your character, location, and lore references.
The Variables Engine
Inside a Story Rule (or an account-wide Instruction), type {{ }} to insert a variable that pulls live data out of your story. Ash resolves every variable at generation time, so the rule always reflects your story as it actually is right now, not a snapshot from whenever you wrote the rule.
Click Insert variable above any rule to open a searchable picker instead of typing syntax from memory. It lists every story-config variable plus every character, location, item, species, faction, lore entry, and timeline event you've actually created, by name.
Story-wide variables
{{story_config.tense}}: genre, tense, POV, tone, mood, language, time period, writing style, banned words
{{characters}}: every character in the story, name plus description
{{world}}: the entire codex, species, factions, locations, items, lore, and timeline all at once
{{locations}}: same idea, one world-building category at a time (items, species, factions, lore, timeline)
One specific element
Reference a single named character, location, item, species, faction, lore entry, or timeline event by writing its name after the category:
{{locations.the midnight lounge}} resolves to that location's name and description, wherever it appears in the rule. Matching is case-insensitive, so you don't need to get the capitalization exactly right, though the picker inserts it correctly either way.
Conditional rules
Wrap part of a rule in {{#if}} / {{else}} / {{/if}} so it only applies when a variable actually has a value, instead of writing something that fires on every single generation regardless of whether it's relevant to the scene:
{{#if characters.dash}} is with {{characters.dot}}
You should feel the electricity between them without actually naming it.
{{else}}
They act normally.
{{/if}}The condition is true whenever the variable resolves to something (a name, a non-empty list, non-empty text). Conditionals aren't nestable: the first {{/if}} closes the block, but you can stack as many separate {{#if}} blocks in one rule as you like.
Models and API Keys (BYOK)
AIStoryHub is free. You bring your own API key and pay your provider directly. The platform-funded free model (DeepSeek V4 Flash) works without any key — add your own whenever you want Claude, GPT, or Gemini.
Available models
DeepSeek V4 Flash
Platform-funded. No key needed. Quality may vary.
Anthropic
Claude Opus 4.8, Claude Sonnet 4.6, Claude Haiku 4.5 — best prose quality
OpenAI
GPT-4o, GPT-4o mini, o4-mini — fast and widely available
Google Gemini
Gemini 2.5 Pro, Gemini 2.0 Flash, Gemini 2.0 Flash Lite — generous free tier via AI Studio
OpenRouter
100+ models from every major provider via one key
Setting up BYOK
- Go to API Keys in the sidebar
- Paste your key for one or more providers under Provider Keys
- Open any story and use the model selector to choose your model
- All generation in that story uses your selected model and key
Costs: AIStoryHub charges nothing. You pay your provider at their published rates. A typical writing session costs a few cents — a full chapter generated with Generate PRO runs roughly $0.04 on Claude Haiku pricing.
Best Practices
Set a voice profile first
Create or select a Voiceprint style before generating. Without one, Ash defaults to generic patterns.
Build your story elements first
The more character, location, and lore data you have, the more specific and consistent Ash's prose will be.
Write a clear scene description
Generate PRO writes in one pass, so the more specific your prompt — who's in the scene, what they want, how it ends — the less you'll need to revise afterward.
Use Revise for surgical changes
If only part of a chapter needs work, Revise with a specific instruction rather than regenerating the whole scene with Generate PRO.
Troubleshooting
Content sounds generic
Make sure you have a Voiceprint style selected. Without one, Ash uses its default voice. Also check that your style sliders are meaningfully differentiated from center values.
Characters feel inconsistent
Add character profiles to your story and use @-references in your generation prompt. The more detail Ash has, the more consistent the voices.
Generation is failing or slow
Check your API key in Settings — an expired or rate-limited key causes failures. Switch to a different provider or the free DeepSeek model to confirm the issue is key-related.