/install parcelcli
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 \x3Ctracking-number> --carrier evri --postcode \x3Cpostcode> --json
parcelcli track \x3Ctracking-number> --carrier evri --json
parcelcli track \x3Ctracking-number> --carrier royalmail --json
parcelcli track \x3Ctracking-number> --carrier ups --json
parcelcli track \x3Ctracking-number> --carrier fedex --json
parcelcli track \x3Ctracking-number> --carrier dhl --json
If the carrier is unknown, run:
parcelcli detect \x3Ctracking-number> --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 \x3Ctracking-number> --carrier evri --postcode \x3Cpostcode> --label "\x3Clabel>"
parcelcli watch add \x3Ctracking-number> --carrier evri --label "\x3Clabel>"
parcelcli watch add \x3Ctracking-number> --carrier royalmail --label "\x3Clabel>"
parcelcli watch add \x3Ctracking-number> --carrier ups --label "\x3Clabel>"
parcelcli watch add \x3Ctracking-number> --carrier fedex --label "\x3Clabel>"
parcelcli watch add \x3Ctracking-number> --carrier dhl --label "\x3Clabel>"
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 \x3Cid> --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.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install parcelcli - After installation, invoke the skill by name or use
/parcelcli - Provide required inputs per the skill's parameter spec and get structured output
What is parcelcli?
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... It is an AI Agent Skill for Claude Code / OpenClaw, with 120 downloads so far.
How do I install parcelcli?
Run "/install parcelcli" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is parcelcli free?
Yes, parcelcli is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does parcelcli support?
parcelcli is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created parcelcli?
It is built and maintained by cavit99 (@cavit99); the current version is v1.0.3.