Gestalt
gestaltd is a self-hosted integration server. You describe your platform in one YAML file, and gestaltd turns that file into a running server with authentication, token storage, integration execution, an optional MCP endpoint, optional bindings, and an embedded web UI served from the same HTTP port.
What Actually Ships
| Piece | What it does |
|---|---|
gestaltd | The server binary. It loads config, bootstraps plugins, serves the HTTP API, serves the web UI, and mounts /mcp when MCP is enabled. |
config.yaml | The declarative control plane. This is where you define auth, datastore, secrets, providers, bindings, and egress policy. |
gestalt.lock.json and .gestalt/ | Optional prepared state written by gestaltd init. Use it for deterministic startup when you depend on remote OpenAPI, GraphQL, or packaged plugins. |
| Deploy assets | server/Dockerfile, client/Dockerfile, and a Helm chart for production deployment paths. |
The Four Foundations
Configuration
Your YAML file declares the feature sets that make up a Gestalt deployment: platform auth, token storage, secret resolution, providers, bindings, and egress rules.
Prepared State
If your config points at remote OpenAPI specs, GraphQL endpoints, or packaged plugins, gestaltd init resolves them and writes lock state next to the config. Production deployments normally start from that prepared state with gestaltd serve --locked.
Providers And Invocation
Each configured provider becomes a runtime provider. All request surfaces share the same invocation broker, so token lookup, refresh, connection mode, instance selection, and auditing work the same way everywhere.
Surfaces
The same provider graph can be reached through the HTTP API, the embedded web UI, /mcp, webhook bindings, and proxy bindings.
Deployment Paths
| Mode | Description |
|---|---|
| No config | Local-only, auto-generated config, auth.provider: none, SQLite, and a generated encryption key. |
| Docker | Single container, single HTTP port, config mounted into /etc/gestalt/config.yaml. |
| Helm on Kubernetes | One Deployment for gestaltd, optional init container for locked startup. |
| Bare binary | gestaltd, gestaltd serve, gestaltd init, and gestaltd validate. |
Start Here
Run gestaltd out of the box, then move to an explicit config and locked startup.
See how config, providers, the invocation broker, bindings, and MCP fit together.
Platform ModelLearn the top-level primitives and the lifecycle of init, validate, and serve --locked.
Use the shipped Docker and Helm paths, then adapt the same model to Fly.io, Railway, Render, or Lambda.
DeployFull reference for every top-level block and the fields inside them.
Config File