Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher. https://pypi.org/project/bouquin/
Find a file
Miguel Jacq e6010969cb
All checks were successful
CI / test (push) Successful in 8m44s
Lint / test (push) Successful in 38s
Trivy / test (push) Successful in 19s
Don't block on pyproject modification if the version has already been bumped
2025-12-16 15:28:24 +11:00
.forgejo/workflows Whitespace 2025-12-03 18:03:48 +11:00
bouquin Allow carrying unchecked TODOs to weekends. Add 'group by activity' in time log reports 2025-12-16 15:15:38 +11:00
screenshots Screenshot update 2025-12-02 16:22:02 +11:00
tests Allow carrying unchecked TODOs to weekends. Add 'group by activity' in time log reports 2025-12-16 15:15:38 +11:00
.gitignore Invoicing 2025-12-08 20:34:11 +11:00
bouquin.desktop Fix test and appimage icon stuff 2025-11-22 17:52:39 +11:00
CHANGELOG.md Allow carrying unchecked TODOs to weekends. Add 'group by activity' in time log reports 2025-12-16 15:15:38 +11:00
find_unused_strings.py Add argparse to find_unused_strings.py so we can pass in --locale rather than hardcoded 2025-11-27 11:02:33 +11:00
LICENSE Initial commit 2025-10-31 16:00:54 +11:00
poetry.lock Update urllib3 2025-12-16 15:17:22 +11:00
pyproject.toml Allow carrying unchecked TODOs to weekends. Add 'group by activity' in time log reports 2025-12-16 15:15:38 +11:00
README.md Invoicing 2025-12-08 20:34:11 +11:00
release.sh Don't block on pyproject modification if the version has already been bumped 2025-12-16 15:28:24 +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
vulture_ignorelist.py Many changes and new features: 2025-11-25 14:52:26 +11:00

Bouquin

Bouquin logo

Introduction

Bouquin ("Book-ahn") is a notebook and planner application written in Python, Qt and SQLCipher.

It is designed to treat each day as its own 'page', complete with Markdown rendering, tagging, search, reminders and time logging for those of us who need to keep track of not just TODOs, but also how long we spent on them.

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, other than the option to send a bug report from within the app, or optionally to check for new versions to upgrade to.

Screenshots

General view

Bouquin screenshot

History panes

Screenshot of Bouquin History Preview Pane Screenshot of Bouquin History Diff Pane

Tags

Screenshot of Bouquin Tag Manager screen

Time Logging

Screenshot of Bouquin Time Log screens

Statistics

Bouquin statistics

Some of the features

  • Data is encrypted at rest
  • Encryption key is prompted for and never stored, unless user chooses to via Settings
  • All changes are version controlled, with ability to view/diff versions, revert or delete revisions
  • Automatic rendering of basic Markdown syntax
  • Tabs are supported - right-click on a date from the calendar to open it in a new tab.
  • Images are supported
  • Search all pages, or find text on current page
  • Add and manage tags
  • Automatic periodic saving (or explicitly save)
  • Automatic locking of the app after a period of inactivity (default 15 min)
  • Rekey the database (change the password)
  • Export the database to json, html, csv, markdown or .sql (for sqlite3)
  • Backup the database to encrypted SQLCipher format (which can then be loaded back in to a Bouquin)
  • Dark and light theme support
  • Automatically generate checkboxes when typing 'TODO'
  • It is possible to automatically move unchecked checkboxes from the last 7 days to the next weekday.
  • English, French and Italian locales provided
  • Ability to set reminder alarms (which will be flashed as the reminder)
  • Ability to log time per day for different projects/activities, pomodoro-style log timer and timesheet reports
  • Ability to store and tag documents (tied to Projects, same as the Time Logging system). The documents are stored embedded in the encrypted database.

How to install

Make sure you have libxcb-cursor0 installed (on Debian-based distributions) or xcb-util-cursor (RedHat/Fedora-based distributions).

If downloading from my Forgejo's Releases page, you may wish to verify the GPG signatures with my GPG key.

From PyPi/pip

  • pip install bouquin

From AppImage

  • Download the Bouquin.AppImage from the Releases page, make it executable with chmod +x, and run it.

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 ./tests.sh