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.1.3.tar.gz (15.5 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.1.3-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: makenote_cli-1.1.3.tar.gz
  • Upload date:
  • Size: 15.5 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.1.3.tar.gz
Algorithm Hash digest
SHA256 48090dfe9683a0724d44c29368f8cf3ed4a6eec89a50721409e28ede451a628c
MD5 98f94b7c1ff358f14f18c6ffc8edb46b
BLAKE2b-256 c87b1e7437a87c148b1e03ad21c413a392b2208daee2f34ed5f5b56801b2947a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: makenote_cli-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 10.3 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.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0022177fa3c2576e84459cac7c2f7b8117926a4199d14a45bac4bfe987218297
MD5 c37e95ca571afab4ef4ce2b4b4f55cd1
BLAKE2b-256 77365af7dc9e3f15a76aecc2f2d6af30819d2ceb8ec42243361457d8378b13e1

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