Skip to main content

jot Terribly drawn image of the word "jot" in cursive with a pencil at the end of the letter "t". The dot of the letter "i" is a red love heart.

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Quality Tests Blog posts

Minimal opinionated Python command-line interface (CLI) to jot timestamped thoughts.

Install

Recommended:

  1. Install uv.
  2. Run uv tool install jot-cli in a terminal.
  3. Update with uv tool upgrade jot-cli when there's a new release.

To install the current development version: uv tool install git+https://github.com/matt-dray/jot.

Alternatively you can use pipx: pipx install jot-cli.

Requires Python >=3.10.

CLI

Write

Open a terminal and write a jotting:

jot ate an apple

The first time you run jot, you'll be prompted for a path to a text file (.txt or .md) where your jottings will be written. The file path will be stored under the JOT_PATH key in a config.json file, which is saved to the OS-dependent location resolved by platformdirs.user_config_path("jot").

Each jotting is timestamped and prepended to your text file:

[2025-08-28 11:15] ate an apple
[2025-08-27 10:58] ate a kiwi
[2025-08-26 11:09] ate a pineapple
[2025-08-25 10:40] ate an apple and a pear

You can quote your text input to preserve special characters. Note that line breaks will be replaced with a space.

Options

You can review your jottings using the provided options. For example:

  • jot -l 3 to list the last three
  • jot -s apple -l 1 to search for 'apple' and list the most recent one
  • jot -s "[^pine]apple" to search for 'apple' with a regular expression that excludes 'pineapple'
  • jot -f 20250825 -t 20250828 to return jottings from 25 Aug 2025 (inclusive) and to 28 Aug 2025 (exclusive)

You can back up your jottings to a GitHub gist using GitHub's CLI. To do this:

  1. Download the gh CLI.
  2. Login with gh auth login.
  3. Create a new GitHub gist.
  4. Write some jottings with e.g. jot "ate an apple".
  5. Run jot -u to upload the contents of your jot file to the gist.

You'll be asked for a gist ID when you first run jot -u. This is the 32-character string found in the gist's URL or with gh gist list.

There are also flags to get meta-information:

  • jot -w to show where the config and jot files are
  • jot -v to get the version number
  • jot -h to show the help file, which includes possible option combinations

Notes

  • I developed this tool to help me remember the tasks I've done during my day job and later reflect.
  • Your kilometerage may vary; leave an issue if you find bugs or have suggestions.

Metadata

Release files for jot-cli 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jot-cli 0.4.0
File Size Uploaded
jot_cli-0.4.0.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jot-cli 0.4.0
File Interpreter ABI Platform
jot_cli-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.5 kB

Release files / jot_cli-0.4.0.tar.gz

Download URL jot_cli-0.4.0.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d41a5eeb42973d4a58762a02e2bc356e0a998bdac512005f4657ab88cadeada1
BLAKE2b-256 checksum
How to use checksums
4462fb9a8a8da08ebb369637a6863b5ec2c2d1adb15d8bc061cbaa83b995a5f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / jot_cli-0.4.0-py3-none-any.whl

Download URL jot_cli-0.4.0-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9639ffa3781c2c013cf1c60599a4aaa31739fe0c86b65f0fda3f747198a33634
BLAKE2b-256 checksum
How to use checksums
9cc7e619c73613289255babcd6b7d6ed3b3a1cdce7fb8e045ed3d31a99d5bef3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.4.1

2 release files

This release

0.4.0 This release

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page