A clean and intuitive text editor designed for focused writing.
Inspired by the philosophy of brunophilipe/Noto.
English / 한국어
- Powerful Editing: Efficient text editing capabilities including multiple cursors, batch selection, and block selection.
- Convenient Navigation: Supports find/replace and jump-to-line functionality.
- Customizable Settings: Freely configure indentation preservation, tab/space switching, and tab size.
- Multilingual Support: Prevents input errors that can occur with CJK (Korean, Chinese, Japanese) text, providing a stable typing experience.
- Multi-Tab Support: Open multiple files simultaneously in tabs, reorder them with drag-and-drop, and switch between them with ease.
- Auto-Detection: Automatically detects text encoding when opening documents to prevent garbled characters, and automatically switches to edit mode for Markdown files.
- Drag & Drop: Drop files from your file manager onto the app window to open them instantly.
- Recent Files: Quickly access recently opened files from the File menu.
- File Associations: Double-click
.txt,.mdfiles to open them directly in Simple Note. (Available after packaging and installation)
- Markdown Toolbar: Quickly insert markdown formatting with toolbar buttons — headings (H1–H5), bold, italic, strikethrough, code, blockquote, lists, task lists, links, images, tables, and more. (Remix Icon)
- Table Editing: Add/delete rows and columns from the table dropdown in the toolbar.
- Image Paste: Paste clipboard images with
Ctrl+Vin markdown mode — automatically saved to./images/folder and inserted as markdown. - Real-time Syntax Highlighting: Markdown elements such as headings, bold/italic, code, and links are visually distinguished so you can focus on writing.
- Split-Screen Preview: View and edit your Markdown document in real time with a live preview panel. Drag the divider to freely adjust the ratio of the preview pane.
- Mermaid Diagrams: Render Mermaid diagrams in markdown code blocks. Theme syncs automatically with the editor theme.
- Safe and Accurate Rendering: Fully supports syntax highlighting in code blocks and safely renders documents against security threats (XSS).
- Command Palette: Access all commands quickly with
Ctrl+Shift+P. Supports bilingual search (Korean/English) regardless of current UI language. - Zen Mode: Hide the tab bar, info bar, and toolbar to focus on writing. (
Ctrl+Shift+Enter, pressEscto exit) - Menu Mnemonics: Focus menu with
Altkey, open menus directly withAlt+F, etc. (Windows) - Dark/Light Theme: Easily switch the editor theme to match your work environment and preference.
- Document Statistics: View useful information such as character count, word count, line count, and language mode in the status bar at a glance.
- Flexible Display Settings: Adjust zoom level, font size, and more to suit your needs.
- Native OS Experience: Applies the clean, native design of each operating system (macOS, Windows) for a seamless, natural user experience.
- UI Language: Supports Korean and English. The language is automatically detected from your OS locale on first launch and can be changed anytime via View > UI Language.
Install on macOS 13+ (Apple Silicon) using Homebrew.
brew install --cask yurseria/tap/simple-noteUpdate with brew update followed by brew upgrade --cask yurseria/tap/simple-note. The app installs as Note.app.
The app is not Developer ID signed or notarized. If macOS blocks it, use System Settings → Privacy & Security → Open Anyway only if you trust the app. Homebrew does not bypass Gatekeeper.
Windows users can download .exe or .msi; Linux users can download .deb or .AppImage from GitHub Releases.
See the Homebrew Tap for existing-install guidance and release integration for maintainers.
| Item | Electron | Tauri |
|---|---|---|
| OS | macOS 13+ / Windows 10+ / Linux | macOS 13+ / Windows 10+ / Linux |
| Node.js | v22.x | v22.x |
| npm | v10.x | v10.x |
| Rust | - | 1.77+ |
# Install dependencies
npm install
# Run Electron version
npm run dev:electron
# Run Tauri version
npm run dev:tauri# Build Electron (compile only)
npm run build:electron
# Build Tauri (compile only, no bundling)
npm run build:tauriGenerate distributable installers/packages.
# Electron packaging (dmg/zip/AppImage/deb/nsis)
npm run package:electron
# Tauri packaging (dmg/msi/AppImage/deb)
npm run package:tauriBuild artifacts are output to each package's directory:
- Electron:
packages/electron/dist/ - Tauri:
packages/tauri/src-tauri/target/release/bundle/
When running npm run package:electron on Windows, a symbolic link creation error (ERROR: Cannot create symbolic link) related to winCodeSign may occur, causing the build to fail. This is due to Windows security policies. Resolve it using one of the following methods:
- Enable Developer Mode (Recommended): Go to Windows Settings > System (or Update & Security) > For Developers > turn on Developer Mode.
- Run as Administrator: Open your terminal (VS Code, PowerShell, CMD) with Administrator privileges before running the packaging command.
| Category | Shared | Electron | Tauri |
|---|---|---|---|
| UI | React 18 + TypeScript | ||
| Editor | CodeMirror 6 | ||
| State | Zustand 5 | ||
| Markdown | marked + highlight.js + DOMPurify + Mermaid | ||
| Runtime | Electron 41 | Tauri 2 (Rust) | |
| Settings | electron-store 8 | tauri-plugin-store | |
| Encoding | chardet + iconv-lite | Rust (encoding_rs) | |
| Build | electron-vite 5 | Vite 8 + Tauri CLI |
simple-note/
├── packages/
│ ├── renderer/ # Shared frontend (@simple-note/renderer)
│ │ ├── src/
│ │ │ ├── components/ # TitleBar, TabBar, Editor, InfoBar, CommandPalette
│ │ │ ├── hooks/ # useFile, useKeyboardShortcuts
│ │ │ ├── store/ # tabStore, settingsStore (zustand)
│ │ │ ├── i18n/ # Korean / English
│ │ │ ├── types/ # NoteAPI interface, Settings, Tab
│ │ │ ├── platform.ts # Platform API singleton (Proxy)
│ │ │ └── App.tsx # Main app component
│ │ └── package.json
│ │
│ ├── electron/ # Electron shell (@simple-note/electron)
│ │ ├── src/
│ │ │ ├── main/ # Electron main process
│ │ │ ├── preload/ # NoteAPI implementation (IPC bridge)
│ │ │ └── renderer/ # Entry point
│ │ └── package.json
│ │
│ └── tauri/ # Tauri shell (@simple-note/tauri)
│ ├── src/
│ │ ├── api.ts # NoteAPI implementation (Tauri invoke)
│ │ └── main.tsx # Entry point
│ ├── src-tauri/ # Rust backend
│ └── package.json
│
├── package.json # Workspace root
├── pnpm-workspace.yaml
└── tsconfig.base.json
Frontend code is shared via the @simple-note/renderer package. Platform-specific native features are abstracted through the NoteAPI interface.
Electron shell ──┐
├──▶ @simple-note/renderer (shared UI)
Tauri shell ─────┘
│
▼
NoteAPI (Proxy singleton)
│
┌──────────┼──────────┐
▼ ▼
Electron IPC Tauri invoke
(preload) (Rust backend)
MIT
