@warpfreight/cli-agent
v0.5.47
Published
AI Agent CLI for Warp freight. Full booking lifecycle: quote (van/box-truck/FTL/LTL/multi-stop), book, track, events, cancel, invoices, documents, lane history, quote history, rate card. Self-provisioning login, JSON-first output.
Downloads
9,211
Readme
@warpfreight/cli-agent
The AI Agent CLI for Warp freight. Self-provisioning login, mode-specific commands, JSON-first output. Built for AI agents and automation scripts.
Looking for the full human-operator CLI (more ops surface, CSV output, homebrew)? See @wearewarp.com/cli -- docs at developer.wearewarp.com/docs/cli. Both share the same backend.
Install
npm install -g @warpfreight/cli-agentRequires Node 20+.
Login (auto-provisioning)
warp-agent login creates a Warp account and issues an API key in one command.
No sales call, no approval wait.
warp-agent login
# Prompts for: email, password, company, name
# Saves credentials to ~/.warp/config.json
# Dashboard: https://customer.wearewarp.comAlready have an API key? Skip login and set it directly:
export WARP_API_KEY="wak_live_YOUR_KEY"
# Or per-command:
warp-agent --key wak_live_YOUR_KEY statusCommands
Quote (no auth required)
# Cargo van (1-3 pallets, max 3,500 lbs total)
warp-agent van quote 90001 10001 --pallets 2 --weight 800 --date 2026-04-20
# Box truck (1-12 pallets, max 10,000 lbs total)
warp-agent box-truck quote 90001 10001 --pallets 6 --weight 800 --date 2026-04-20
# FTL (full truckload)
warp-agent ftl quote 90001 10001 --date 2026-04-20
# LTL (less-than-truckload)
warp-agent ltl quote 90001 10001 --pallets 2 --weight 600 --commodity "auto parts" --dims 48x40x48 --date 2026-04-20Quotes are all-inclusive (liftgate, residential delivery, appointment scheduling)
and expire 15 minutes after issue. Use the quote_id from the response to book.
Book
Booking requires pickup and delivery addresses. All address flags are required for first-time lanes. On repeat lanes, the server remembers the last delivery address.
warp-agent book wq_a3f8c1 \
--pickup-street "123 Main St" --pickup-city "Los Angeles" \
--pickup-state "CA" --pickup-zip "90001" \
--pickup-contact "John Doe" --pickup-phone "2135550123" \
--pickup-email "[email protected]" \
--delivery-street "456 Oak Ave" --delivery-city "Beverly Hills" \
--delivery-state "CA" --delivery-zip "90210" \
--delivery-contact "Jane Smith" --delivery-phone "3105550456" \
--delivery-email "[email protected]" \
--reference "PO-12345"First booking without a card returns PAYMENT_REQUIRED with a Stripe checkout
link. Add your card at wearewarp.com/agents/onboard
and retry.
After booking, track your shipment at customer.wearewarp.com.
Track, cancel
warp-agent track bk_7d2e91 # status + tracking dashboard + events
warp-agent events bk_7d2e91 # just the event timeline
warp-agent cancel bk_7d2e91 # refunds Stripe charge if applicableAccount
warp-agent lanes # lane history
warp-agent bookings --limit 10 # recent bookings (local + upstream)
warp-agent quote-history # past quote requests
warp-agent rate-card # mode rates + your pricing history
warp-agent status # API healthDocuments and invoices
warp-agent invoice ord_xxx # invoice for a delivered shipment
warp-agent documents ord_xxx # BOL, POD, customs formsMulti-stop FTL
For multi-stop FTL shipments (one truck, multiple pickups/deliveries), pass a JSON file:
warp-agent multistop quote stops.json
warp-agent multistop book stops.jsonWhere stops.json contains the upstream payload (pickup_date, stops[], total_pallets, etc.) per developer.wearewarp.com/docs/freight/.
Output
JSON by default. Use --format table for human-readable output.
warp-agent van quote 90001 10001 --pallets 2 --weight 800 --date 2026-04-20 --format table
# Pipe JSON to jq
warp-agent van quote 90001 10001 --pallets 2 --weight 800 --date 2026-04-20 | jq '.price_usd'Global flags
| Flag | Description |
|------|-------------|
| --key <key> | API key (overrides WARP_API_KEY) |
| --base-url <url> | API base URL (default: https://www.wearewarp.com/api/v1) |
| --format <json\|table> | Output format (default: json) |
Agent integration
Because the CLI is JSON-first, LLM agents can call it as a subprocess and parse stdout directly.
// Node.js example
import { execSync } from 'node:child_process';
const result = JSON.parse(
execSync('warp-agent van quote 90001 10001 --pallets 2 --weight 500 --date 2026-04-20')
);
console.log(`Quote: $${result.price_usd}, expires at ${result.expires_at}`);For Claude Desktop, Cursor, and other MCP-compatible clients, use the
warp-agent-mcp server instead --
tools like warp_van_quote, warp_book, warp_track are exposed natively.
Links
- Docs: wearewarp.com/agents/cli
- MCP server: warp-agent-mcp
- Full operator CLI: @wearewarp.com/cli
- API docs: developer.wearewarp.com
- Support: customer.wearewarp.com
License
MIT
