Plume is a working codename — the final product name is still to be decided.
A fast, lightweight, open-source text editor. Mac-first, cross-platform, encoding-first.
Opening a text file should be instant. Legacy encodings should just work. And the app should feel native on your platform — not like something ported from somewhere else.
Plume is built around three promises:
- Instant. Cold start to editing in well under a second. Opening a text file is faster than launching an IDE.
- Encoding-first. Reliable detection and explicit, lossless conversion for UTF-8 (with or without BOM), UTF-16, Big5, Shift_JIS, GB18030 and more. No mojibake, no silent corruption. Line endings (LF/CRLF) are detected, displayed, and convertible.
- Native feel. Platform-correct menus, shortcuts, and behaviors on macOS and Windows. Not a lowest-common-denominator UI.
Anyone who needs a dependable everyday editor for text files, logs, CSV exports, config files, and quick code edits — especially in environments where legacy encodings (Big5, Shift_JIS, GB18030) are still a daily reality.
🚧 Early development — v0.1 MVP feature-complete, pre-release. Multi-tab editing, encoding detection/conversion UI, line-ending handling, syntax highlighting, find/replace, session restore, native menus, preferences, and file associations are implemented. Cross-platform manual verification and packaging polish are still in progress. See ROADMAP.md for details and explicit non-goals.
| Platform | Tier | Notes |
|---|---|---|
| macOS | 1 | Primary development target |
| Windows | 1 | Full support intended; CI-verified |
| Linux | 2 | Best effort; issues welcome |
- Shell: Tauri 2 — small binaries, native WebView, no bundled browser engine
- Core: Rust — file I/O, encoding detection/conversion (encoding_rs + chardetng), search backend
- Editor surface: CodeMirror 6 — kept behind a thin interface so it stays swappable
See ARCHITECTURE.md for the full picture.
Prerequisites: Node.js ≥ 20, Rust (stable), plus the Tauri prerequisites for your OS.
npm install
npm run tauri dev # run the app in development mode
npm run tauri build # produce a release bundleTests:
npm test # frontend unit tests (vitest)
cd src-tauri && cargo test # Rust core testsContributions are welcome — see CONTRIBUTING.md. Please read the licensing policy there before submitting code.