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.2.tar.gz (15.4 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.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: makenote_cli-1.1.2.tar.gz
  • Upload date:
  • Size: 15.4 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.2.tar.gz
Algorithm Hash digest
SHA256 edbd3a82befdbb94801350f166d24ac8004c9698a1d3bede3ed70cf87d11939d
MD5 b2952cf6447ba80c9c04ee212a6af3b5
BLAKE2b-256 f07561b707aa4365bd963e99880e1d75753817cc81d09c437f9ee0588bbfccb3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: makenote_cli-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.2 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 68dbc21c3ff514f8ebb1dcc67de77d87ede854ef8bb407d3e69cbac5234cd82e
MD5 2c5f66c688123812df58d0181933a141
BLAKE2b-256 414d2ad22f71dc7ed1ec9dadc4bb3ed83756ce6cb4ab03e6ff95398ec05a362d

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