LumiWrite is a local-first, lightweight, high-performance Markdown editor. 📝⚡
This project is currently in MVP development.
- Markdown basics (H1-H6, paragraphs, blockquotes, lists, tasks)
- Inline styles (bold, italic, strikethrough, highlight)
- Code blocks with syntax highlighting + language selection
- Tables: render + edit (multi-line cells, insert/delete rows/cols)
- Sidebar file tree + document outline (click to jump)
- Auto-reveal current file in the tree + highlight selection
- Open/save files (Ctrl+S)
- Undo/redo + configurable hotkeys (hotkeys.json)
- Theme follows system (Light/Dark)
- Hybrid editing (source/preview switching)
- Paste images + assets management
- Rust notify file watching
- Custom title bar
- Export (HTML/PDF/long image)
- Windows/macOS packaging
- Flutter
- super_editor
- Rust
- flutter_rust_bridge
- highlight
- Flutter SDK (stable)
- Rust toolchain
- Clone the repo
git clone https://github.com/yourusername/lumiwrite.git cd lumiwrite - Install Flutter dependencies
flutter pub get
- Generate Rust bindings (when needed)
If you modify or rebuild
native/, regenerate Dart bindings:flutter_rust_bridge_codegen generate
- Run
flutter run
Place your icon PNG at the project root as app.png, and make sure
flutter_launcher_icons.image_path in pubspec.yaml points to it.
Generate icons:
flutter pub get
dart run flutter_launcher_iconsRebuild Windows:
flutter build windows --releaseThe portable build output is located at build/windows/x64/runner/Release/.
Zip the whole directory for distribution.
Note: Releases are currently Windows-only. 🪟
One-click packaging script:
powershell -ExecutionPolicy Bypass -File installer\package_portable.ps1Outputs:
dist/LumiWrite_Portable/(ready to run)dist/LumiWrite_Portable.zip(ready to share)
You can publish a Windows-only release to GitHub and keep the release tag
and pubspec.yaml version in sync:
powershell -ExecutionPolicy Bypass -File installer\release_windows.ps1 -Version 0.2.0To build automatically before packaging and release:
installer\release_windows.cmd 0.2.0 --buildThe portable package includes two scripts:
register_md.ps1: associate.md/.markdownwithLumiWrite.exeunregister_md.ps1: remove the association It also includes double-clickable CMD wrappers:register_md.cmdunregister_md.cmd
Run from the same folder as LumiWrite.exe:
powershell -ExecutionPolicy Bypass -File .\register_md.ps1
powershell -ExecutionPolicy Bypass -File .\unregister_md.ps1Default hotkeys:
- Ctrl+Z: Undo
- Ctrl+Y: Redo
- Ctrl+S: Save
- Ctrl+O: Open file
- Ctrl+Shift+O: Open folder
You can edit hotkeys.json in the project root, for example:
{
"undo": "Ctrl+Z",
"redo": "Ctrl+Y",
"save": "Ctrl+S",
"openFile": "Ctrl+O",
"openFolder": "Ctrl+Shift+O"
}Leave a value empty to disable that hotkey.
- Basic Markdown input and rendering
- File open/save
- Sidebar file tree + outline
- Code blocks + syntax highlighting + language selection
- Table render + edit
- Undo/redo + hotkey configuration
- Image paste + local storage
- Hybrid editing (source/preview switch)
- File watching (Rust notify)
- Custom title bar
- Export (HTML/PDF/long image)
- Packaging (Windows/macOS)
MIT

