Skip to main content

Fast terminal note logging to GitHub

Project description

makenote

Fast terminal note logging to GitHub. Log notes from your terminal and store them as JSONL files in a GitHub repo — no database, no server, just gh and Git.

Why

Developers do a lot — shipped features, fixed bugs, unblocked teammates, learned something new — and most of it goes unrecorded. Come performance review time, or when updating your resume, that work is hard to reconstruct.

makenote is a lightweight habit for capturing those moments as they happen. A two-second note from the terminal is low enough friction to actually stick. Over time, your notes become a running log of your progress and impact, stored in a GitHub repo you already own and can query however you like.

How it works

mn appends timestamped notes to notes/<subject>/notes.jsonl in a GitHub repo you configure. Notes are stored as newline-delimited JSON records and written directly via the GitHub Contents API (through the gh CLI).

Requirements

  • Python 3.9+
  • gh CLI — authenticated (gh auth login)
  • A GitHub repo to store your notes in

Installation

Homebrew (recommended)

brew tap hfinchy12/tap
brew install makenote

pip

pip install makenote-cli

Or, using pipx (recommended for CLI tools):

pipx install makenote-cli

Setup

On first run, mn launches an interactive config wizard:

mn

Or run it explicitly at any time:

mn config

You'll be prompted to set:

  • GitHub repo — the owner/repo where notes will be stored
  • Subjects — categories for your notes (e.g. work, ideas, todo)
  • Default subject — used by mn d for fast logging

Config is saved to ~/.config/makenote/config.json.

Usage

Interactive note (with subject picker)

mn

Prompts you to select a subject, then enter your note.

Quick note to default subject

mn d "your note here"

Or without an argument to be prompted:

mn d

Backdating notes

Use --date (or -D) on either mn or mn d to log a note for a past date:

mn d --date yesterday "fixed the login bug"
mn d --date 2026-03-20 "deployed the new API"
mn --date yesterday

Accepts YYYY-MM-DD or the shortcut yesterday. Future dates are rejected.

List recent notes

mn list

Shows the 20 most recent notes across all subjects, sorted newest first.

To filter by a specific subject:

mn list --subject work
mn list -s ideas

Edit config

mn config

Version

mn --version

Contributing

Pull requests are welcome. For significant changes, please open an issue first to discuss the approach.

  1. Fork the repo
  2. Create a feature branch (git checkout -b my-feature)
  3. Make your changes
  4. Run the test suite (pytest tests/ -x -q)
  5. Open a pull request

License

MIT

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

makenote_cli-1.2.0.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

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

makenote_cli-1.2.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file makenote_cli-1.2.0.tar.gz.

File metadata

  • Download URL: makenote_cli-1.2.0.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for makenote_cli-1.2.0.tar.gz
Algorithm Hash digest
SHA256 1a5f7928b039e580011ec24c13a408abda88ca37ad1b63ac8c3210f25223ba70
MD5 0ec08274afbc520190f21ba5b045dd2d
BLAKE2b-256 3b5820f38b487a0e54187ce6fdb96d9e122f4734bb34b0e6f326a0027b06b2f5

See more details on using hashes here.

File details

Details for the file makenote_cli-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: makenote_cli-1.2.0-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.12.10

File hashes

Hashes for makenote_cli-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3c6b6edb215961d54c36a120b7cbd82ea3b044459bf3febe19b8d5e58d680b1a
MD5 cf6b38778342a2dce33cf0aa83412117
BLAKE2b-256 7c407f70fe90e6fbdaf0d990b7917faf33cd190a06d5fb78cd4013ed0aec784d

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