Skip to main content
Content Studio is an open-source design agent built on Managed Deep Agents. Your team requests work in Slack, and the agent returns finished files in the thread.
Managed Deep Agents is in public beta on LangSmith Cloud and Bring Your Own Cloud (BYOC). Use Managed Deep Agents CLI and SDK v0.10 or later for BYOC.

Deploy the agent

Before you start, make sure you have:
  • A LangSmith Cloud account and an API key that can deploy.
  • A key for your model provider. On the LLM Gateway, the agent uses your LangSmith key instead.
  • Permission to install apps in your Slack workspace, or a workspace admin who can approve the agent’s Slack app.
To deploy with a coding agent such as Claude Code, Codex, or Cursor, paste this prompt. It installs the agent, checks the setup, and asks before anything that bills or deploys.

Deploy the design agent with your coding agent

To deploy it yourself:
1

Install the project

The installer installs uv if needed, then clones the repository and sets it up.
2

Add your keys

The command asks for each key and keeps it hidden. On the LLM Gateway, skip the provider key and run uv run design-agent config set DESIGN_AGENT_MODEL=langsmith:anthropic/claude-opus-5-5 instead.mda deploy forwards every key in .env as a deployment secret, except LANGSMITH_API_KEY, which signs the deploy.
3

Publish the sandbox

mda deploy builds sandbox/setup.sh into a snapshot on its own. That build uses a Docker image base, which gets a 1 GiB filesystem. The design agent’s machine, with Chrome, FFmpeg, and HyperFrames, is about 1.3 GiB. This command builds a larger snapshot in your workspace instead and points sandbox/__init__.py at it.It takes 10 to 15 minutes and runs once per workspace. Publish again only when sandbox/setup.sh changes.
4

Deploy

The first deploy provisions the agent’s Slack app. If the command prints a Slack link, open it, approve the app for your workspace, and press Enter. A workspace admin may need to approve the app first.
5

Send a first request

After the first deploy, the agent sends you a direct message. Reply there, or invite it to a channel and mention it with a request, such as a launch graphic for a product. Progress updates and finished files appear in the same thread.
A Slack thread. A person asks Content Studio for a product launch graphic for Managed Deep Agents. The agent marks its steps done, attaches four versions of the graphic in landscape and square, light and dark, and explains the idea behind the design.

Example Slack thread: progress updates, then finished files.

Customize the design agent

Most changes are edits to files in the repository. Common ones:
  • Brand pack: Your colors, fonts, logos, and voice live in workspace/brand/. Ask your coding agent to build the pack from your website and brand guide.
  • Skills: Each workflow is a folder in skills/. Add one for a request your team makes often, such as a weekly newsletter header.
  • Instructions: The always-on prompt is instructions.md. Keep it short, and put workflows in skills.
  • MCP servers: Copy config/mcp.example.toml to config/mcp.toml and turn on servers such as Notion or GitHub. Each person signs in as themselves through a workspace connection.
  • Model: Set DESIGN_AGENT_MODEL with uv run design-agent config set. Any chat model with tool calling and vision works.
To try a change and ship it, use these mda commands: For more information, see Customization in the repository.

Explore the project

Each managed capability is a file or folder at the root of the repository:

Architecture

Managed Deep Agents provides the Slack app, identity, schedules, and a sandbox per thread. The repository adds the design workflows, brand pack, and rendering tools.
A Slack thread goes to the main agent on Managed Deep Agents, which reads skills and a wiki, keeps team and personal memory, uses managed tools and MCP servers, and works in a sandbox per thread with async subagents, then posts the film back to the same thread.A Slack thread goes to the main agent on Managed Deep Agents, which reads skills and a wiki, keeps team and personal memory, uses managed tools and MCP servers, and works in a sandbox per thread with async subagents, then posts the film back to the same thread.

Request path from Slack through the agent and sandbox back to the thread.

Long jobs like video generation run in the background. The main agent hands parts to subagents on the same sandbox and stays free to talk. A one-time schedule wakes the main agent when a background job finishes or stalls. The brand pack in workspace/brand/ is the source of colors, fonts, logos, and voice. The agent checks each render against that pack before posting.

See also