Private package routing.

ParcelRouter scans your inbox locally, finds package tracking numbers, and routes delivery events to the tools you already use. No shopping feed. No ad funnel. No mystery parser.

curl -fsSL https://parcelrouter.com/install.sh | bash
  • Runs locally with Docker and SQLite
  • Detects UPS, FedEx, USPS, Amazon, DHL, OnTrac, and LaserShip
  • Emits webhooks for package and review events
Local package operations

Recent deliveries

Inbox scan completed two minutes ago.

2 to review
Target shipment FedEx · source: Target
High
Coffee subscription USPS · saved locally
High
Possible DHL match Review before routing
Review
Webhook ready Home Assistant · Reminders
Ready

How it works

ParcelRouter is designed for a guided local install today, and a fuller connected app tomorrow.

1

Connect a mailbox

Start with iCloud IMAP credentials. Gmail, Outlook, generic IMAP, and forwarding ingestion are planned product paths.

2

Scan for delivery signals

The parser finds tracking numbers, carriers, retailers, subjects, order hints, and suspicious low-confidence matches.

3

Review and route events

Trust high-confidence packages, review uncertain detections, and route events to Parcel, webhooks, reminders, or automation tools.

Not a shopping app

Most package apps want to become the place you shop or the cloud that receives your order emails. ParcelRouter is the layer you own.

Local-first

Your package history lives in your database. The app can run on your own machine or server.

Auditable parsing

Every detection can expose the source email, matched pattern, inferred carrier, and confidence level.

Automation-native

Package events should become webhooks, reminders, Home Assistant signals, chat alerts, or custom API calls.

Bring your tracker

Sync to Parcel when you want a polished tracking app. Keep the local source of truth when you want control.

Review queue

Low-confidence numbers can be held before they pollute your tracker or trigger automations.

Searchable history

Build a private archive of deliveries, retailers, carriers, and order metadata over time.

Route delivery events anywhere

Parcel sync is optional. The larger product is a package-event router for personal infrastructure.

Parcel
Webhooks
Home Assistant
Apple Reminders
ntfy
Slack
Discord
Calendar

Support the project

ParcelRouter is free and local-first. Small contributions help cover domains, infrastructure, and integration testing.

Use Stripe's hosted payment page to make a one-time contribution. Stripe handles payment details; ParcelRouter never sees card data.

Buy us a coffee

Common questions

The current release is an early self-hosted app. The public product direction is broader: private package detection, review, routing, and history.

Is this a replacement for Parcel?

No. It works as a local tracker first and can sync to Parcel when configured. Long term, it should be the local source of truth and automation layer around whatever tracker you prefer.

Does it need access to my email?

Today it connects to iCloud over IMAP with an app-specific password. Future versions should support OAuth providers and email forwarding.

Where is my data stored?

The current Docker app stores package metadata in local SQLite. The product direction keeps local ownership as a core promise.

Can it trigger automations?

Yes. The app can emit signed webhooks for package and review events, and destination-specific connectors can build on that event layer.

Run your own package router.

Run the guided installer, connect your mailbox, and turn shipping emails into clean package data you control.

View the repository