jot 
Minimal opinionated Python command-line interface (CLI) to jot timestamped thoughts.
Install
jot is available as jot-cli from PyPI.
Recommended:
- Install uv.
- Run
uv tool install jot-cliin a terminal. - Update with
uv tool upgrade jot-cliwhen 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 3to list the last threejot -s apple -l 1to search for 'apple' and list the most recent onejot -s "[^pine]apple"to search for 'apple' with a regular expression that excludes 'pineapple'jot -f 20250825 -t 20250828to 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:
- Download the gh CLI.
- Login with
gh auth login. - Create a new GitHub gist.
- Write some jottings with e.g.
jot ate an apple. - Run
jot -uto 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 -wto show where the config and jot files arejot -vto get the version numberjot -hto show the help file, which includes possible option combinations
Notes
- I developed this tool to help me remember and reflect on the tasks I've done during my day job.
- Your kilometerage may vary; leave an issue if you find bugs or have suggestions.
- You can read more about the development of the tool in a series of blog posts.
Metadata
Release files for jot-cli 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jot_cli-0.4.1.tar.gz | 9.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jot_cli-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.8 kB
Release files / jot_cli-0.4.1.tar.gz
| Download URL | jot_cli-0.4.1.tar.gz |
|---|---|
| Size | 9.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1190c15e44d4ce433e920232ac9db89a07faa311ff28767176a987d7c9c68ec3
|
|
BLAKE2b-256 checksum How to use checksums |
8c7ecd32c9a75103792994bb870b46ff0e1c286283a7be167c0dc69ab9f56c65
|
| 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.1-py3-none-any.whl
| Download URL | jot_cli-0.4.1-py3-none-any.whl |
|---|---|
| Size | 10.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e799c1149855e9391ba7e447c5489d07898f3e0926aa883058b30a739b23cc3f
|
|
BLAKE2b-256 checksum How to use checksums |
6c45d2f4da5c032bd516254c2d493b1034dab1ccf339d215f476106b1b4db63a
|
| 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}
|