Skip to main content

jotquote

PyPI version License: MIT Python versions CI

jotquote is a command-line tool for building a collection of quotes, and it includes a simple web server to display a quote of the day. The quotes are stored in a single text file in a human-friendly syntax, one per line. 100 famous quotes are included with the package, and it is easy to get started:

$ pip install jotquote
$ jotquote
The best way out is always through.  - Robert Frost

Although there are 100 quotes included with the package, the purpose of jotquote is to help you build a collection of your own favorite quotes. Adding new quotes is easy:

$ jotquote add "The larger the island of knowledge, the longer the shoreline of wonder. - James Madison"
1 quote added for total of 639 quotes.
You now have 3 quotes by James Madison.

What's new in 1.0.0

Highlights of this release compared to 0.9.4:

  • Browser-based editor — the new jotquote webeditor app lets you edit your quotes.
  • New sectioned settings.conf — settings are now organized into [general], [lint], and [web] sections.
  • jotquote lint command — a configurable linter that checks your quote file for common problems and can automatically fix many of them.

Breaking change for 1.0.0

The settings.conf file format has changed. All settings previously under the single [jotquote] section are now split across three sections:

  • [general] — quote file path, line separator, and display options
  • [lint] — lint rules applied when adding quotes
  • [web] — web server host, port, colors, and extensions

Existing settings.conf files with the old [jotquote] section continue to work (jotquote migrates them in memory and emits a warning), but please update your file to the new format to silence the warning.

See the settings.conf section of DOCS_USER.md for the full property reference and an example of the new format.

Starting the web server

In some cases, the command-line might be good enough for viewing the quotes in your collection, but you can start a web server that will show a quote of the day. The simplest way to start the web server is with the built-in command:

$ jotquote webserver

By default, the web server is only accessible on the system on which it is running. But by editing the settings.conf file, the web server can be made accessible to computers on the network also. See DOCS_USER.md for details.

The quote file

jotquote stores the quotes in a text file that uses a human-friendly syntax and can be modified with a plain text editor if necessary. Quotes are stored in the text file one per line using the syntax:

<quote> | <author> | <publication> | <tag1, tag2, etc...>

For example:

The best way out is always through. | Robert Frost | A Servant to Servants | motivational, poetry

You can find the location of the quote file using the jotquote info command, and you can change the location by modifying the quote_file property in settings.conf.

The text file is encoded in UTF-8 to allow the full Unicode character set.

Extended functions

To help you build your collection, the command-line interface has an extended set of functions including tagging and keyword searching. Here are a couple of examples. To display a random quote that has the 'motivational' tag, use the command:

$ jotquote random -t motivational

Or to display all quotes that have the word 'Madison' in the quote, author name, or publication name, use this command:

$ jotquote list -k Madison

The help for these extended functions can be accessed with the -h argument; for example, to see the help for the jotquote add function, use the command:

$ jotquote add -h

The settings.conf file

The behavior of the jotquote command is controlled with the settings.conf file. This file is always found at ~/.jotquote/settings.conf on Windows, Mac, and Linux. See DOCS_USER.md for the full table of available properties.

Supported environments

jotquote is tested on Python 3.9 through 3.14 on Windows, Mac, and Linux.

Additional documentation

DOCS_USER.md contains full user reference documentation for the package, including:

  • Complete CLI command reference with all options and examples
  • The web editor for managing quote tags from a browser
  • Full settings.conf property reference

The API reference section of DOCS_DEVELOPER.md documents the Python API of the jotquote.api package, with signatures and code examples for every public function and class.

Credit

This package was inspired by other similar utilities including Ken Arnold's original UNIX utility fortune. This package also relies on the Flask and Click packages by Armin Ronacher.

License

MIT — see LICENSE.txt for details.

Release files for jotquote 1.0.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 jotquote 1.0.0
File Size Uploaded
jotquote-1.0.0.tar.gz 2.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for jotquote 1.0.0
File Interpreter ABI Platform
jotquote-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.4 MB

Release files / jotquote-1.0.0.tar.gz

Download URL jotquote-1.0.0.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
3f46d44ad428fa7f0e2ca595c392cb6e33ff848c3d247519079e4b08f20fd910
BLAKE2b-256 checksum
How to use checksums
76fbe9f27210e9b9d34244cfc43cccca0f74e8d04e78de7a53af481c0f4998cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / jotquote-1.0.0-py3-none-any.whl

Download URL jotquote-1.0.0-py3-none-any.whl
Size 2.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4530b3a538ab4fc112978a1edc1f76be93993b0812d3695720e61b57fc5ca551
BLAKE2b-256 checksum
How to use checksums
e28e384b6e0325d34fcc174e2edf166fd2701be53dd6b867ccc0d9c0607f6d71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.9.4

2 release files

0.9.3

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