Creating Custom Plugins
Build your own AI plugins with custom prompt pipelines.
Last updated March 2026
Overview
Custom plugins let you build your own AI-powered text transformation tools with full control over the prompt pipeline. If the 8 built-in plugins don't cover your needs, you can create a plugin that does exactly what you want.
Creating custom plugins requires a Writer+ plan or higher. Once created, your plugins appear in your plugin library alongside the built-in tools and work exactly the same way — select text, run the plugin, Keep or Discard.
The Creation Wizard
The plugin creation wizard walks you through a 5-step process:
- Intent — describe what your plugin does, or skip to build manually.
- Prompts — define the AI prompt pipeline (1–4 stages).
- Test — run your plugin on sample text to verify quality.
- Details — name, description, category, and output settings.
- Publish — set visibility and save your plugin.
Access the wizard from the Plugins page by clicking Create Plugin, or from the Plugin Marketplace page.
Step 1: Intent
Start by describing what your plugin does in plain language. Write a description between 10 and 1,000 characters — the more specific you are, the better the AI-generated prompts will be.
For example: “Transform dialogue to sound more natural and conversational. Remove stiff phrasing, add contractions, and make characters sound like real people talking.”
You'll see a model selector with a cost estimate for the generation. The AI uses your description to generate system prompts for your pipeline stages.
Step 2: Prompts
This is the heart of your plugin. Here you define the prompt pipeline that transforms selected text. Each plugin can have between 1 and 3 stages, where each stage is an independent AI call.
Every stage has two fields:
- System prompt — instructions to the AI about its role and how to process the text. This sets the behavior for that stage.
- User prompt — the actual input sent to the AI, typically including the selected text and any user instructions. The default user prompt is:
{user_instructions}\n\nText to work with:\n\n{selected_text}
Available Variables
Use these variables in your prompts. They're automatically replaced with real data at execution time:
| Variable | Description |
|---|---|
{selected_text} | The text the user has selected in the editor. |
{preceding_text} | Text that comes before the selection, providing narrative context. |
{characters} | Character data (personality, backstory, voice) from linked characters. |
{project_context} | Project-level context from the node hierarchy. |
{scene_info} | Information about the current scene or draft node. |
{story_context} | Broader story context from the Story Bible. |
{user_instructions} | Any instructions the user provides when running the plugin. |
{stage_output} | The output from the previous stage (only available in stage 2 and later). |
Multi-Stage Pipelines
Multi-stage pipelines are powerful. Each stage processes the text and passes its output to the next stage via the {stage_output} variable.
Here's an example of a 3-stage “Deep Polish” pipeline:
- Stage 1: Identify prose issues (passive voice, weak verbs, wordiness).
- Stage 2: Rewrite the text to fix the issues found in Stage 1.
- Stage 3: Final polish pass — rhythm, flow, and word choice.
Step 3: Test
The Test step lets you run your plugin on sample text before publishing it. Paste or type a text sample, click Run Test, and see exactly what your prompt pipeline produces.
Testing is optional but strongly recommended. It's much easier to spot prompt issues in the wizard than after you've published the plugin. If the output isn't what you expected, go back to the Prompts step and adjust.
Step 4: Details
Give your plugin an identity:
- Name — up to 60 characters. This is what appears in plugin lists.
- Tagline — up to 120 characters. A short description that appears on the plugin card.
- Description — up to 1,000 characters. A full explanation of what the plugin does and when to use it.
- Category — choose from 9 categories: Narrative & Plot, Character Development, Editing & Revision, Scene Enhancement, Worldbuilding, Analysis & Feedback, Marketing, Genre-Specific, or Multi-Lingual.
Output Style Presets
Output Style controls the temperature of the AI generation, which affects how creative or predictable the output is:
| Preset | Temperature | Best For |
|---|---|---|
| Precise | 0.3 | Grammar fixes, formatting, mechanical transformations. |
| Balanced | 0.7 | Most plugins — a good mix of creativity and consistency. |
| Creative | 0.9 | Tone shifts, poetic rewrites, experimental transformations. |
You can also optionally lock the model for your plugin. When a model is locked, the plugin always uses that specific model regardless of the user's current model selection. This is useful when you've tuned your prompts to work best with a particular model.
Step 5: Publish
The final step sets how your plugin is shared:
- Visibility
- Private — only you can see and use this plugin.
- Public — published to the Plugin Marketplace for other writers to discover.
- Prompt visibility
- Hidden — other users can use your plugin but can't see your prompts. Your prompt engineering stays private.
- Visible — other users can see your prompts. Great for educational plugins or if you want to encourage remixing.
Tags are auto-generated based on your plugin's name, description, and category. These tags help other writers find your plugin in marketplace search.
How Plugin Execution Works
When a user runs your plugin, here's what happens under the hood:
- The user selects text in the editor and chooses your plugin.
- Genesis Writer resolves all prompt variables ({selected_text}, {characters}, etc.).
- Stage 1 runs: the system prompt and user prompt are sent to the AI model.
- If multi-stage, Stage 1's output becomes
{stage_output}for Stage 2, and so on. - The final stage's output replaces the selected text in the editor.
- The user sees the Keep/Discard toolbar and makes their choice.
All plugins are selection-based — they always operate on text the user has selected. There is no way to create a plugin that inserts text at the end of the document (that's what Write and Continue are for).
Tips for Building Great Plugins
- Be specific in your system prompts. Vague instructions produce inconsistent results. Tell the AI exactly what to do, what to avoid, and what the output format should look like.
- Use context variables. Plugins that use {characters} and {story_context} produce more contextually aware transformations than those that only process the raw selected text.
- Test with real prose. Don't test with lorem ipsum. Use actual fiction passages similar to what your target users will select.
- Start with one stage. Get a single-stage plugin working well before adding complexity. Multi-stage pipelines are powerful but harder to debug.
- Choose the right Output Style. Precise for mechanical transformations, Balanced for most things, Creative for artistic transformations.
- Write a good description. If you publish your plugin, the description is what convinces other writers to try it. Explain what it does and when to use it.