Skip to main content
The Manual

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 prose

Writes 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 prose

Applies 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

Humanize

A 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

  1. Open Version History (the clock icon in the editor toolbar)
  2. Find the snapshot taken before the AI action ran
  3. 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

Free

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

  1. Go to API Keys in the sidebar
  2. Paste your key for one or more providers under Provider Keys
  3. Open any story and use the model selector to choose your model
  4. 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.