https://github.com/kaishuu0123/leavepad
A simple note-taking app with integrated file editor, built with Electron and Monaco Editor
https://github.com/kaishuu0123/leavepad
cross-platform editor electron multiplatform notepad typescript
Last synced: 2 months ago
JSON representation
A simple note-taking app with integrated file editor, built with Electron and Monaco Editor
- Host: GitHub
- URL: https://github.com/kaishuu0123/leavepad
- Owner: kaishuu0123
- License: mit
- Created: 2024-10-31T13:40:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-17T11:48:30.000Z (2 months ago)
- Last Synced: 2026-04-17T12:35:13.104Z (2 months ago)
- Topics: cross-platform, editor, electron, multiplatform, notepad, typescript
- Language: TypeScript
- Homepage:
- Size: 30.7 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Leavepad

Leavepad is a multi-platform notepad focused on writing memos with an integrated file editor powered by Monaco Editor.
## Motivation
1. I wanted to make a simple note that could close the editor without saving like notepad++
1. However, notepad++ is only supported on windows (except using Wine)
1. I wanted a memo application that could be unified to the same usability on multiple platforms.
Therefore, I decided to create a memo application by Electron for my own use.
## Features
### 📝 Note Taking
- Quick note creation with `Ctrl+N`
- Full-featured Monaco Editor with syntax highlighting
- **Per-note language mode settings** (changeable via status bar)
- **JSON formatting** (F1 → "Format JSON" or click "Format" button in status bar)
- Search notes by name or content
- Tab-based interface with drag & drop reordering
- Auto-save (close without saving)
- Export / Import notes as JSON
- Delete all notes
### 📁 File Editor
- Open and edit external text files
- Syntax highlighting for 50+ programming languages
- Multiple file tabs with drag & drop support
- Drag & drop files from file explorer
- Auto-detect file encoding
- Unsaved changes detection
- Keyboard shortcuts: `Ctrl+O` (Open), `Ctrl+S` (Save), `Ctrl+Shift+S` (Save As)
### 🎨 Customization
- Dark/Light theme
- Language support: English, 日本語
- Font selection (NOTONOTO, HackGen, Geist Mono, Moralerspace HWJPDOC Neon, M PLUS 1 Code)
- Sort options (created/updated date)
- Collapsible sidebar
## Download
- [Download from releases](https://github.com/kaishuu0123/leavepad/releases)
## Support platform
- Windows
- Linux
- macOS
## Screenshots
### Welcome

### Editor
Note Editor
File Editor


JSON Formatter
Search


### Language
English
日本語 (Japanese)


### Theme
Light
Dark


## Tips
### Command Palette
Press `F1` in the editor to open the command palette and access Monaco Editor's built-in commands:
- **Format JSON** — Format JSON documents (custom command)
- **Format Document** — Format any supported language
- **Change Language Mode** — Switch syntax highlighting
- **Toggle Line Comment** — Comment/uncomment code
- **Find & Replace** — Search and replace text
- **Go to Line** — Jump to a specific line number
- And many more...
### Language Mode
Click the language indicator in the status bar (bottom-right of the note editor) to change the syntax highlighting mode for the current note. Each note can have its own language setting independent of the global default.
## Keyboard Shortcuts
### Main Window (Notes)
- `Ctrl+N` - Create new note
- `Ctrl+W` - Close current tab
### File Editor Window
- `Ctrl+N` - New file
- `Ctrl+O` - Open file
- `Ctrl+S` - Save file
- `Ctrl+Shift+S` - Save As
- `Ctrl+W` - Close current tab
## Saved data location (Path)
Notes are stored in electron's `app.getPath("userData")`
- **Windows**
- `C:\Users\\AppData\Roaming\leavepad`
- shortcut: `%APPDATA%\leavepad`
- **macOS**
- `~/Library/Application Support/leavepad`
- **Linux**
- `~/.config/leavepad/`
**Files:**
- `notes.json` - Note data
- `settings.json` - User settings
- `app-state.json` - Application state
## Development
### Recommended IDE Setup
- [VSCode](https://code.visualstudio.com/) + [devcontainer](https://code.visualstudio.com/docs/devcontainers/tutorial)
### Project Setup
#### Install
```bash
$ yarn
```
#### Development
```bash
$ yarn dev
```
#### Build
```bash
# For windows
$ yarn build:win
# For macOS
$ yarn build:mac
# For Linux
$ yarn build:linux
```
## Technology Stack
- **Framework:** Electron
- **UI:** React + TypeScript
- **Editor:** Monaco Editor
- **State Management:** Jotai
- **Styling:** Tailwind CSS + shadcn/ui
- **Database:** lowdb
- **Build:** electron-vite
# LICENSE
MIT
## FONT LICENSE
```
"Geist Mono" / "Geist Sans" is licensed under the SIL Open Font License 1.1
Copyright (c) 2023 vercel
by https://github.com/vercel/geist-font
"白源", "HackGen" is licensed under the SIL Open Font License 1.1
Copyright (c) 2019 yuru7, with Reserved Font Name "白源", "HackGen"
by https://github.com/yuru7/HackGen
"NOTONOTO" is licensed under the SIL Open Font License 1.1
Copyright (c) 2024 yuru7, with Reserved Font Name "NOTONOTO"
by https://github.com/yuru7/NOTONOTO
"Moralerspace HWJPDOC Neon" is licensed under the SIL Open Font License 1.1
Copyright (c) 2023 yuru7
by https://github.com/yuru7/moralerspace
"M PLUS 1 Code" is licensed under the SIL Open Font License 1.1
Copyright 2021 coz-m
by https://github.com/coz-m/MPLUS_FONTS
"Noto Color Emoji" is licensed under the SIL Open Font License 1.1
Copyright 2021 googlefonts
by https://github.com/googlefonts/noto-emoji
"Noto Sans JP" is licensed under the SIL Open Font License 1.1
Copyright 2014-2021 googlefonts
by https://github.com/googlefonts/noto-cjk
```
---
Made by [kaishuu0123](https://github.com/kaishuu0123) ✨