Surf

Surf is a platform for running coding agents inside real development environments.

Instead of dropping an agent into a repo with a shell and hoping it can figure things out, Surf lets teams define the environment around the code: runtimes, services, credentials, service dependencies. Surf can then stand up a complete development desktop for the agent on each task.

Once Surf understands the environment, it can turn that knowledge into custom tools for the agent. Databases, service credentials, OpenAPI specs, GraphQL schemas, and internal dependencies become structured interfaces the agent can use directly, instead of tribal knowledge buried in docs and setup scripts.

Surf also lets teams define workflows that control how agent work moves from clarification to planning to implementation to validation. Rather than hoping an agent follows process from a prompt, teams can encode that process directly into the platform. The result is work that is more deterministic, more observable, and easier to trust in production codebases.

The goal is straightforward: make agents better at working in existing production codebases.

What Surf does

Why it exists

Most coding agents are strongest in small demos and weakest in the environments that matter most: large repos, multiple services, non-trivial setup, and team-specific engineering process.

Surf is meant to close that gap. It gives agents a better starting point and gives teams a way to encode how work should happen in their codebase.

Prior Art

Leading engineering teams have already built narrower, internal versions of this idea for themselves. Surf is aimed at turning that pattern into something configurable and reusable.

Concepts

More coming soon…