Skip to main content
Automation should be explicit about its credential, structured output, and retry boundary. Prefer the typed CLI commands for supported workflows; use the raw request command only when a typed command is unavailable.

Credentials

For API-key-capable automation, provide the key through an environment variable and clear it after the job when appropriate:
An API key does not grant a browser user session. Do not automate browser authorization, hosted-wallet custody, or any action that the product marks as user-session-only.

JSON, stderr, and exit status

Use --json on every command a script parses. Successful command data is printed to stdout; errors and optional non-secret diagnostics are printed to stderr. A command that cannot complete exits nonzero. Treat a nonzero exit as a failure even if a lower-level tool printed incidental output.
Use --verbose only for diagnostics; do not parse human diagnostic text.

Retry safely

For workspace operations such as sync, preflight, and submit, retain the workspace lock file across retries. The CLI records in-flight client keys so a retry from the same workspace can recover a partially completed request without creating a duplicate submission.
Do not run a second evaluation for the same experiment while the first remains nonterminal unless your automation intentionally uses --allow-concurrent.

Raw requests

droyd request sends an authenticated HTTP method and path. It is an escape hatch, not the preferred interface for normal workflows.
--body reads a JSON file. Keep secret values out of that file and out of the repository. Verify the operation supports API-key authentication in the API Reference before automating it.
Never use --wallet-password <password> or pass an OpenRouter key directly in a command argument. Use the relevant environment-variable or stdin option.