Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher. https://pypi.org/project/bouquin/
Find a file
2025-11-06 15:45:31 +11:00
bouquin Add option to automatically move yesterday's unchecked TODOs to today on startup 2025-11-06 15:45:31 +11:00
tests Tests 2025-11-06 14:29:24 +11:00
.gitignore Ignore .coverage 2025-11-04 18:16:11 +11:00
CHANGELOG.md Add option to automatically move yesterday's unchecked TODOs to today on startup 2025-11-06 15:45:31 +11:00
LICENSE Initial commit 2025-10-31 16:00:54 +11:00
poetry.lock Add ability to export to Markdown (and fix heading styles) 2025-11-05 18:58:38 +11:00
pyproject.toml Add option to automatically move yesterday's unchecked TODOs to today on startup 2025-11-06 15:45:31 +11:00
README.md README updates 2025-11-04 18:36:35 +11:00
screenshot.png Refactor schema to support versioning of pages. Add HistoryDialog and diff with ability to revert. 2025-11-02 17:02:03 +11:00
tests.sh Add option to automatically move yesterday's unchecked TODOs to today on startup 2025-11-06 15:45:31 +11:00

Bouquin

Introduction

Bouquin ("Book-ahn") is a simple, opinionated notebook application written in Python, PyQt and SQLCipher.

It uses SQLCipher bindings as a drop-in replacement for SQLite3. This means that the underlying database for the notebook is encrypted at rest.

To increase security, the SQLCipher key is requested when the app is opened, and is not written to disk unless the user configures it to be in the settings.

There is deliberately no network connectivity or syncing intended.

Screenshot

Screenshot of Bouquin

Features

  • Data is encrypted at rest
  • Encryption key is prompted for and never stored, unless user chooses to via Settings
  • Every 'page' is linked to the calendar day
  • All changes are version controlled, with ability to view/diff versions and revert
  • Text is HTML with basic styling
  • Images are supported
  • Search
  • Automatic periodic saving (or explicitly save)
  • Transparent integrity checking of the database when it opens
  • Automatic locking of the app after a period of inactivity (default 15 min)
  • Rekey the database (change the password)
  • Export the database to json, txt, html, csv or .sql (for sqlite3)
  • Backup the database to encrypted SQLCipher format (which can then be loaded back in to a Bouquin)

How to install

Make sure you have libxcb-cursor0 installed (it may be called something else on non-Debian distributions).

From PyPi/pip

  • pip install bouquin

From source

  • Clone this repo or download the tarball from the releases page
  • Ensure you have poetry installed
  • Run poetry install to install dependencies
  • Run poetry run bouquin to start the application.

From the releases page

  • Download the whl and run it

How to run the tests

  • Clone the repo
  • Ensure you have poetry installed
  • Run poetry install --with test
  • Run poetry run pytest -vvvv --cov=bouquin