# preseem Small Go CLI for the [Preseem Model API](https://api.preseem.com/model/v1). Read-only fan-out across every resource in `preseem.yaml` (the bundled OpenAPI spec). ## Build ```bash go build . go test ./... ``` ## Auth ```bash export PRESEEM_KEY= # required export PRESEEM_URL=https://api.preseem.com # optional override ``` Add to `.envrc` for direnv auto-load. The key is sent as HTTP Basic username with an empty password, per the Preseem spec. ## Usage ``` preseem [args] [flags] ``` Resources: `accounts`, `ap`, `ap-config`, `ap-scores`, `cpe-scores`, `packages`, `services`, `routers`, `olts`, `sites`. List flags: `--json`, `--page N`, `--limit 100..1000`. Without `--page`, list endpoints auto-paginate; with `--json`, the merged output keeps the API's `{data, paginator}` envelope. ```bash preseem accounts list preseem accounts get 100 preseem ap list preseem ap get 123 preseem ap-config get 123 preseem ap-scores preseem cpe-scores preseem packages list preseem services list preseem services get 23 preseem routers list preseem olts list preseem sites list preseem accounts list --json | jq '.data | length' preseem ap list --page 1 --limit 100 ``` IDs containing `/` are URL-encoded automatically (`accounts/john/doe` → `accounts/john%2Fdoe`). ## Scope Read-only (GET) for the whole spec. PUT/DELETE wrappers are intentionally not implemented — the spec is small and stable, so add them in `cmd_*.go` when an actual write workflow shows up.