Skip to content

Your First Hour with the CLI

A guided first hour: install and verify, sign in, run doctor, find shippable work, ask a question in plain language, and dry-run a money path.

Updated September 3, 20261 min readPostsale CLI

Available by invitation

The Postsale CLI is in an invitation-only release. Your invitation includes a signed program for your platform and its checksum, and new versions reach you the same way until the public release channel opens. To request access, email support@postsale.com.

This walkthrough takes you from install to a trusted read-only session, a work-queue check, and a dry-run money rehearsal, without purchasing labels.

In this article, we will install and verify the CLI, sign in and pick an environment, run doctor and first reads, ask what is ready to ship, and rehearse a ship intent with dry-run.

Real-World Example

We need to operate Postsale from the terminal without guessing JSON bodies, and we want to practice before anything charges a carrier.

Before We Begin

To get started, you will need:

  • A Postsale account
  • Optional Anthropic or OpenAI API key for natural language

In a hurry? The Quick Start gets you to a read-only session in a few minutes; this article is the full first hour.

1. Install and check the version

The CLI is a single signed, self-contained program: nothing else to install and no runtime needed. Put the program from your invitation on your PATH and verify:

bash
postsale --version    # the CLI's own semver

2. Sign in

bash
postsale auth login          # or: postsale auth login --no-browser
postsale account env
postsale account whoami

Details: Sign In and Credentials.

3. Run doctor

bash
postsale doctor --human

Fix token, network, carriers, origins, and freshness issues before batch work. Set an LLM key if you want natural language.

4. First reads

bash
postsale carriers list
postsale origin-addresses list
postsale orders search --query "orders from last 7 days" --page-size 5 --human

5. First agent turn

bash
postsale run "how many carriers and origin addresses do I have?"

You should see one JSON envelope on stdout. Progress stayed on stderr.

6. Find what is ready to ship

bash
postsale run "what should I ship? explain the applied filters and exclusions"

This is how Postsale answers "ready to ship" without inventing status enums. Details: Search for Orders and Use the Work Queue.

7. Dry-run a money path

Read Safety Model, then:

bash
postsale run --dry-run "Ship order <order_id> with the cheapest carrier"

Inspect simulated_effects (blocked high-risk tools) and confirmed_effects (anything that still wrote). Details: Preview Work with Dry-Run.

Tip

To rehearse the real purchase path for free, set POSTSALE_TEST_LABEL_MODE=1 in the shell. Every shipment you create is stamped test_label: true, purchases refuse any shipment that is not a test shipment, and the labels you get back are watermarked and never billed. Walkthrough: Test Without Spending.

You are ready when

  • Doctor is clean enough for your environment
  • You can explain stdout versus stderr
  • You can get a work queue (or explain why statuses failed loudly)
  • You can dry-run a ship intent and name simulated_effects vs confirmed_effects
  • You know that --yes authorizes parent tools, not parallel batch money

Good to Know

  • The web app remains best for visual Dock shipping and first-time carrier UI setup. Same account; different surface. Product help: postsale.com/help.
  • If something fails, start at Troubleshooting.

Additional Reading