Pp Amazon Orders logo

Pp Amazon Orders

CommunityPopular
mvanhorn
pp-amazon-orders

Walk your Amazon order history offline — every order, item, shipment, and dollar in a local SQLite store no other... Trigger phrases: `where is my Amazon order`, `what did I spend on Amazon this month`, `find that thing I ordered on Amazon`, `when did I order from Amazon`, `track my Amazon shipments`, `show my Amazon purchase history`, `use amazon-orders`, `run amazon-orders`.

Overview

Publishermvanhorn
Repositoryprinting-press-library
Skill namepp-amazon-orders
Stars
2K
Forks
614
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by mvanhorn on GitHub. Read the source before you install it.

Installation

Install the Pp Amazon Orders AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git /tmp/printing-press-library
mkdir -p .claude/skills
cp -r /tmp/printing-press-library/cli-skills/pp-amazon-orders .claude/skills/pp-amazon-orders
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Pp Amazon Orders in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Pp Amazon Orders on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Pp Amazon Orders is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Amazon Orders — Printing Press CLI

Prerequisites: Install the CLI

This skill drives the amazon-orders-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:
    bash
    npx -y @mvanhorn/printing-press-library install amazon-orders --cli-only
  2. Verify: amazon-orders-pp-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer):

bash
go install github.com/mvanhorn/printing-press-library/library/commerce/amazon-orders/cmd/amazon-orders-pp-cli@latest

If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.

When to Use This CLI

Reach for amazon-orders-pp-cli when an agent needs to reason across the user's Amazon order history — multi-order tracking radars, recurring-purchase detection, spending rollups, FTS5 searches like 'when did I order that USB-C cable'. The local SQLite store means cross-cutting questions return instantly without re-hitting Amazon and without burning context on full HTML pages.

When Not to Use This CLI

Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.

Unique Capabilities

These capabilities aren't available in any other tool for this API.

Local state that compounds

  • where-is-my-stuff — All in-flight Amazon shipments with their current status and ETA in one view.

    When an agent needs to answer 'is my package coming today' across many orders, this is the one-shot view.

    bash
    amazon-orders-pp-cli where-is-my-stuff --json --select orderId,status,etaDate,carrier
  • delivery-slips — Orders whose actual delivery date slipped more than N days from the original estimate.

    Surfaces unreliable carriers and sellers without manually scrolling through every order.

    bash
    amazon-orders-pp-cli delivery-slips --days 3 --since 2025-01-01 --json
  • spend — Spending broken down by month, year, category, seller, or payment method.

    Gives agents a one-shot answer for budgeting, expense reporting, and trend analysis.

    bash
    amazon-orders-pp-cli spend --by month --year 2025 --json
  • top-items — Most-ordered items by frequency or by total spend, ASIN-grouped across all history.

    Helps an agent reason about what the user actually consumes vs one-off purchases.

    bash
    amazon-orders-pp-cli top-items --by total-spend --limit 20 --json
  • subscribe-and-save — Recurring purchases inferred from order history (same ASIN ordered on a regular cadence).

    Surfaces candidates for actual S&S enrollment and detects de-facto subscriptions the user may not realize they have.

    bash
    amazon-orders-pp-cli subscribe-and-save --min-occurrences 3 --json
  • arriving-soon — Shipments arriving in the next N days, sorted by ETA.

    Lets an agent plan around incoming deliveries (e.g. 'is my router arriving before the meeting on Friday?').

    bash
    amazon-orders-pp-cli arriving-soon --days 7 --json
  • late — Active shipments past their original estimated delivery date.

    Surfaces carrier delays the moment they happen, no manual review.

    bash
    amazon-orders-pp-cli late --json

Agent-native plumbing

  • find — FTS5 search across orders, items, sellers, and tracking notes.

    Direct answer to 'when did I order that thing' without scrolling through years of order history.

    bash
    amazon-orders-pp-cli find 'usb-c cable' --json --select orderId,placedDate,total

Discovery Signals

This CLI was generated with browser-observed traffic context.

  • Capture coverage: 6 API entries from 6 total network entries
  • Protocols: html_cookie (85% confidence)

Command Reference

gift_cards — Gift card balance and activity history.

  • amazon-orders-pp-cli gift_cards — Current gift card balance plus the activity log: amounts, kinds (added/applied/refund), dates, linked order IDs.

