Choose the starting point that matches your stack. Each example works against an instance you run yourself.
You have
A React app
You want An agent in the product, with a sandbox of its own behind the chat.
How The TypeScript SDK and a user-scoped token from Sign in with Fountain. Your component starts the run and renders the stream itself.
import { Fountain } from "@managoat/fountain-sdk";
const fountain = new Fountain({ apiKey: userToken }); // from Sign in with Fountain
const run = fountain.runRequest({ agent_id: agentId, prompt });
for await (const chunk of run.textStream) setReply((text) => text + chunk);
Read the guide →
You have
An editor
You want A thread in Zed that runs on a machine that is not yours.
How One agent_servers entry. Credentials come from fountain auth login.
"agent_servers": {
"Fountain: reviewer": {
"command": "fountain",
"args": ["acp", "--agent", "reviewer", "--permission", "ask"]
}
}
Read the guide →
You have
A backend or a script
You want Start an agent and follow its work, with nothing installed.
How Two requests: create the conversation with a prompt, then read its event stream.
curl -sS -X POST https://managoat.com/api/conversations \
-H "Authorization: Bearer ftn_..." -H "Content-Type: application/json" \
-d '{"agent_id": "<agent_id>", "prompt": "Review the open PRs."}'
curl -N -H "Authorization: Bearer ftn_..." \
"https://managoat.com/api/conversations/<id>/stream?blocks=true"
Read the guide →
You have
A personal assistant
You want OpenClaw or Hermes hands a task to a Fountain agent from Telegram, Discord or Slack.
How OpenClaw's acpx plugin spawns fountain acp. Hermes installs the plugin this repo ships.
# OpenClaw: an ACP backend
openclaw plugins install @openclaw/acpx
# Hermes Agent: fountain_run and six siblings
hermes plugins install managoat/fountain/integrations/hermes/fountain --enable
Read the guide →
You have
A pipeline
You want Start a run from CI, hear about it when it ends.
How The CLI in a step, a signed webhook to a URL you own.
fountain run reviewer --prompt "Review PR #$PR"
fountain webhooks create https://example.com/hooks/fountain \
--event conversation.turn.done --event conversation.turn.failed
Read the guide →
You have
Your own product
You want A roster of agents and threads, under your login, on your origin.
How The SDK for the calls, Sign in with Fountain for the user, one static app.
import { Fountain } from "@managoat/fountain-sdk";
const fountain = new Fountain({ apiKey: token }); // from the OAuth flow
const roster = await fountain.agents.list();
const run = fountain.resume(conversationId).send("Pick up where you left off.");
for await (const event of run) render(event);
Read the guide →