Track your fountain pens and inks
Find a file
2026-06-17 18:39:24 -05:00
.vscode Add CHANGELOG.md 2026-06-17 18:39:24 -05:00
__pycache__ Covert storage to sqlite backed, added ink history 2026-06-14 00:24:13 -05:00
src Add date defaults and auto-update for ink changes 2026-06-17 18:20:03 -05:00
tests Covert storage to sqlite backed, added ink history 2026-06-14 00:24:13 -05:00
.gitignore fix display of inventory 2026-06-01 10:24:38 -05:00
CHANGELOG.md Add CHANGELOG.md 2026-06-17 18:39:24 -05:00
import_csv_to_sqlite.py Covert storage to sqlite backed, added ink history 2026-06-14 00:24:13 -05:00
LICENSE initial commit 2026-04-26 22:33:44 -05:00
PROJECT_DOCUMENTATION.md Covert storage to sqlite backed, added ink history 2026-06-14 00:24:13 -05:00
pyproject.toml Covert storage to sqlite backed, added ink history 2026-06-14 00:24:13 -05:00
README.md Covert storage to sqlite backed, added ink history 2026-06-14 00:24:13 -05:00

Pen Tracker

A simple fountain pen collection tracker.

Installation

pip install .

Data Storage

Data is stored in a SQLite database by default at ~/.local/share/pen-tracker/pen_tracker.db, following the XDG Base Directory specification. The directory is created automatically if it doesn't exist.

You can override the location by setting the PEN_TRACKER_DB environment variable or using --db when running the CLI.

Usage

CLI

Interactive mode:

pen-tracker

Command-line mode:

pen-tracker --db ~/.local/share/pen-tracker/pen_tracker.db add --make "Pilot" --model "Metropolitan" --nib "F"
pen-tracker list
pen-tracker export --output my_pens.json

Import CSV data

If you are migrating from the old CSV storage format, run:

python import_csv_to_sqlite.py --db ~/.local/share/pen-tracker/pen_tracker.db

The import script will initialize the SQLite database if it does not already exist.

Features

  • Track fountain pens with details like make, model, nib, ink, etc.
  • CLI interface with interactive and command-line modes
  • Data stored in CSV format
  • Export to JSON
  • Input validation for dates
  • Configurable CSV path via PEN_TRACKER_CSV environment variable