Add your description here
Project description
inkdrop
Interactive terminal email sender with recipient history and attachment autocomplete.
Install
From PyPI:
uv tool install inkdrop
Or from source, in this project directory:
uv sync
uv tool install .
First run
No manual config file needed — just run:
inkdrop
The first time, it'll walk you through a one-time setup:
- It asks for your Gmail address and an App Password (not your regular Gmail password — Gmail no longer accepts that over SMTP). Create one at: https://myaccount.google.com/apppasswords (requires 2-Step Verification to be turned on for your Google account).
- It verifies the credentials with a real login attempt before saving anything, so a typo doesn't silently get stored.
- It saves the credentials for future runs — using your OS's secure
keyring (GNOME Keyring / KWallet / Keychain) when one is available. If no
system keyring is found (common on WSL or headless Linux without a
keyring daemon running), it automatically falls back to a locally
encrypted file under
~/.inkdrop/instead — no extra setup required either way.
Every run after that is silent — no prompts, straight to composing an email.
To switch accounts or rotate your app password later:
inkdrop --reconfigure
This clears the saved credentials; the next run starts setup again.
Attachments
Drop files you frequently attach into ~/.inkdrop/attachments/ — it's
created automatically on first run, and shows up as autocomplete suggestions
when the app asks "File to attach". Typing a path with / falls back to
full filesystem completion for anything else.
Data stored
Everything lives under ~/.inkdrop/ , independent of where inkdrop itself
is installed:
| File | Purpose |
|---|---|
attachments/ |
Files you commonly attach, shown in autocomplete |
email_history.json |
Past recipient addresses, shown in autocomplete |
.secret.key , credentials.enc |
Only present if no OS keyring was found — locally encrypted Gmail credentials ( chmod 600 ) |
If a system keyring is available, credentials are stored there instead and
none of the .secret.key / credentials.enc files are created.
Development
Run without installing:
uv run inkdrop
To pick up code changes after an uv tool inkdrop , reinstall:
uv tool install . --reinstall
Platform support
v1 targets Linux only (tested on Fedora/WSL). macOS and Windows keyring
backends should work via the same keyring library, but are untested.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file inkdrop-0.1.0.tar.gz.
File metadata
- Download URL: inkdrop-0.1.0.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
673d8ab8f77810ae4da5b87076b114ef1e5f991ff784d4804069aa172958f722
|
|
| MD5 |
50c89f3554e52c5b5b830b2e4dabf5e8
|
|
| BLAKE2b-256 |
7b40da33e3f30be604bce1e6c122c020027f2ca1550f164f4dacf64ba697a953
|
File details
Details for the file inkdrop-0.1.0-py3-none-any.whl.
File metadata
- Download URL: inkdrop-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ba0cca871219f11bc171220a0cc772465c27dd5d55026378e4a7a2a7ad1dd85
|
|
| MD5 |
0287471b35261162f77d18c0f4f1f9b7
|
|
| BLAKE2b-256 |
3b6acdf66e23c43666a5358028bce2e466dcefce9aa20265d9754a63a2aa96b5
|