Watermelon Workbench
approvedby Lynn
A cozy novel-writing workbench for Obsidian with chapter navigation, local name generation, time-machine backups, and live writing stats. - This plugin has not been manually reviewed by Obsidian staff.
ð Watermelon Workbench
ç» Obsidian å°è¯Žäœè çäžåŒ â西çå³åäœæ¡âïŒå·ŠèŸ¹æŸç« èïŒäžéŽäžå¿åïŒå³èŸ¹æŸçµæå·¥å ·åç å仪衚çã
Watermelon Workbench is a cozy long-form writing workspace for Obsidian. It keeps your Markdown files plain and portable, while adding a focused writing interface for drafting novels, web fiction, worldbuilding notes, serial chapters, and any text that wants to grow into a small universe.
åŠæäœ ç»åžžåš Obsidian éåå°è¯ŽïŒåŽè§åŸé»è®€çŒèŸåšåäžåŒ 倪宜ççœçºžãç« è跳蜬äžå€é¡ºæã䞎æ¶è§è²ååæ»å¡å£³ââæ¬¢è¿æè¿é¢è¥¿çååŒã
âš Features
ð§ Focused writing workbench
- Opens the current Markdown file in a dedicated writing view.
- Exits back to Obsidian's normal Markdown editor without spawning extra tabs.
- Comfortable typography controls: font family, font size, and line height.
- Auto-scrolls near the bottom so the cursor stays in a comfortable writing zone.
ð Chapter navigation
- Shows sibling Markdown files as a chapter list.
- Switch chapters without leaving the workbench.
- Supports sorting by path/name or modified time.
âïž Writing-friendly indentation
- Press Enter and the next line starts at a Chinese-style first-line indent position.
- The indent is for the workbench writing experience; saved Markdown stays clean.
- Legacy full-width indent characters inserted by earlier builds are normalized when opening files.
ð² Local random name generator
No API key. No network request. No waiting for the cloud muse to wake up.
Generate and insert:
- Chinese character names
- English names
- Two-character or three-character Chinese names
- Ancient-style or modern-style place names
Click a generated name to insert it into your draft.
ð° Time Machine backups
For when chapter 7 takes a wrong turn into a swamp.
- Automatically creates a backup snapshot every ~100 new non-space characters.
- Stores backups in a
å€ä»œfolder next to your chapter file. - View added/removed lines between a snapshot and the current draft.
- Restore a snapshot; the current draft is backed up first before restoration.
ð Compact live stats
A small right-side dashboard tracks the essentials:
- Session words / typing speed
- Writing time / idle time
- Total characters / non-space characters
- Chapter count / total novel word count across the current folder
ðŠ Installation
Manual installation
-
Download or build the plugin files.
-
Copy these files into your Obsidian vault plugin folder:
<your-vault>/.obsidian/plugins/watermelon-workbench/ âââ main.js âââ manifest.json âââ styles.css -
Restart Obsidian or reload plugins.
-
Enable Watermelon Workbench in
Settings â Community plugins.
Build from source
npm install
npm run build
For development watch mode:
npm run dev
Type-check only:
npm run typecheck
ð Usage
After enabling the plugin, use one of these entry points:
- Ribbon icon: Open Watermelon Workbench
- Command palette:
Open writing workbenchOpen current file in writing workbenchExit writing workbench
Inside the workbench:
- Left panel: chapter list
- Center: focused editor
- Right panel: plugin box + live stats
Escor the toolbar exit button returns to normal Obsidian editing
ð§ Philosophy
Watermelon Workbench tries to be a writing table, not a writing prison.
Your novel remains Markdown. Your backups are Markdown. Your random names are local. The plugin is there to make drafting feel smoother, not to trap your manuscript in a mysterious proprietary watermelon crate.
ð Project structure
src/
âââ main.ts # Obsidian plugin lifecycle and commands
âââ settings.ts # Settings schema and settings tab
âââ services/
â âââ RandomNameService.ts # Local name/place generation
â âââ StatsService.ts # Writing statistics
â âââ TimeMachineService.ts # Snapshot, diff, restore helpers
âââ utils/
â âââ formatting.ts # Toolbar text transforms
âââ views/
âââ WorkbenchView.ts # Main workbench UI
ð£ Roadmap ideas
- Better theme presets for different writing moods
- Search inside chapter scope
- More local name packs and worldbuilding generators
- Export/release packaging automation
- Optional per-project writing goals
ð€ Contributing
Issues, ideas, and pull requests are welcome.
If you find a bug, it helps to include:
- Obsidian version
- Plugin version
- Operating system
- A short reproduction step list
- Whether it happens in a fresh vault
ð License
MIT License. See LICENSE.
Made for people who open a blank chapter, stare at it for 20 minutes, then suddenly write 3,000 words because the fake character name finally sounded right. ð
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.