> ## Documentation Index
> Fetch the complete documentation index at: https://docs.quote.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs and CLI

> Typed integrations with publish gates

The source workspace provides `@quotedev/sdk`, `@quotedev/cli` and Python `quotedev`. Local artifacts do not imply registry availability. Release scripts are dry-run only; publication requires the explicit `QUOTEDEV_ALLOW_PUBLISH=1` gate and separate operator approval. Never publish as part of documentation validation.

The TypeScript client exposes `registerAgent`, `listPacks`, `listProviders`, `createEstimate`, `createQuote`, `getQuote`, `acceptCounter` and `cancelQuote`. Mutating quote methods attach an Idempotency-Key automatically; supply a stable key yourself across retries. `QuoteDevValidationError` retains structured 422 detail for clarifying questions.

```sh theme={null}
quotedev register --email owner@example.com --name my-agent --json
quotedev packs --json
quotedev quote status --id QUOTE_ID --json
quotedev quote cancel --id QUOTE_ID --json
```

Other quote commands are `quote create` and `quote accept-counter`; use `--help` for required amounts and provider flags. `--json` produces machine-readable output, with exit 2 on actionable 422. Never put keys in shell history; use `QUOTEDEV_API_KEY`.

Python's `QuoteDevClient` uses standard-library urllib, typed response dataclasses and structured validation exceptions. It needs no payment SDK. Both SDKs keep estimates separate from holds; review [authorization and idempotency](https://docs.quote.dev/quotes-and-holds.md) before enabling live access.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.