Skip to content

SDKs, CLI & tooling

Every client around the managed.dev API is driven by a single OpenAPI spec. The Go and TypeScript SDKs, the mf CLI, the Terraform provider, and the MCP server are shipped and generated from it today; further SDKs (PHP, Python) follow the same pipeline. The spec is the source of truth, and CI gates block any release where a generated client and the spec have drifted.

The whole point of spec-as-source-of-truth is that you never depend on a hand-written client that has quietly fallen behind the API. When an endpoint, field, or scope changes, it changes in the spec first — and the pipeline keeps the tools honest with three concrete gates in the Go SDK’s CI:

  • A codegen-drift gate. The SDK’s wire types are regenerated from the pinned spec on every build; if the generated code doesn’t match what’s checked in, the build fails.
  • An operation-coverage gate. Every operation in the spec must be covered by the SDK’s surface — a new endpoint can’t ship in the API without landing in the SDK.
  • A daily spec-freshness check. The pinned spec is compared against the platform’s main branch every day, so the SDK can’t silently fall behind a spec change.

Because the mf CLI and the MCP server are built on that SDK, the same guarantees flow through to them: a command or tool maps to a real operation, typed the way the API actually serves it.

Go SDK

A typed client with built-in pagination, idempotency, retries, job waiting, webhook verification, and a test server. go get terriblegit.com/terrible/forge-go — see the SDK reference.

mf CLI

The official command-line client, built on the Go SDK — mf login, mf deploy build --follow, mf envs exec, mf listen, and a --json scripting contract. See the mf CLI guide and the CLI reference.

MCP server

mf mcp — an official Model Context Protocol server, so an AI agent can drive the API through 36 scoped, idempotent, job-returning tools. See the MCP guide.

TypeScript SDK

A typed client — @managed/forge — off the same generation pipeline as Go: auto-pagination, idempotent retries, typed errors, job helpers, and webhook verification, with zero runtime dependencies. npm install @managed/forge — see the SDK reference.

Terraform provider

forge_site, forge_environment, forge_domain, forge_api_key, and forge_team resources plus a forge_site data source, declared in HCL — codify your fleet and review changes before applying. A thin adapter over the Go SDK; works with Terraform and OpenTofu. See the Terraform guide.

PHP & Python SDKs

Preview Typed clients off the same generation pipeline as Go and TypeScript. Not yet shipped — until then, the API is a plain JSON-over-HTTPS surface. See the SDK roadmap.

llms.txt

Preview A machine-readable llms.txt index of the docs and reference, so coding assistants can ground answers in the current API surface. Planned, not yet published.

If you’re scripting against your own account, reach for the Go or TypeScript SDK, or the mf CLI for one-off commands and CI steps — --json output and stable exit codes make it a good pipeline citizen in any language. To declare your fleet as code, use the Terraform provider. If you’re building an agent or an integration, the MCP server gives you the same surface with the guardrails — scoped keys, idempotency, async jobs — already in place.