Well Written
A multi-purpose "swiss army" tool for novel writers. Transform VS Code into a powerful novel writing environment with custom draft file format (.wrt), scene markers for organization, and repetition detection to improve your writing.
Features
📝 Draft Files (.wrt)
Custom file format optimized for creative writing with:
- Word wrap enabled by default
- Line numbers for easy reference
- Clean, distraction-free editing experience
🎬 Scene Markers
Organize your manuscript with hierarchical markers:
$ for scenes (smallest division)
$$ for chapters (medium division)
$$$ for parts (largest division)
Features:
- ✨ Folding support - collapse/expand sections like Markdown headings
- 📑 Outline view - hierarchical navigation in sidebar
- 🔍 Breadcrumbs - see your current location
- 🎨 Theme-aware styling - works with both light and dark themes
- 📝 Empty markers allowed - plan your structure first, fill in later
- 🚫 Not compiled - markers are for organization only, excluded from final output
Example:
$$$ Part One - The Beginning
$$ Chapter 1 - Introduction
$ Scene 1 - The Arrival
Story content here...
$ Scene 2 - The Meeting
More content...
$
Empty scene (to be written later)
Use standard markdown headers for additional organization:
# H1 - Part level
## H2 - Chapter level
### H3 - Section level
#### H4 - Subsection level
Features:
- 🎨 Bold and colored styling (distinct from scene markers)
- ✨ Folding support - collapse/expand sections
- ✅ Compiled into final output (unlike scene markers)
- 📊 Counted in word count
- 📘 Converted to proper headings (H1-H4) in DOCX export
Leave notes to yourself without affecting your draft:
- 📝 Single-line comments - use
// for quick notes
- 📄 Multi-line comments - use
/* ... */ for longer notes
- 🎨 Visual distinction - comments appear in gray italic (customizable)
- 🚫 Excluded from analysis - not counted in word count or repetition mode
- 🔓 Escapable - use
\// or \/* */ to show literal text
Tip: If comments aren't visible in your theme, customize the color in settings: wellWritten.comments.color
Example:
$$ Chapter 1
// TODO: Add more description here
The hero entered the dark forest.
/* Note to self:
This scene needs more tension
and better pacing */
Use \// to show literal slashes (not a comment)
�🔄 Repetition Mode
Highlight repeated words to improve your writing:
- 🎨 Color-coded - each repeated word gets unique color
- ⚡ Real-time updates - highlights update as you type
- 🔤 Case-insensitive - "Test", "test", "TEST" treated as same
- 📝 Apostrophe support - "don't", "can't", "won't" work correctly
- 🌍 International support - full Polish diacritics (ąćęłńóśźż)
- 🎯 Easy toggle -
Ctrl+Alt+R to enable/disable
Use cases:
- Identify overused words
- Spot repetitive phrases
- Improve word variety
- Polish your prose
📊 Word Count
Track your progress with automatic word counting:
- 📈 Status bar display - always visible word count
- � Hover tooltip - detailed statistics appear on hover
- 🎯 Smart counting - excludes scene markers and other markup
- 📚 Page estimation - based on standard book pages (250 words/page)
- 🔧 Configurable - works with
.wrt, .md, .txt (customizable)
- 🌍 International support - counts Polish and English text correctly
Statistics provided (on hover):
- Word count
- Character count (with and without spaces)
- Page count (customizable words per page)
🎯 Goal Counter
Stay motivated with session-based writing goals:
- ⏱️ Session timer - track your writing time
- 📊 Progress tracking - see words written toward your goal (0/500)
- ⚡ Click to start/stop - easy one-click session management
- 🎉 Goal celebration - notification when you reach your target
- 📈 Writing speed - see your words per minute
- 🔧 Customizable goal - set your daily word target (default: 500)
How it works:
- Click the goal counter in status bar to start your session
- Write your draft - progress updates in real-time
- Reach your goal and get a celebration notification!
- Click again to stop and see your session summary
Session summary includes:
- Total words written
- Time elapsed
- Average writing speed (words/minute)
👤 Character Cards
Manage your novel's cast with comprehensive character database:
- 📋 Create and organize - dedicated sidebar for all characters
- ⭐ Character types - main, secondary, background, or other
- 📝 Rich details - comprehensive character information
- 🖼️ Image support - attach character portraits and photos
- 🏷️ Tag system - quick reference tags for use in drafts
- 🔍 Tag search - find where characters appear in your drafts
- 🎨 Custom properties - add your own custom fields
- 💾 JSON storage - stored in
.well-written/characters/ folder
- 🔍 Quick access - click any character to view/edit
- 🗑️ Easy management - create, edit, and delete with simple UI
Character card includes:
Basic Information:
- Name and Surname: Character's full name
- Nicknames: Multiple nickname support
- Age: Character's age (numeric)
- Gender: Character's gender
- Occupation: Character's job or role
- Type: Main, Secondary, Background, or Other
Physical & Personality:
- Appearance: Physical description (hair, eyes, build, etc.)
- Personality Traits: Character's personality and behavior
- Description: General character notes and background
Media & Tags:
- Image: Attach character portrait (browse and preview)
- Tags: Quick reference tags (e.g.,
#watson, #detective)
- Use tags in your
.wrt files for quick character reference
- Search for tag occurrences across all drafts
Custom Properties:
- Add any custom fields you need
- Perfect for story-specific details (e.g., "Magic Ability", "Military Rank")
How to use:
- Open the "Well Written" sidebar (book icon in activity bar)
- Click "+" to create a new character card
- Fill in character details in the comprehensive webview form
- Browse for image: Use the Browse button to attach a character portrait
- Add tags: Create tags like
#watson or #detective for quick reference
- Use tags in drafts: Reference characters in your
.wrt files using their tags
- Find tag occurrences: Right-click character → "Find Character Tags in Drafts"
- Click character in the list to edit
- Right-click to delete
Tag search example:
$$ Chapter 1
The butler opened the door. #watson looked terrified,
his clothes soaked through.
#doctor Watson had seen many things in his military career.
After creating a character with tags #watson and #doctor, use "Find Character Tags in Drafts" to instantly locate all mentions!
Data structure:
Characters are stored as JSON files in .well-written/characters/ folder. Images are stored in .well-written/images/ folder. All data is easy to version control and backup.
📦 Compilation System
Combine multiple draft files into publishable manuscripts:
- 📚 Manage compilations - dedicated sidebar section below characters
- 🔍 Auto-detect files - automatically find all
.wrt files in workspace (works immediately!)
- 📋 File ordering - manually arrange draft files in desired order
- 🎨 Compilation options:
- Strip scene markers from output
- Remove comments from output
- 📖 Metadata - add book title and author
- 💾 Export formats - Markdown and DOCX (Microsoft Word)
- 🚀 Quick compile - right-click compilation for instant export
- 💼 Configuration storage - saved in
.well-written/compilations/ folder
How to use:
- Open the "Well Written" sidebar
- In the "Compilations" section, click "+" to create a new compilation
- Enter a compilation name (e.g., "My Novel - Final Draft")
- Book title auto-fills from compilation name (you can change it)
- Fill in author name
- Click "Detect Draft Files" to auto-add all
.wrt files
- Works immediately! No need to save first
- Auto-creates compilation if it doesn't exist yet
- Use up/down buttons to reorder files as needed
- Configure compilation options:
- Strip markers: Remove scene markers (
$, $$, $$$) from output
- Title page: Include/exclude title page with automatic page break (enabled by default)
- Automatically removes comments too
- Click export button to choose format
- Save the compiled manuscript to your desired location
Export formats:
- 📄 Markdown (.md): Plain text format, perfect for version control and further processing
- 📘 DOCX (.docx): Native Microsoft Word document with:
- Optional title page with automatic page break
- Proper heading hierarchy
- Title and author metadata (internationalization-friendly)
- Inline formatting support:
*italic* - Italic text
**bold** - Bold text
***bolditalic*** - Bold and italic text
\* - Escaped asterisk (renders as literal *)
- Horizontal rule support (
---, ***, ___)
- Professional manuscript formatting
- Ready to submit or edit in Word
Pro tip: Need PDF? Export as DOCX, then "Save As PDF" in Microsoft Word. You can also use free tools like LibreOffice or online converters.
Inline formatting example:
This is *italic* text, this is **bold** text,
and this is ***bold and italic*** text.
Use \* to show a literal asterisk.
Mix *italic* and **bold** in the same paragraph!
Compilation config example:
{
"id": "my-novel",
"name": "My Novel - Final Draft",
"sourcePaths": [
"chapter-01.wrt",
"chapter-02.wrt",
"chapter-03.wrt"
],
"stripMarkers": true,
"titlePage": true,
"metadata": {
"title": "The Great Adventure",
"author": "John Smith"
}
}
Quick compile:
- Right-click any compilation in the tree view
- Select "Compile Now" (play icon)
- Choose export format
- Save your compiled manuscript!
Quick Start
- Create a draft file with
.wrt extension
- Add scene markers to organize your story:
$$ Chapter 1
$ Scene 1
Your story text here...
- Add comments with
// for notes that won't appear in your final draft
- Click goal counter in status bar to start your writing session
- Check your word count to see detailed statistics (hover over it)
- Toggle repetition mode with
Ctrl+Alt+R to check for repeated words
- Use outline view (View > Outline) to navigate through scenes
- Fold sections to focus on specific parts of your manuscript
Commands
| Command |
Shortcut |
Description |
| Well Written: Toggle Repetition Mode |
Ctrl+Alt+R (Mac: Cmd+Alt+R) |
Enable/disable repeated word highlighting |
Settings
Customize the extension to match your preferences:
| Setting |
Default |
Description |
wellWritten.sceneMarkers.color |
(theme color) |
Color for scene markers. Leave empty to use theme color. Examples: #6495ED, rgb(100, 149, 237), rgba(100, 149, 237, 0.8) |
wellWritten.repetitionMode.colors |
8 colors |
Array of colors for repetition highlighting. Each repeated word gets the next color in rotation. Use semi-transparent colors (rgba) for best results. |
wellWritten.comments.color |
(theme color) |
Color for comments (// and /* */). Leave empty to use theme color. Examples: #808080, rgb(128, 128, 128), rgba(128, 128, 128, 0.8) |
wellWritten.wordCount.enabledFileTypes |
[".wrt", ".md", ".txt"] |
File extensions that display word count in status bar. |
wellWritten.wordCount.wordsPerPage |
250 |
Words per page for page count calculation. Standard book page is 250-300 words. |
wellWritten.wordCount.countSingleLetters |
false |
Include single-letter words (like "I", "a") in word count. |
wellWritten.goalCounter.dailyGoal |
500 |
Daily writing goal in words. Click the goal counter in status bar to start/stop tracking. |
To customize:
- Open Settings (
Ctrl+,)
- Search for "Well Written"
- Modify settings to your preference
Scene Marker Navigation
Folding
- Click arrow icon next to scene marker to fold/unfold
Ctrl+Shift+[ - Fold current section
Ctrl+Shift+] - Unfold current section
Ctrl+K Ctrl+0 - Fold all sections
Ctrl+K Ctrl+J - Unfold all sections
Outline View
The extension provides document symbols that appear in VS Code's built-in outline view:
- Open the Outline panel in the Explorer sidebar (or View > Outline)
- See hierarchical structure: Parts > Chapters > Scenes
- Click any item to jump to that section
- Automatically updates as you edit
Breadcrumbs
VS Code's breadcrumbs feature works with scene markers:
- Enable breadcrumbs: View > Show Breadcrumbs
- Shows current location in document structure
- Click any level to see and navigate to other sections
Theme Compatibility
All features use theme-aware colors and work beautifully with:
- ✅ Light themes (Solarized Light, Light+, etc.)
- ✅ Dark themes (Dark+, Monokai, Dracula, etc.)
- ✅ High contrast themes
Requirements
- VS Code version 1.105.0 or higher
Known Limitations
- Repetition mode: Currently doesn't group word forms (e.g., "run", "running", "ran" are separate)
- Scene markers: For organization only - not included in exports or compilation
Enjoy writing your novel! 📚✨
For detailed version history and release notes, see CHANGELOG.md.