Managoat is the hosted Fountain. Fountain is the open-source engine, and its name is on the CLI, the API, the SDK and this manual. Everything here applies to Managoat unless a page says it is for a self-hosted server.

opencode

The opencode CLI. The only runtime that can reach more than one provider.

At a glance

Provider anthropic, openai or google
Multi-provider Yes
Transport ACP, through opencode's own acp subcommand
Skills root /tmp/.config/opencode/skills
skills.sh agent opencode
System prompt ~/.config/opencode/AGENTS.md
Credential Whichever provider the model prefix names

Why you would choose this one

It is the only runtime where a change of provider is a one-line edit to model. On the others it is a different agent.

It takes the canonical provider/model-id string word for word. It then reads the prefix to decide which API key to export into the sandbox.

Set it up

apiVersion: fountain.dev/v1
kind: Agent
metadata:
name: portable
spec:
runtime: opencode
model: anthropic/claude-sonnet-4-6 # or openai/... or google/...

Add a key for whichever provider you name, at /account/inference-credentials.

Verify

Run a conversation. Then change model to a different provider and run another one. Two runs that both work are what this runtime is for.

Limits

Three providers, and no more. anthropic, openai and google are the only prefixes that Fountain can export a credential for. Fountain rejects a fourth when you save the agent, so it does not fail later as an auth error in the sandbox.

A provider you hold no key for fails at the turn, and not at save time. Fountain validates the prefix. It does not check that your credential is there.