A CLI tool for tracking parcels from Greek courier services.
Project description
Greek Parcel CLI
A command-line interface (CLI) tool for tracking parcels from various Greek courier services. Built with Python, Typer, and Rich.
Features
- Multi-Courier Support: Track packages from major Greek courier companies.
- Smart Detection: Automatically identifies the courier based on the tracking number format.
- Watch Mode: Real-time polling with desktop notifications for status updates.
- Tracking History: Save and manage your parcels for easy status updates.
- Rich Output: Beautiful terminal output with tables and status indicators.
- JSON Output: Optional JSON output for programmatic integration (e.g., widgets, scripts).
- Easy to Use: Simple CLI commands for quick tracking.
- Improved Reliability: Uses random User-Agents to mimic real browser traffic and avoid blocking.
Supported Couriers
The following courier services are currently supported:
- ACS (
acs) - Courier Center (
couriercenter) - EasyMail (
easymail) - ELTA (
elta) - Geniki Taxydromiki (
geniki) - Skroutz Last Mile (
skroutz) - Speedex (
speedex) - BoxNow (
boxnow)
Installation
Prerequisites
- Python 3.9 or higher
Install from PyPI (Recommended)
The easiest way to install Greek Parcel CLI is using pip:
pip install greek-parcel-cli
After installation, the greek-parcel command will be available globally:
# List all supported couriers
greek-parcel list
# Track a parcel (auto-detects courier)
greek-parcel track <number>
# Track with a specific courier
greek-parcel track <number> -c <courier>
# Output as JSON (for integration with scripts/widgets)
greek-parcel track <number> --json
# Track and auto-save (skip prompt)
greek-parcel track <number> --save
# Track and do NOT save (skip prompt)
greek-parcel track <number> --no-save
# List tracking history
greek-parcel history
# Assign an alias to a saved parcel
greek-parcel rename <number> "New Laptop"
# Refresh all saved parcels
greek-parcel refresh
# Watch a parcel for updates (sends desktop notification)
greek-parcel watch <number>
# Watch with custom interval (e.g., every 5 minutes)
greek-parcel watch <number> --interval 300
# Remove a parcel from history
greek-parcel forget <number>
Install from Source
Using uv (Recommended)
-
Clone the repository:
git clone https://github.com/yourusername/Greek-Parcel-CLI.git cd Greek-Parcel-CLI
-
Sync dependencies and create environment:
uv sync
Using pip
- Clone the repository and enter the directory.
- Create and activate a virtual environment:
python -m venv .venv # Windows .venv\Scripts\activate # Linux/macOS source .venv/bin/activate
- Install the package:
pip install -e .
Usage
Using uv (No installation required)
You can run the tool directly without manual installation:
uv run greek-parcel list
uv run greek-parcel track <number>
After Installation
If you installed via pip or uv sync, the greek-parcel command will be available:
greek-parcel list
greek-parcel track <number>
Development
This project uses modern Python tooling.
-
Install dependencies:
pip install -r requirements.txt
-
Run the CLI directly during development:
python -m greek_parcel list python -m greek_parcel track <number>
Contributing
Contributions are welcome! This project supports multiple courier services, but I cannot verify that all of them work correctly without real tracking numbers.
How You Can Help
-
Share Tracking Numbers: If you have a tracking number from any supported courier that you can share (anonymized if needed), please open an issue. This helps verify that the tracking functionality works correctly.
-
Report Issues: Found a bug or a courier that's not working? Please open an issue with details about the problem.
-
Fork and Contribute: Feel free to fork the repository, make improvements, and submit a pull request. Whether it's fixing bugs, adding new features, or improving documentation, all contributions are appreciated!
Getting Started
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Acknowledgements
Special thanks to Daniel Pikilidis and his project Greek-Courier-API for providing the endpoints and selectors used in this project.
License
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 greek_parcel_cli-0.5.0.tar.gz.
File metadata
- Download URL: greek_parcel_cli-0.5.0.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
225dfa1d6deb3e351c54e62a3ba1e39555fa48e9eba04b450bf12088e167a1c1
|
|
| MD5 |
13c15485215873904f24f40d82b94417
|
|
| BLAKE2b-256 |
9c6c3c99a47c4b15b3365d45cfa9c67415a2c043933cd03973f763b53245912e
|
File details
Details for the file greek_parcel_cli-0.5.0-py3-none-any.whl.
File metadata
- Download URL: greek_parcel_cli-0.5.0-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ccc92d73f4ab77978039b31de9e8cb7f2392aff2c0bcf5e176f43092d0e6481
|
|
| MD5 |
1139490e262caa3d1a98b44b731bc0ac
|
|
| BLAKE2b-256 |
ec22c69d83eda220a4fe4a95f4a4bc45f704bac5a2ab35cf57bba34718444033
|