![]() |
TermiNotes is a macOS menu-bar scratchpad for terminal work. It keeps pasted terminal output, ASCII diagrams, tables, and multi-line commands in plain monospace text so they can be copied back without smart quotes, wrapped lines, or accidental command execution.
It is useful when the thing you are saving is layout-sensitive: command output,
git log --graph, stack traces, terminal tables, prompt fragments, or quick
notes that need to stay exactly shaped.
The annotated screenshot shows the main workflow: the app lives in the menu bar, keeps an image-only screenshot history in Shots, preserves indentation for terminal-safe copy, supports Find/Replace, and lets sections collapse as toggle lists.
The easiest way to build is using the provided build script, which creates a proper macOS .app bundle:
chmod +x build.sh
./build.shTo launch TermiNotes from your terminal and have it persist even after you close the terminal window:
# 1. Create a launcher script (already in project as terminotes_launcher.sh)
mkdir -p ~/bin
cp terminotes_launcher.sh ~/bin/terminotes
chmod +x ~/bin/terminotesNote: Ensure ~/bin is in your $PATH. This command uses open to launch the app bundle, so it stays alive even if the terminal is killed.
Standard note apps often rewrite text: straight quotes become smart quotes, dashes change shape, long lines wrap, and trailing newlines sneak into copied commands. Those changes break terminal diagrams and can make pasted commands unsafe. TermiNotes is deliberately plain: paste terminal-shaped text, keep its shape, find or fold what you need, and copy it back safely.
- Menu Bar Resident: Lives in your top bar (look for the
>_Nicon). - Canonical No-Wrap: ASCII art and terminal graphs (like
git log --graph) never wrap. They scroll horizontally, preserving their visual structure. - Terminal Sanitizer: Copy text back to the terminal safely with
CMD + Shift + C. It automatically:- Escapes newlines with
\for safe multi-line pasting. - Converts "smart" quotes and dashes back to ASCII.
- Trims trailing newlines to prevent accidental command execution.
- Escapes newlines with
- Zoom & Resize: On-the-fly font scaling (
CMD +/-) and a custom corner dragger for window expansion. - Toggle Lists: Notion-style collapsing. Select a chunk of lines, right-click → Toggle List — the line above the selection becomes the title (or a
Toggleline is inserted) and it starts expanded, so nothing vanishes. Click the>/vchevron in the left gutter next to the title to collapse/expand, or useOption-clickon the title,CMD + \, or the right-click menu. Folds survive restarts (toggles.json). - Screenshot Sidebar: Maccy-style clipboard history for images only — hidden by default, toggle with the Shots button or
CMD + Option + S. Works with both clipboard screenshots (Ctrl+CMD+Shift+3/4) and regularCMD+Shift+3/4file screenshots (watches the macOS screenshot folder). Each entry shows its file path underneath; click to copy the path, double-click to insert a markdown image link at the caret, or drag the image out to another app. History is content-hash deduplicated — the same image never appears twice. - Pure AppKit: Built with native macOS APIs for near-zero memory footprint and maximum responsiveness.
- Launch: Run
terminotesfrom your terminal (if aliased) or open theTermiNotes.app. - Persistence: Your notes are automatically saved to
~/Library/Application Support/TermiNotes/notes.txt. - Shortcuts:
CMD + V: Paste (Raw, no-wrap).CMD + Shift + C: Safe Copy for Terminal (Sanitized for multi-line pasting).CMD + = / -: Zoom text.CMD + \: Flip the toggle list under the caret.CMD + Option + S: Show/hide the screenshot sidebar.
- Launch at Login: Toggle this in the menu to have TermiNotes start automatically when you log in.

