Skip to content

About

Simple text editor.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Simple Note

logo

A clean and intuitive text editor designed for focused writing.
Inspired by the philosophy of brunophilipe/Noto.

macOS Windows Node.js npm Rust License

English / 한국어

Simple Note Editor


Features

Text & Markdown Editing

  • 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.

File Management

  • 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, .md files to open them directly in Simple Note. (Available after packaging and installation)

Markdown Optimization

  • 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+V in 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).

User-Friendly UI

  • 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, press Esc to exit)
  • Menu Mnemonics: Focus menu with Alt key, open menus directly with Alt+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.

Quick Install

Install on macOS 13+ (Apple Silicon) using Homebrew.

brew install --cask yurseria/tap/simple-note

Update 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.


Requirements

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+

Getting Started (Development)

# Install dependencies
npm install

# Run Electron version
npm run dev:electron

# Run Tauri version
npm run dev:tauri

Building

# Build Electron (compile only)
npm run build:electron

# Build Tauri (compile only, no bundling)
npm run build:tauri

Packaging

Generate distributable installers/packages.

# Electron packaging (dmg/zip/AppImage/deb/nsis)
npm run package:electron

# Tauri packaging (dmg/msi/AppImage/deb)
npm run package:tauri

Build artifacts are output to each package's directory:

  • Electron: packages/electron/dist/
  • Tauri: packages/tauri/src-tauri/target/release/bundle/

⚠️ Notes for Windows Packaging

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:

  1. Enable Developer Mode (Recommended): Go to Windows Settings > System (or Update & Security) > For Developers > turn on Developer Mode.
  2. Run as Administrator: Open your terminal (VS Code, PowerShell, CMD) with Administrator privileges before running the packaging command.

Tech Stack

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

Directory Structure

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

Architecture

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)

License

MIT

About

Simple text editor.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages