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

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

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.0.tar.gz (14.3 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.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for makenote_cli-1.1.0.tar.gz
Algorithm Hash digest
SHA256 8971d73559d307ee986b653f8dcc9ce4955f8ae62e3443208b4e4b5fe0f10cbb
MD5 ab0c3df5ffceba3537ed8272c4044c6f
BLAKE2b-256 0290f9434c3080d0e3fa7b49a8db9c06d0be2ae37d4183d8df988f81b96683f9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: makenote_cli-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for makenote_cli-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e8eda69ff16bf6403ca2219a85b907c2054bb5b8dde97545e6fbfef61f32a80
MD5 a35d9846b58f458562cd8ea9a92190d0
BLAKE2b-256 1f76860462261e9487b3cd7463a970ec14905299e7c0e9276e69f4b11ec7351c

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