Skip to main content

AI-assisted terminal tool for quick personal memory dumps: better TUI, multiple AI providers, optional reminders with desktop notifications, optional per-note encryption, XDG storage, CLI/TUI config.

Project description

🧠 Better Dontforget

🍴 A fork of bugswriter/dontforget.

Better Dontforget is a focused improvement of the upstream dontforget project: an AI-assisted terminal tool for quickly capturing and retrieving small personal memory dumps, enhanced with a better TUI, configurable AI providers, optional reminders with persistent desktop notifications, optional per-note encryption, XDG-compliant storage, and CLI/TUI-based configuration.

It is a quick personal memory-dump tool. Reminders and encryption are optional and per-note. It is not a calendar, task manager, or full notes application.

📦 Install

From PyPI:

pip install better-dontforget
better-dontforget config set provider gemini
better-dontforget config set api_key "$GEMINI_API_KEY"

Or, for development from source:

uv sync
better-dontforget "anything"

✨ Features

  • ⚡ Zero-friction capture: better-dontforget "anything". Works offline; AI tagging is best-effort and never loses your input.
  • 🔍 Search & AI recall: full-text search (search) and AI-assisted answers (remind) over your memories (SQLite + FTS5).
  • 🤖 Multiple AI providers: Gemini (default) and OpenAI-compatible (OpenAI, OpenRouter, self-hosted), behind a small provider abstraction.
  • 🖥️ Improved TUI: view/add/edit/delete/search, reminders, encryption, and settings — all keyboard-driven.
  • ⏰ Optional reminders: attach a due time to a note via --remind or natural language ("remind me tomorrow to …").
  • 🔔 Desktop notifications: due reminders notify via notify-send (libnotify), with a one-shot notify-pending command and optional systemd user timer that survives restarts.
  • 🔐 Optional per-note encryption: authenticated (Fernet + PBKDF2), passphrase based, explicit per note; encrypted content is never sent to AI.
  • 📁 XDG-compliant storage and CLI/TUI configuration (no manual file editing).

🚀 Quick start

uv sync
better-dontforget config set provider gemini
better-dontforget config set api_key "$GEMINI_API_KEY"

better-dontforget "ratatui was that rust tui library"
better-dontforget "remind me tomorrow 9am to check that library"
better-dontforget search "rust tui"
better-dontforget tui

The short alias bdf is also installed (bdf "ratatui was that rust tui library", bdf search "rust tui", …).

See docs/docs.md for full usage and docs/config.md for configuration.

🛠️ Development

just install     # uv sync
just check       # format + lint + type + tests + build (canonical gate)
just test
just lint
just fmt
just type

📄 License

GPL-3. Upstream dontforget by Suraj Kushwah; legacy server/client retained under legacy/ for attribution.

🙏 Credits

Better Dontforget is a fork of bugswriter/dontforget by Suraj Kushwah. The original SQLite + FTS5 storage engine and AI-assisted capture/recall concept are carried over and extended; the legacy FastAPI server and bash curl client are preserved under legacy/ for reference.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

better_dontforget-1.0.0.tar.gz (109.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

better_dontforget-1.0.0-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file better_dontforget-1.0.0.tar.gz.

File metadata

  • Download URL: better_dontforget-1.0.0.tar.gz
  • Upload date:
  • Size: 109.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for better_dontforget-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0a6a9670d1570b0a9bb1ea751db3dd16f055eab9d5d17ea7267f5a583cf184fa
MD5 bb8a9feab4a108e7c1e46b442986068c
BLAKE2b-256 33ffb580e9585acfe37d14d1e35384f8fd2f9e2660b429477c7aef367bde0943

See more details on using hashes here.

Provenance

The following attestation bundles were made for better_dontforget-1.0.0.tar.gz:

Publisher: publish.yml on vaproh/dontforget

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file better_dontforget-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for better_dontforget-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc4e29447c8a153fc9272bd879e2d00da13e1e7fbec0c56dfc91414df204768d
MD5 77cfd2e8208cca8d97de408a4a143d2a
BLAKE2b-256 66ca69fb103158c54b4286ef8f82400e1e9570cabd34099d3bc88ef210b24f45

See more details on using hashes here.

Provenance

The following attestation bundles were made for better_dontforget-1.0.0-py3-none-any.whl:

Publisher: publish.yml on vaproh/dontforget

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page