Monitor package logistics status and identify delivery anomalies such as delays, stalls, returns, failed delivery, customs/security holds, or abnormal signin...
Coding
parcelcli
Try itTrack parcels locally with parcelcli for Evri, Royal Mail, UPS, FedEx, and DHL. Use when the user asks to track a package, detect a carrier, check delivery s...
What it does
Track parcels locally with parcelcli for Evri, Royal Mail, UPS, FedEx, and DHL. Use when the user asks to track a package, detect a carrier, check delivery s...
The skill document
parcelcli
Use parcelcli for local parcel tracking. It drives public carrier tracking pages and returns a normalized JSON shape.
Golden Path
Always use --json when calling parcelcli.
parcelcli track --carrier evri --postcode --json
parcelcli track --carrier evri --json
parcelcli track --carrier royalmail --json
parcelcli track --carrier ups --json
parcelcli track --carrier fedex --json
parcelcli track --carrier dhl --json
If the carrier is unknown, run:
parcelcli detect --json
If detection is ambiguous, ask the user to choose a carrier.
Required Inputs
- Evri can run rough public tracking without
--postcode; use--postcodeonly when the user wants fuller address-specific detail or provides it. - Royal Mail, UPS, FedEx, and DHL do not require postcode by default.
- Do not infer a postcode from memory unless the user clearly asks you to use their usual address.
Output Handling
Summarize only the normalized JSON fields. Prefer:
statusstatus_textlast_event- ETA or delivery fields when present
- blocker/error state when present
Do not paste raw carrier page text or browser dumps into chat.
Watches
Use local watch state when the user asks to monitor a parcel:
parcelcli watch add --carrier evri --postcode --label ""
parcelcli watch add --carrier evri --label ""
parcelcli watch add --carrier royalmail --label ""
parcelcli watch add --carrier ups --label ""
parcelcli watch add --carrier fedex --label ""
parcelcli watch add --carrier dhl --label ""
parcelcli watch run --json
Do not poll fast. Use 15-30 minute intervals for active delivery watches and longer intervals for non-active parcels.
Notify only on material changes: status enum, latest event, ETA, courier or handover code, delivery, exception, or blocker.
When monitoring is no longer needed, list and remove old watches with parcelcli watch list --json and parcelcli watch remove --json.
Privacy And Errors
Keep tracking numbers, postcodes, and watch state local. Do not use third-party aggregators unless the user explicitly approves that.
If Chrome is missing, say Chrome is required or use the CLI's --chrome flag if the user provides a path.
If a carrier returns unsupported or credentials_required, say that plainly and stop. For timeout or WAF failures, retry once later rather than looping.
Related skills
Convert parcel boundaries into OvitalMap-compatible CSV files, assign stable parcel codes, and maintain deduplicated country and master archives. Use for WGS84, DMS, or UTM coordinates supplied as text or images, including archive re-exports and coordinate corrections. Do not use it as cadastral or legal validation.
One-stop AI courier claim assistant for lost, damaged, or disputed packages: legal analysis, compensation calculation, escalation paths, and document generat...
Track a flight in real-time and notify when to leave for airport pickup based on distance to destination.
Track food expiry dates from grocery receipts. Get daily alerts before food goes bad, 'use this today' suggestions, and reduce food waste. Scan receipts or add items manually.
Query SPX Express shipment tracking by tracking number. Call this skill when the user mentions a tracking number matching the SPX format (CNMY..., SPXMY...),...