Coding agents
A coding agent such as Claude Code, Cursor or Codex can drive the client. You describe the hardware you need in plain language, the agent works out the configuration against the venue's schema, writes the request file, and validates it with a dry run. You read the composition and send the request yourself. When quotes arrive, the agent reads them for you and lays out the trade-offs, and you accept in the web application.
Set up
There is no plugin to install. The agent runs the same commands you would, with --json for structured output.
-
Install the client and sign in yourself. The sign in prompt needs a terminal and your second factor, so an agent cannot do it for you. The agent reuses the session from your keychain.
uv tool install stoa-cli stoa --env prod login -
Paste the block below into the file your agent reads at the start of a session:
CLAUDE.mdfor Claude Code,.cursor/rulesfor Cursor,AGENTS.mdfor Codex.stoa agent-guideprints a longer guide built into the client, with more detail on request files.
The agent guide
## Stoa Markets CLI (stoa)
- `stoa` opens requests for quote on Stoa Markets and reads the quotes that come back.
It cannot accept a quote. Accepting happens in the web application, by the user.
- Pass `--env prod` on every command. `whoami`, `categories`, `assets search`, `rfq schema`,
`rfq create`, `rfq list` and `rfq get` take `--json`; use it whenever you read their output.
- Before drafting a request, run `stoa --env prod rfq schema --json` and use only the
fields, values and bounds it returns. Do not invent fields.
- Write the request as a TOML file (`stoa --env prod rfq template --direction BUY`
prints the starting point). Validate it with
`stoa --env prod rfq create -f <file> --dry-run --json` and show the user the
composition and the binding statement the venue returned.
- Never run `stoa rfq create` without `--dry-run`. The user runs the final create.
- To read quotes, run `stoa --env prod rfq list --json` and
`stoa --env prod rfq get <id> --json`. For each dealer summarize price per unit,
total, lead time, warranty, validity and conditions. Lay out trade-offs; the
decision to accept is the user's, in the web application.
- Exit code 3 means the session ended: ask the user to run `stoa --env prod login`.
Exit code 1 carries the venue's reason and a request id; show both.
A session
You: "I need four H100 SXM nodes, eight GPUs each, new, two terabytes of memory per node, 400 gig networking, delivered to San Jose by mid December. Lead time up to twelve weeks."
The agent runs stoa --env prod rfq schema --json, finds h100-sxm5 with stoa --env prod assets search h100 --json, writes h100-nodes.toml with asset_type = "node", gpu_count = 8, quantity = 4, grade_minimum = "A", system_memory_gb = 2048 pinned in exact_axes, nic_speed_gbps = 400, max_lead_time_days = 84, the delivery block, and delivery_deadline = "2026-12-15". It runs the dry run and shows you the composition and the binding statement.
You check the composition, then run the final command yourself:
stoa --env prod rfq create -f h100-nodes.toml
A week later: "What came in on the H100 request?" The agent runs rfq list and rfq get with --json and gives you the quotes side by side: per unit price, total, lead time, warranty, validity and each dealer's conditions. You open the link and accept in the web application.
The final step
Sending a request commits your organization to the Terms of Sale, and accepting a quote creates a binding trade. The client asks a person to type the confirmation, and the guide tells the agent to stop at the dry run.