goro command line client wraps the same HTTP API your agent uses. It is
useful for three things: setting up a key once, exploring the catalog by hand
before you wire anything up, and scripting calls where a full agent would be
overkill.
Human-readable by default, raw JSON on demand, and an exit code that says what
happened so a shell script can branch on it.
Install
goro command. The package is scoped because the bare goro
name on npm belongs to an unrelated project.
Prefer not to install globally?
npx @goroo/cli discover -q "..." works the
same way.First run
~/.goro/config.json with permissions 0600. The key is never echoed while
you paste it and is never printed back afterwards.
The commands
Global options
-j and -o are independent. -o always writes the same JSON -j prints, so
you can keep a readable terminal and still capture the machine-readable result:
Exit codes
Every command exits with one of five codes. Scripts branch on these rather than parsing output.FAILED or TIMED_OUT also exits 4, even though the
HTTP call itself succeeded. The run is what you asked about, so the run is what
the exit code reports on.
How prices read
The CLI shows two different kinds of number and never mixes them up.1
A rate is exact
A rate is what one unit costs you: a row, a page, a second of audio. It
prints flat, with no hedging:
$0.0069 per profile. A flat-priced tool
prints the same way, and there the rate is the whole price:
$0.18 per call.2
A ceiling is a maximum
Before a call runs, the price attached to a tool is a ceiling for your
request, not a prediction. It always prints with the words “up to”, for
example
up to $6.00 per call. You are never charged above it, and the
final charge is usually well below it.3
A charge is what happened
After a call completes, the CLI shows what it actually cost and what that
works out to per result:
charged $0.0105 (1 result, $0.0105 each).Environment
GORO_API_KEY is the one to reach for in CI: nothing is written to disk, and
no setup step is needed.
Every command, with examples
Piping to jq, scripting retries, and running a batch of inputs.