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
Metadata
Release files for greek-parcel-cli 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| greek_parcel_cli-0.5.0.tar.gz | 19.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| greek_parcel_cli-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.6 kB
Release files / greek_parcel_cli-0.5.0.tar.gz
| Download URL | greek_parcel_cli-0.5.0.tar.gz |
|---|---|
| Size | 19.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
225dfa1d6deb3e351c54e62a3ba1e39555fa48e9eba04b450bf12088e167a1c1
|
|
BLAKE2b-256 checksum How to use checksums |
9c6c3c99a47c4b15b3365d45cfa9c67415a2c043933cd03973f763b53245912e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / greek_parcel_cli-0.5.0-py3-none-any.whl
| Download URL | greek_parcel_cli-0.5.0-py3-none-any.whl |
|---|---|
| Size | 25.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5ccc92d73f4ab77978039b31de9e8cb7f2392aff2c0bcf5e176f43092d0e6481
|
|
BLAKE2b-256 checksum How to use checksums |
ec22c69d83eda220a4fe4a95f4a4bc45f704bac5a2ab35cf57bba34718444033
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|