Skip to main content

A minimalist notebook for your shell.

Project description

Shellpad

A lightweight terminal-based notes editor
Minimal, fast, and markdown-friendly — perfect for note-takers who live in the terminal.


🚀 Overview

Shellpad is a simple curses-powered Markdown notebook for your terminal.
It stores all notes in a single shellpad.md file and lets you view, edit, and manage them directly in the console — no extra dependencies, no bloat.


✨ Features

  • 🗒️ Markdown-style notes stored in one file
  • ✅ Checkbox preview for [ ] and [x] tasks
  • ⚡ Realtime autosave
  • 🖊️ In-terminal or external editor (e.g., Vim, Nano)
  • 📋 System clipboard integration
  • 🔗 Open URLs directly from the editor
  • 🧭 Simple, keyboard-only navigation

🧩 Installation

  • For Mac and Linux
pipx install shellpad
  • For Windows
pipx install shellpad[windows]

🧩 Running locally

  1. Clone the repository:
git clone https://github.com/wormcracker/shellpad.git
cd shellpad
  1. Run directly:
python3 shellpad.py
  1. (Optional) Make executable:
chmod +x shellpad.py
./shellpad.py

Dependencies:
Only Python 3.8+ — no external modules required.
(Optional clipboard tools: xclip, xsel, or wl-clipboard on Linux.)


🪶 Usage

Basic Controls

Mode Key Action
List view j / k Move down / up
a Add new note
o or Enter Open note in internal editor
O Open in external editor
y Copy note internally
p Paste copied note / clipboard
Y Copy note body to system clipboard
r Rename note
d Delete note
[ / ] Move note up / down
? Show help
q Quit
Editor ESC Save and return
Ctrl+V Paste from system clipboard
Ctrl+W Delete previous word

⚙️ Configuration

Config file:
~/.config/shellpad/config.cfg %APPDATA%\shellpad\config.cfg (Windows)

Example:

notebook_file: ~/shellpad.md
external_editor: false
default_editor: vim
wrap_lines: true
realtime_save: true
doing_symbol: +
done_symbol: -

Options:

  • notebook_file — Path to your notes file
  • external_editor — Use system editor (true/false)
  • default_editor — Which external editor to use
  • realtime_save — Save as you type
  • doing_symbol, done_symbol — Customize preview icons

🗂️ Notes Format

Notes are stored in Markdown under H1 titles:

# Grocery List

[ ] Buy milk
[x] Bread bought

# Ideas

A concept for a terminal-based wiki.

💡 Tips

  • Copy and paste notes internally with y and p.
  • Press ? anytime for the built-in help window.
  • Preview automatically wraps long lines.
  • Works on Linux, macOS, and Windows (PowerShell-based clipboard).

⚖️ License

MIT License — © 2025 sushant

Use, modify, and share freely.


🌐 Links


“Simplicity is the final sophistication — Shellpad keeps your notes close and your focus closer.”

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shellpad-1.0.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shellpad-1.0.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file shellpad-1.0.1.tar.gz.

File metadata

  • Download URL: shellpad-1.0.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for shellpad-1.0.1.tar.gz
Algorithm Hash digest
SHA256 a5057416f5e79eb62d7f5e8f57335790e4d4fbc285b948a59b37cc669b7a8439
MD5 1b5ce2a96f049fe7a608913e625f1276
BLAKE2b-256 1d4f8ee25ed5bb638ef67c3470fda87619af7c7761f364781c686bf0ad783167

See more details on using hashes here.

File details

Details for the file shellpad-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: shellpad-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for shellpad-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 27f0858abb4ec5d5e1061f3870cefc5ce58e582d472ea006095046a8de306b3b
MD5 ab122cfd8d364692ab8399833f0b0689
BLAKE2b-256 9e606e5601749a7ce240cf0d73514b2bb80c11fef08dc3f64277d8691ea9893b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page