Guide · goose
Connect goose to Synap
-
Get a free key
Sign in with Google at synap.linkrra.com — no card. Your key starts with
sk-pool-. -
Install goose
The CLI from Block. Homebrew on macOS.
brew install block-goose-cli -
Point it at Synap
No config file needed. Note that goose splits the address:
OPENAI_HOSTis the origin without/v1, and the rest of the path goes inOPENAI_BASE_PATH.export GOOSE_PROVIDER=openai export GOOSE_MODEL=qwen3-coder-30b export OPENAI_HOST=https://synap.linkrra.com export OPENAI_BASE_PATH=v1/chat/completions export OPENAI_API_KEY=sk-pool-... -
Give it a job
Headless with
run -t, or typegoosefor the session UI.goose run -t "implement fizzbuzz in fizz.py"
Notes, prices and limits
Four environment variables, no config file. Recommended model: qwen3-coder-30b —
$0.0675 in and $0.27 out
per 1M tokens, 98,304-token context.
Run live against this API on goose 1.54.0: it drove its Developer extension, called its text-editor tool and rewrote the file; the result was executed and asserted correct.
Getting the split wrong is the one way this fails: OPENAI_HOST with https://synap.linkrra.com/v1 in it, plus the default base path, requests /v1/v1/chat/completions.
The same four values work in ~/.config/goose/config.yaml if you want a file. The key still comes from OPENAI_API_KEY or the keyring.
goose run --no-session -t "…" is the headless form; -i <file> reads the prompt from a file, -i - from stdin.
On the free tier: every request counts input and output against 100,000 free tokens a day, and answers stop at 4,096 output tokens. Coding agents send long prompts, so the free tier covers a short session; credits cover the rest.
Field names from goose docs: OpenAI provider, and goose 1.54.0 run against this API, checked 2026-11-03 20:20 UTC. Prices refresh from /v1/models when this page loads.