Overcast is alpha — behaviour and APIs may change between releases. Pin your version and read the changelog before upgrading.

overcast

Bedrock — Amazon Bedrock Runtime

Quick start, the two Runtime operations and the modelId forms accepted, and what a canned response means for token counts, latency and streaming.

Converse and InvokeModel answer from a canned response. No model runs, so this exercises your wiring — not your prompts.

Status: ⚠️ Partial

Quick start

export AWS_ENDPOINT_URL=http://localhost:4566

aws bedrock-runtime converse \
  --model-id anthropic.claude-3-5-sonnet-20241022-v2:0 \
  --messages '[{"role":"user","content":[{"text":"hello"}]}]'

Any credentials work; with none configured, run eval "$(overcast env)" first — see Using AWS SDKs and CLI.

The reply is a complete ConverseResponse — every member the AWS model marks required, with fixed assistant text in output.message.content[0].text.

What works

AreaBehaviour
ConversePOST /model/{modelId}/converse; full response shape, so an SDK deserialises it without complaint
InvokeModelPOST /model/{modelId}/invoke; answers {"overcastEmulator": …}
modelIdA model ID, an inference-profile ID, or an ARN — percent-encoded or not

Differences from AWS

AreaOn AWSOvercast
InferenceThe named model runsNothing runs; the text is fixed regardless of the prompt
Usage metricsReal token counts and metrics.latencyMsAll zero
InvokeModel bodyThe model’s own schemaOne overcastEmulator field
StreamingInvokeModelWithResponseStream, ConverseStreamNot implemented — 501 Not Implemented
CountTokensCounts tokens for a modelNot implemented — 501 Not Implemented

Gotchas

Tip

InvokeModel’s body is opaque on AWS too — its schema belongs to the model, not to Bedrock. Use Converse where you need a response shape AWS itself defines.

Operations

All 2 listed operations are implemented. Per-operation status, notes and AWS API links: Bedrock operations.