orders — Your buyer-side order history listings and per-order detail pages.

  • amazon-orders-pp-cli orders get — Full detail for a single order: items, ASINs, prices, shipments, payment method, ship-to address, totals.
  • amazon-orders-pp-cli orders invoice — Printable invoice for an order (HTML), useful for VAT/expense reconciliation.
  • amazon-orders-pp-cli orders list — Fetch one page of your order history. Use timeFilter (year-2026, last30days, months-3) and startIndex to paginate.

shipments — Per-package tracking details.

  • amazon-orders-pp-cli shipments — Tracking detail for a single shipment: carrier, tracking number, status, ETA, delivery confirmation.

transactions — Charges and refunds across all orders, recurring services, and Prime.

  • amazon-orders-pp-cli transactions — First page of your transactions list, grouped by date. Each row has payment method, last-4, signed amount, and (when...

Hand-written commands

  • amazon-orders-pp-cli sync — Sync order history into the local SQLite store. Use --since 90d for incremental, --full to re-walk everything.
  • amazon-orders-pp-cli orders list — List orders with --time-filter (year-YYYY, last30days, months-3) and --start-index paging.
  • amazon-orders-pp-cli orders get <order-id> — Show full detail for one order (items, shipments, payment, totals).
  • amazon-orders-pp-cli orders invoice <order-id> — Print invoice for one order.
  • amazon-orders-pp-cli shipments --order-id <id> — Tracking detail for one order's shipments.
  • amazon-orders-pp-cli track <order-id> — Live tracking for one order: carrier, tracking number, status, ETA.
  • amazon-orders-pp-cli where-is-my-stuff — All in-flight shipments with current status and ETA in one view.
  • amazon-orders-pp-cli arriving-soon --days 7 — Shipments arriving in the next N days, sorted by ETA.
  • amazon-orders-pp-cli late — Shipments past their estimated delivery date.
  • amazon-orders-pp-cli delivery-slips --days 3 --since 2025-01-01 — Orders whose actual delivery slipped >N days from the original estimate. (Requires sync history.)
  • amazon-orders-pp-cli spend --by month --year 2026 — Spending rollup by month, year, ship-to, or status.
  • amazon-orders-pp-cli top-items --by count --limit 20 — Most-ordered items / ASINs across history.
  • amazon-orders-pp-cli returns — Items returned, joined orders <-> transactions. (Requires sync history.)
  • amazon-orders-pp-cli subscribe-and-save --min-occurrences 3 — De-facto subscription detector. (Requires sync history.)
  • amazon-orders-pp-cli carriers --rank — Per-carrier on-time percentage. (Requires sync history.)
  • amazon-orders-pp-cli find '<query>' — Free-text search across orders, items, ASINs, sellers.
  • amazon-orders-pp-cli transactions — Charges and refunds (transactions page parser).
  • amazon-orders-pp-cli gift-cards — Gift card balance + activity log.

Freshness Contract

This printed CLI owns bounded freshness only for registered store-backed read command paths. In --data-source auto mode, those paths check sync_state and may run a bounded refresh before reading local data. --data-source local never refreshes. --data-source live reads the API and does not mutate the local store. Set AMAZON_ORDERS_NO_AUTO_REFRESH=1 to skip the freshness hook without changing source selection.

Covered paths:

  • amazon-orders-pp-cli orders
  • amazon-orders-pp-cli orders get
  • amazon-orders-pp-cli orders invoice
  • amazon-orders-pp-cli orders list
  • amazon-orders-pp-cli transactions

When JSON output uses the generated provenance envelope, freshness metadata appears at meta.freshness. Treat it as current-cache freshness for the covered command path, not a guarantee of complete historical backfill or API-specific enrichment.

Finding the right command

When you know what you want to do but not which command does it, ask the CLI directly:

bash
amazon-orders-pp-cli which "<capability in your own words>"

which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.

Recipes

Where is everything I'm waiting on?

bash
amazon-orders-pp-cli where-is-my-stuff --json --select orderId,status,etaDate,carrier

Lists every open shipment with current status and ETA — the unified radar across all in-flight Amazon orders.

How much did I spend this year?

bash
amazon-orders-pp-cli spend --by month --year 2026 --json

Rolls up monthly Amazon spend from the local store; no live calls, sub-second.

Find the order with that thing I bought

bash
amazon-orders-pp-cli find 'usb-c hub' --json --select orderId,placedDate,total,items.title

FTS5 search across orders + items; uses dotted --select to extract just the fields the agent needs.

What ships am I being charged for that aren't here yet?

bash
amazon-orders-pp-cli late --json

Shows active shipments past their original ETA so an agent can flag carrier delays.

What do I actually buy?

bash
amazon-orders-pp-cli top-items --by total-spend --limit 20 --json

Groups every purchased ASIN across history by total spend — surfaces the recurring purchases.

Auth Setup

Amazon publishes no buyer API. The CLI imports cookies from your logged-in Chrome / Firefox / Safari / Brave session via auth login --chrome. Those cookies persist locally, refresh automatically, and authenticate every subsequent fetch — no API key, no OAuth, no resident browser at runtime.

For non-US marketplaces, pass the marketplace domain during login. Example for India:

bash
amazon-orders-pp-cli auth login --chrome --domain amazon.in

You can also set AMAZON_ORDERS_BASE_URL=https://www.amazon.in before running auth login --chrome.

Run amazon-orders-pp-cli doctor to verify setup.

Headless agent setup with 1Password (LLM-free roundtrip)

For a headless host (CI, dev container, remote agent) where you cannot run auth login --chrome, capture the session once on a logged-in machine, stash it in 1Password (or any other secrets manager), and inject it on the headless host. The cookie value never enters an LLM's context window because the bytes flow op → stdin → CLI without crossing a shell variable the LLM can read.

Stash it once (on the logged-in machine):

bash
TMP=$(mktemp -t amazon-orders-session.XXXXXX.json)
chmod 600 "$TMP"
amazon-orders-pp-cli auth export --output "$TMP" --note "captured $(date -u +%FT%TZ) from $(hostname)"
op document create "$TMP" \
  --title 'amazon-orders-session' \
  --vault Agent \
  --tags 'cli-session,amazon-orders,printing-press'
shred -u "$TMP" 2>/dev/null || rm -f "$TMP"

Inject it on every other machine:

bash
# Long form (separate fetch + import):
op document get 'amazon-orders-session' --vault Agent \
  | amazon-orders-pp-cli auth import --stdin

# Short form via op:// URI (works in direnv, agent configs, K8s init containers):
op read "op://Agent/amazon-orders-session/file" \
  | amazon-orders-pp-cli auth import --stdin

Either form lands the cookie material in ~/.config/amazon-orders-pp-cli/config.toml and you're authenticated. Validate with both:

bash
amazon-orders-pp-cli auth status
amazon-orders-pp-cli doctor --agent

auth status only confirms that cookie material is configured. It can say Authenticated while doctor still reports browser_session_proof as missing/stale; in that state live commands can return empty or null results instead of orders. Treat doctor as the end-to-end validation step for headless 1Password imports.

If doctor reports a stale or missing browser-session proof, refresh from a currently logged-in Chrome profile and re-run doctor:

bash
python3 -m pip install --user pycookiecheat  # if doctor says cookie_tool not found
export PATH="$PATH:$HOME/go/bin:$(python3 -m site --user-base)/bin"
amazon-orders-pp-cli auth login --chrome --no-input --yes
amazon-orders-pp-cli doctor --agent

If new cookies were captured from Chrome and you want other headless agents to use them, update the 1Password document without printing cookie contents:

bash
TMP=$(mktemp "${TMPDIR:-/tmp}/amazon-orders-session.XXXXXX")
chmod 600 "$TMP"
amazon-orders-pp-cli auth export --output "$TMP" --note "captured $(date -u +%FT%TZ) from $(hostname)" &&
  op document edit 'amazon-orders-session' --vault Agent "$TMP"
shred -u "$TMP" 2>/dev/null || rm -f "$TMP"

Refresh when Amazon rotates session-id (typically every few weeks; signaled by 401s from orders list):

bash
amazon-orders-pp-cli auth login --chrome           # on the logged-in machine
amazon-orders-pp-cli auth export --output /tmp/s.json
op document edit 'amazon-orders-session' --vault Agent /tmp/s.json
shred -u /tmp/s.json 2>/dev/null || rm -f /tmp/s.json

Substitutes: any secret manager that pipes to stdout works the same way. vault kv get, aws secretsmanager get-secret-value --query SecretString --output text, pass show amazon-orders-session, bw get item amazon-orders-session | jq -r .notes all chain into amazon-orders-pp-cli auth import --stdin.

AMAZON_COOKIES env var path: the CLI also auto-imports from this env var. For one-shot containers:

bash
export AMAZON_COOKIES="$(op read 'op://Agent/amazon-orders-session/file')"
amazon-orders-pp-cli auth import   # reads $AMAZON_COOKIES, then exits
amazon-orders-pp-cli orders list --json

Agent Mode

Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.

  • Pipeable — JSON on stdout, errors on stderr

  • Filterable--select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:

    bash
    amazon-orders-pp-cli orders list --agent --select id,name,status
  • Previewable--dry-run shows the request without sending

  • Offline-friendly — sync/search commands can use the local SQLite store when available

  • Non-interactive — never prompts, every input is a flag

  • Read-only — do not use this CLI for create, update, delete, publish, comment, upvote, invite, order, send, or other mutating requests

Response envelope

Commands that read from the local store or the API wrap output in a provenance envelope:

json
{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal — piped/agent consumers get pure JSON on stdout.

Agent Feedback

When you (or the agent) notice something off about this CLI, record it:

amazon-orders-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
amazon-orders-pp-cli feedback --stdin < notes.txt
amazon-orders-pp-cli feedback list --json --limit 10

Entries are stored locally at ~/.amazon-orders-pp-cli/feedback.jsonl. They are never POSTed unless AMAZON_ORDERS_FEEDBACK_ENDPOINT is set AND either --send is passed or AMAZON_ORDERS_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.

Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.

Output Delivery

Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:

SinkEffect
stdoutDefault; write to stdout only
file:<path>Atomically write output to <path> (tmp + rename)
webhook:<url>POST the output body to the URL (application/json or application/x-ndjson when --compact)

Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.

Named Profiles

A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.

amazon-orders-pp-cli profile save briefing --json
amazon-orders-pp-cli --profile briefing orders list
amazon-orders-pp-cli profile list --json
amazon-orders-pp-cli profile show briefing
amazon-orders-pp-cli profile delete briefing --yes

Explicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.

Exit Codes

CodeMeaning
0Success
2Usage error (wrong arguments)
3Resource not found
4Authentication required
5API error (upstream issue)
7Rate limited (wait and retry)
10Config error

Argument Parsing

Parse $ARGUMENTS:

  1. Empty, help, or --help → show amazon-orders-pp-cli --help output
  2. Starts with install → ends with mcp → MCP installation; otherwise → see Prerequisites above
  3. Anything else → Direct Use (execute as CLI command with --agent)

MCP Server Installation

  1. Install the MCP server:
    bash
    go install github.com/mvanhorn/printing-press-library/library/commerce/amazon-orders/cmd/amazon-orders-pp-mcp@latest
  2. Register with Claude Code:
    bash
    claude mcp add amazon-orders-pp-mcp -- amazon-orders-pp-mcp
  3. Verify: claude mcp list

Direct Use

  1. Check if installed: which amazon-orders-pp-cli If not found, offer to install (see Prerequisites at the top of this skill).
  2. Match the user query to the best command from the Unique Capabilities and Command Reference above.
  3. Execute with the --agent flag:
    bash
    amazon-orders-pp-cli <command> [subcommand] [args] --agent
  4. If ambiguous, drill into subcommand help: amazon-orders-pp-cli <command> --help.

Frequently asked questions

What does the Pp Amazon Orders AI skill do?

Walk your Amazon order history offline — every order, item, shipment, and dollar in a local SQLite store no other... Trigger phrases: `where is my Amazon order`, `what did I spend on Amazon this month`, `find that thing I ordered on Amazon`, `when did I order from Amazon`, `track my Amazon shipments`, `show my Amazon purchase history`, `use amazon-orders`, `run amazon-orders`.

Why use Pp Amazon Orders on TypingMind?

Because you install it once and use it with any model. Pp Amazon Orders is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Pp Amazon Orders in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-amazon-orders. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Pp Amazon Orders?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Pp Amazon Orders?

As many as you like. As long as a model supports skills, you can use Pp Amazon Orders with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Pp Amazon Orders AI skill free?

Yes. It is published on GitHub by mvanhorn under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