A cross-platform desktop notification system for Bluesky
Project description
Bluesky Notify
A cross-platform desktop notification system for Bluesky. Monitor and receive notifications from your favorite Bluesky accounts.
Features
- Monitor multiple Bluesky accounts for new posts
- Desktop notifications support across platforms (macOS, Linux, Windows)
- Daemon mode for continuous monitoring
- Web interface for easy account management
- Email notifications support (requires Mailgun configuration)
- XDG-compliant configuration storage
- SQLite database for reliable post tracking
- Cross-platform compatibility
- Consistent CLI interface with clear version and configuration information
- Comprehensive logging system with rotation and separate error logs
Installation
pip install bluesky-notify
To verify the installation:
bluesky-notify --version
Example output:
Bluesky Notify v0.4.0
Config: /Users/username/.local/share/bluesky-notify
A cross-platform desktop notification system for Bluesky. Monitor and receive notifications from your favorite Bluesky accounts.
Usage: bluesky-notify [OPTIONS] COMMAND [ARGS]...
Run 'bluesky-notify start --daemon' to install and run as a system service.
Options:
--version Show version and exit
--help Show this message and exit.
Commands:
add Add a Bluesky account to monitor.
list List all monitored Bluesky accounts and their notification...
remove Remove a Bluesky account from monitoring.
settings View or update application settings.
start Start the notification service.
status View the current status of the service.
stop Stop the notification service.
toggle Toggle monitoring status for a Bluesky account.
update Update notification preferences for a monitored account.
Configuration
The application uses the XDG Base Directory Specification for storing its data:
- Configuration:
~/.config/bluesky-notify/ - Data:
~/.local/share/bluesky-notify/ - Cache:
~/.cache/bluesky-notify/
Email Notifications (Optional)
To enable email notifications, set the following environment variables:
export MAILGUN_API_KEY='your-api-key'
export MAILGUN_DOMAIN='your-domain'
export MAILGUN_FROM_EMAIL='notifications@yourdomain.com'
export MAILGUN_TO_EMAIL='your-email@example.com'
Usage
Command Help
To see all available commands and options:
bluesky-notify --help
Adding an Account to Monitor
bluesky-notify add username.bsky.social
Note: The handle should be provided without the '@' symbol.
Options:
--desktop/--no-desktop: Enable/disable desktop notifications (default: enabled)--email/--no-email: Enable/disable email notifications (default: disabled)
Listing Monitored Accounts
bluesky-notify list
Removing an Account
bluesky-notify remove username.bsky.social
Toggling Account Status
bluesky-notify toggle username.bsky.social
Updating Notification Preferences
bluesky-notify update username.bsky.social --desktop --no-email
Checking Service Status
View the current status of the service:
bluesky-notify status
This will show:
- Service status (running/not running) and mode (terminal/daemon)
- Web interface status and URL
- Data directory location
- Current configuration
Starting and Stopping the Service
Start the service:
# Run in terminal mode
bluesky-notify start
# Run as system service (daemon mode)
bluesky-notify start --daemon
Stop the service:
bluesky-notify stop
The stop command will automatically detect whether the service is running in terminal or daemon mode and stop it accordingly.
Viewing/Updating Settings
View current settings:
bluesky-notify settings
Update settings:
# Change check interval
bluesky-notify settings --interval 120
# Change log level
bluesky-notify settings --log-level debug
# Change web interface port
bluesky-notify settings --port 8080
Available settings:
- Check interval (in seconds)
- Log level (DEBUG, INFO, WARNING, ERROR)
- Web interface port
Logging
The application uses a comprehensive logging system:
- Log files are stored in
~/.local/share/bluesky-notify/logs/ - Two log files are maintained:
bluesky-notify.log: General application logs (INFO level and above)bluesky-notify.error.log: Error-specific logs (ERROR level only)
- Log rotation is enabled:
- Maximum file size: 1MB
- Keeps up to 5 backup files
- Rotated files are named with numerical suffixes (e.g., bluesky-notify.log.1)
Log levels can be configured using the settings command:
bluesky-notify settings --log-level debug # Set to DEBUG level
bluesky-notify settings --log-level info # Set to INFO level (default)
Version History
- 0.4.0:
- Add status command and stop command
- Improve web interface integration
- Add comprehensive logging system with rotation
- Improve server management and port configuration
- 0.3.0: Add daemon mode, web interface, and improved CLI help text
- 0.2.7: Fixed CLI output formatting and help text organization
- 0.2.6: Enhanced CLI interface with consistent version and config display
- 0.2.5: Improved help text formatting and command output
- 0.2.4: Added version and config information to all commands
- 0.2.3: Refined CLI presentation and version display
- 0.2.0: Initial public release
Development
- Clone the repository:
git clone https://github.com/jerdog/bluesky-notify.git
cd bluesky-notify
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install development dependencies:
pip install -e ".[dev]"
- Build the package:
python -m build
- Install the built package:
pip install dist/bluesky_notify-0.4.0-py3-none-any.whl
Troubleshooting
-
Version Check
- Run
bluesky-notify --versionto verify the installed version - Make sure you have the latest version installed
- Run
-
No Notifications
- Check if desktop notifications are enabled in your system
- Verify the notification service is running
- Check logs in
~/.local/share/bluesky-notify/logs/
-
API Errors
- Verify Bluesky handles are entered correctly (without '@' symbol)
- Check your internet connection
- Ensure the Bluesky API is accessible
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
If you encounter any issues or have questions, please file an issue on the GitHub repository.
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
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 bluesky_notify-0.4.0.tar.gz.
File metadata
- Download URL: bluesky_notify-0.4.0.tar.gz
- Upload date:
- Size: 105.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf782d98e5dfbb6cc47f5798658ea815b6c106c4fbd05d3cd8cc7956a753ab89
|
|
| MD5 |
66ee8f49bab55c300ecdfc3fe162c6b0
|
|
| BLAKE2b-256 |
1a87aa47169c8412e32cf61febbff725f7aceedc433d98275412dba079f9b5ac
|
File details
Details for the file bluesky_notify-0.4.0-py3-none-any.whl.
File metadata
- Download URL: bluesky_notify-0.4.0-py3-none-any.whl
- Upload date:
- Size: 105.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a4098ac71b32f795a5384c956f9f075017f4f8afa558320bc201dca9b8178c2
|
|
| MD5 |
a3223b19114161ba9335a0e5ea47d4e7
|
|
| BLAKE2b-256 |
dbf5a6c3a9cb30221f15f17145b952154bf0ae98d40e4507c48bbe51fe8d5083
|