Module SDK

Build the workspace you want, on the SDK the studio is built with.

The Module SDK is the same contract the studio's own surfaces use. A module can watch and spawn agent sessions, add its own doors and pages, give your agents new MCP tools, and hook into automations.

Ask an agent to build one and it shows up in the studio as a workspace of your own. The calendar below was built that way, and drags backlog cards straight into a live agent session.

import type { RendererHost } from "@sprintengine/module-sdk"import { StandupBoard } from "./StandupBoard"export function registerRenderer(host: RendererHost) {  // A door in the sidebar, and the full page behind it.  host.registerGlobalSurface({    id: "standup", label: "Standup", Component: StandupBoard,  })}// Every agent session in the workspace, live.export function watch(host: RendererHost, workspaceId: string) {  return host.watchAgentSessions(workspaceId, (sessions) =>    board.show(sessions.filter((s) => s.isLive)),  )}// Hand a card to an agent, on whichever CLI you like.export async function assign(host: RendererHost, id: string, card: Card) {  const result = await host.spawnAgent({    workspaceId: id,    name: card.title,    cli: "codex",    prompt: card.body,    focus: true,  })  if (!result.ok) board.flag(card, result.message)}

@sprintengine/module-sdk — MIT licensed, in the studio’s repository under packages/module-sdk.

Agent sessions
Watch every session in a workspace as it runs, spawn agents on any installed CLI with a prompt and a model, and bring a session's tab to the front.
Your own doors and surfaces
Sidebar doors with full-page surfaces behind them, workspace types, panels, a row in the workspace pane beside Browser and Terminal, commands, top-bar controls and settings sections.
Tools for your agents
Register MCP tools on the studio's gateway and ship skills with your module, so every agent in the studio can use what you built.
Automations
Add your own triggers and actions, and your workspace can wake an agent on your schedule.
The workspace itself
Read the backlog, watch files, act on the Files tree, and keep your own state per workspace and across the app.
Sign it and ship it
The sprintengine-module CLI packs and signs your module. Drop the folder into ~/.sprintengine/modules, trust it once, and it loads.

Read the SDK →Module author guide

skyhold
4 running terminals1 unread message
module: calendar — building…
wren~/modules/calendar