An application that helps you take notes. It's silly, but it scratched an itch and replaced some shell scripts I was using.
The easiest way to install noter is via Homebrew:
brew tap IanKnighton/homebrew-tap
brew install noterTo upgrade to the latest version:
brew upgrade noterBuild the application using Swift Package Manager:
swift build -c releaseThe executable will be at .build/release/noter.
You can copy it to a location in your PATH:
cp .build/release/noter /usr/local/bin/noter newThis will create a new note in the configured notes directory with the filename format yyyyMMdd.v.md, where:
yyyyMMddis the current date (e.g., 20260101 for January 1, 2026)vis an incrementing version number starting at 0
If multiple notes are created on the same day, the version number increments automatically (e.g., 20260101.0.md, 20260101.1.md, etc.).
You can also create a note with initial content:
noter new "This is my first note entry"This will create a new note with a timestamped entry in the format:
### HH:mm
This is my first note entrynoter add "Additional content for my note"This will append content to the most recent note in the configured notes directory. If no notes exist, a new one will be created. The entry is added with a timestamp:
### HH:mm
Additional content for my noteYou can also append the contents of a markdown file:
noter add -f path/to/file.mdThis will read the markdown file and append it to the most recent note with a timestamp header.
noter combineThis will combine all notes that have multiple versions for the same day into a single file. For example, if you have 20260102.0.md, 20260102.1.md, and 20260102.2.md, they will be combined into a single 20260102.0.md file with the format:
# MM-DD-YYYY
## AI Summary
{AI-GENERATED SUMMARY (if OPENAI_API_KEY is set)}
---
{FILE .0 ENTRIES}
---
{FILE .1 ENTRIES}
---
{FILE .2 ENTRIES}By default, the original separate files are deleted after combining.
If you have an OPENAI_API_KEY environment variable set, noter will automatically generate an AI summary of your combined notes and place it at the top of the file. The summary provides a brief overview of your day's notes and highlights any potential action items.
To skip the AI summary generation even when you have an API key configured:
noter combine --no-aiYou can customize the AI prompt by adding an ai_prompt configuration to your ~/.noterrc file:
path=/path/to/notes
ai_prompt=Your custom prompt for the AI summary
noter combine todayThis will only combine notes created today, leaving notes from other days unchanged.
noter combine --keepThis will create a new combined file while preserving the original separate files. The combined file will use the next available version number.
You can also combine these options:
noter combine today --keep
noter combine today --no-ai
noter combine --keep --no-aiThis will combine only today's notes and keep the original files.
There are three ways to specify where notes should be stored, in order of priority:
-
Command-line argument (highest priority):
noter new --path /path/to/notes noter new -p /path/to/notes noter add -p /path/to/notes "Content" noter combine -p /path/to/notes -
Environment variable:
export NOTER_PATH=/path/to/notes noter new noter add "Content" noter combine
-
Configuration file (
~/.noterrc): Create a file at~/.noterrcwith the following content:path=/path/to/notes ai_prompt=Your custom AI prompt (optional)Available configuration options:
path: Directory where notes should be storedai_prompt: Custom prompt for AI summary generation (optional)
-
Default: If no path is specified, notes will be stored in
~/notes
NOTER_PATH: Specifies the directory where notes should be storedOPENAI_API_KEY: Required for AI summary generation. If not set, the combine command will work without AI summaries.
To see all available commands and options:
noter --help
noter new --help
noter add --help
noter combine --help