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.
Fountain
Fountain runs an agent on a cloud sandbox, and gives you a conversation with it. You send a prompt. You read the reply. Fountain operates the sandbox, and you do not.
It is an API first. Your app reaches it over a protocol you already speak, or through the SDK. The person who uses your app need never learn that an agent is there.
In a hurry?
Install the CLI and log in. For your own instance, set
FOUNTAIN_BASE_URLfirst, because the CLI defaults to the hosted one.brew install BinaryBourbon/tap/fountainfountain auth loginfountain auth whoamiThe CLI now works, and you have no agent to run yet. The guided tour builds the first one.
The problem
An agent is only useful with a sandbox behind it. That sandbox is the part nobody set out to build.
The agent needs a filesystem, a shell, a package manager and a network. It needs real credentials, and those must never reach the prompt or the transcript. It needs to remember the last time, so the second message costs a sentence and not an explanation of the first.
The sandbox also needs an owner. Something must start it, park it while nobody speaks, and wake it when somebody does. One account must never see another's work. A sandbox that nobody stops costs money for as long as it runs.
You can build all of that. It is weeks of infrastructure, and it is not your product.
What Fountain does
Fountain keeps the sandbox, and gives you the conversation.
Send a prompt. A sandbox starts, with whatever packages, files and secrets you configured, and runs the agent. It parks when the talk stops, and it costs little while parked. The next message wakes it, and the agent's work is still there.
Your secrets arrive at spawn as environment variables, so they never enter the prompt or the model's context. Fountain scrubs them out of the output it stores.
Fountain is multi-tenant. Each account reaches its own agents and its own sandboxes, because Fountain scopes each query to the caller. Your own users therefore stay apart, and you write no code for it.
Reach it the way you already work.
- ACP, for an editor or a chat surface.
- AG-UI, for a coworker platform.
- REST and SSE, for your own code, with a TypeScript SDK and a CLI over them.
What you build on top is yours. It can be a chat client whose contacts are bots, or a tool that makes an engineer faster. Your own user need not know which. Why a bot needs more than a chat UI makes that case in full.
Start here
- The guided tour builds an agent that clones a repo, changes it and opens a pull request. A second turn then lands a revision on the same PR. The tour is about forty lines. Start here if Fountain is new to you.
- The four primitives explains the data model, and why Fountain divides it four ways.
Understand it
- The four primitives, and one page each for Environment, Vault, Agent and Conversation
- Agents as teammates, and why a teammate is not a fifth primitive
- Where a secret comes from, the chain from the master key to the agent's process
- About sandboxes, the machine a conversation runs on
- The console, the apps, and the API, and why you watch an agent somewhere else
- Architecture, what runs, what it talks to, and what breaks when a dependency is down
- Why a bot needs more than a chat UI, the case for the API below it
Build with it
- The guided tour, an agent that opens a pull request
- Build a chat app, a roster-and-threads app from start to finish
- Plug into Fountain, editors, chat surfaces, plugins and SDKs
- LLM integration, how to connect an agentic IDE through
/skill
Run it
- Local setup, how to bootstrap a workstation in about ten minutes
- Self-host Fountain, what you must have and which guide to read
- Deploy an instance, the first one to read
- Troubleshoot a problem, which starts from the symptom
- Operations, how to run an instance day to day
- Services Fountain uses, sandboxes, mail, OAuth, billing and errors
Look it up
- Catalog, runtimes and skills
- CLI reference, the
fountaincommand surface - API reference, REST endpoints and auth
- TypeScript SDK
- Configuration reference, each environment variable
- Conversation states
- Glossary, with the five overloaded words
- Feature status, the two features that are not on for every account