Awesome-openclaw-skills track17
Track parcels via the 17TRACK API (local SQLite DB, polling + optional webhook ingestion)
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/track17" ~/.claude/skills/sundial-org-awesome-openclaw-skills-track17 && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/track17" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-track17 && rm -rf "$T"
manifest:
skills/track17/SKILL.mdsource content
track17 (17TRACK parcel tracking)
This skill lets Clawdbot keep a local list of your parcels, track their state via the 17TRACK Tracking API v2.2, and summarise changes.
It stores everything in a small SQLite DB under your workspace (by default:
<workspace>/packages/track17/track17.sqlite3).
<workspace> is auto-detected as the parent directory of the nearest skills/ directory that contains this skill.
For example, if you install it at /clawd/skills/track17/, data will be stored at /clawd/packages/track17/.
Requirements
must be set (17TRACK API token; used as theTRACK17_TOKEN
header).17token- Python (
preferred).python3
Optional:
if you want to verify webhook signatures.TRACK17_WEBHOOK_SECRET
to override where the DB/inbox live.TRACK17_DATA_DIR
to override what this tool considers the workspace directory.TRACK17_WORKSPACE_DIR
Quick start
- Initialise storage (safe to run multiple times):
python3 {baseDir}/scripts/track17.py init
- Add a package (registers it with 17TRACK and stores it locally):
python3 {baseDir}/scripts/track17.py add "RR123456789CN" --label "AliExpress headphones"
If carrier auto-detection fails, specify a carrier code:
python3 {baseDir}/scripts/track17.py add "RR123456789CN" --carrier 3011 --label "..."
- List tracked packages:
python3 {baseDir}/scripts/track17.py list
- Poll for updates (recommended if you don't want webhooks):
python3 {baseDir}/scripts/track17.py sync
- Show details for one package:
python3 {baseDir}/scripts/track17.py status 1 # or python3 {baseDir}/scripts/track17.py status "RR123456789CN"
Webhooks (optional)
17TRACK can push updates to a webhook URL. This skill supports webhook ingestion in two ways:
A) Run the included webhook server
python3 {baseDir}/scripts/track17.py webhook-server --bind 127.0.0.1 --port 8789
Then point 17TRACK's webhook URL at that server (ideally via a reverse proxy or Tailscale Funnel).
B) Ingest webhook payloads from stdin/file
cat payload.json | python3 {baseDir}/scripts/track17.py ingest-webhook # or python3 {baseDir}/scripts/track17.py ingest-webhook --file payload.json
If you saved webhook deliveries to the inbox directory, process them:
python3 {baseDir}/scripts/track17.py process-inbox
Common actions
- Stop tracking:
python3 {baseDir}/scripts/track17.py stop 1
- Retrack a stopped parcel:
python3 {baseDir}/scripts/track17.py retrack 1
- Delete a parcel from local DB (does not delete at 17TRACK unless you also call
):delete-remote
python3 {baseDir}/scripts/track17.py remove 1
- Show API quota:
python3 {baseDir}/scripts/track17.py quota
Operating guidance for the agent
- Prefer sync (polling) for simplicity unless the user explicitly wants webhooks.
- After adding a package, run
once to confirm a valid carrier/status was returned.status - When summarising, prioritise:
- delivered/out for delivery
- exception/failed delivery
- customs holds
- carrier handoffs
- Never echo
orTRACK17_TOKEN
.TRACK17_WEBHOOK_SECRET