Skip to main content

Studio reference

View as Markdown

Everything about Studio and its canvases in one place.

Configuration​

studio​

OptionTypeDefaultDescription
studio.enabledbooleanfalseTurns Studio on in production. Studio is on in eventcatalog dev unless this is false. false turns it off everywhere.

storage​

OptionTypeDefaultDescription
storage.type'memory' | 'sqlite''memory''memory' keeps canvases while the server runs. 'sqlite' keeps them in a database file.
storage.pathstring'.eventcatalog/eventcatalog.db'The SQLite database file, relative to your catalog.

SQLite storage needs Node.js 22.13 or later.

OptionWhy it matters for Studio
outputMust be 'server' for Studio in production, and for agents to connect through the MCP server.
auth.enabledWith authentication on, only signed-in people can open canvases.
mcp.enabledAgents connect through the MCP server. Setting it to false stops agents connecting.
security.allowedDomainsNeeded when a proxy serves your catalog over HTTPS.

When Studio is on​

Commandstudio.enabled not settruefalse
eventcatalog devOnOnOff
eventcatalog start (output: 'server')OffOnOff
Static build (output: 'static')OffOffOff

Example​

eventcatalog.config.js
export default {
output: 'server',
studio: {
enabled: true,
},
storage: {
type: 'sqlite',
path: '/data/eventcatalog.db',
},
};

See the full configuration reference for every EventCatalog option.

Canvas​

Toolbar​

ButtonShortcutWhat it does
LockLocks the canvas, so it can be looked at but not changed
SelectVSelect and move nodes
HandHDrag to move around
L1 / L2 / L31 2 3Change the level
Sticky noteNClick where the note goes
TextTClick anywhere and type
CommentCClick a node, or a spot, to comment
HotspotAClick a node, or a spot, to flag a risk

The controls at the bottom left zoom, undo and redo, fit the view (⇧ 1), reorder the diagram, and list comments and hotspots.

Levels​

LevelShows
L1Domains, systems and their relationships
L2Services and data stores
L3Everything, including messages and channels

L1 is unavailable until the canvas has a domain or system.

Canvas menu​

The three dots next to the canvas title.

The canvas menu

ItemShortcut
Open…⌘ O
Save to file…⌘ S
Export image…⌘ ⇧ E
Live collaboration…
Connect your AI agent…
Help?
Rename canvas
Copy link
New canvas
Delete canvas

The bottom of the menu shows the connection status, for example Connected.

Right-click menus​

OnItems
A nodeAdd comment, Add hotspot, Add a note, Edit details, Copy, Duplicate, Delete
The canvasAdd comment, Add hotspot, Add a sticky note, Paste here, Reorder diagram

Statuses​

StatusMeaning
DraftBeing worked on. Every canvas starts as a draft.
ProposedReady for review
AcceptedThe agreed design
RejectedDecided against, kept for the record
  • Each status change can have a note. The status menu shows the history, with who changed it, when and the note.
  • Changing the nodes or connections on an accepted or rejected canvas makes it a draft again.

Hotspots​

FieldValues
SeverityCritical (red), Warning (amber) or Info (blue)
TitleUp to 120 characters, for example "Single point of failure"
DescriptionOptional. Why it matters, and what to do about it
  • A hotspot is on a node, and moves with it, or on a spot on the canvas.
  • The Hotspots list shows the most severe first.
  • At L1 and L2, hotspots inside a domain or system are shown on that domain or system.

Studio page​

The Studio page lists canvases with their status, contents, open comments, who created them, and when they were last updated. Filter by name or status. Each canvas's menu has Make a copy and Delete.

Limits​

LimitValue
Canvas title200 characters
Your name60 characters
.eventcatalog file2 MB

Components and connections​

Components​

New components start at version 0.0.1.

GroupComponentDescription
BoundariesDomainA business area, e.g. Sales
SystemServices doing one job
ServicesServiceAn API, worker or function
ViewA screen or app people use
External SystemA third party you use
AgentAn AI agent at work
MessagesEventSomething that happened
CommandA request to do something
QueryA request for data
ChannelA topic, queue or bus
DataDatabaseTables, e.g. PostgreSQL
CacheFast data, e.g. Redis
Search indexSearch, e.g. Elasticsearch
Object storeFiles and blobs, e.g. S3
EntityPart of the domain model
PeopleActorSomeone who uses it
TeamWho owns what

Sticky notes and text are added from the toolbar.

Catalog resources​

You can add these resources from your catalog: domains, systems, services, events, commands, queries, channels and data stores. They are added at their latest version, with their name, version and summary from your catalog.

Connection labels​

When you connect two nodes, Studio labels the connection with EventCatalog's wording:

FromToLabel
Service, agent, actor, external system or viewEventpublishes event
Service, agent, actor, external system or viewCommandinvokes
Service, agent, actor, external system or viewQueryrequests
EventAnything but a message or channelsubscribed by
Command or queryAnything but a message or channelaccepts
MessageMessagetriggers
MessageChannelsent to
ChannelAnythingroutes to
Anything elseChannelpublishes to
AnythingData storewrites to
Data storeAnythingread by
ActorAnythinguses
AnythingViewserves
AnythingExternal systemcalls
AnythingActornotifies
TeamAnythingowns
EntityEntityreferences
MessageEntitycarries
Anything elseEntitymanages

Agents can set their own labels through the MCP tools.

MCP tools​

When Studio is on, the EventCatalog MCP server has these tools for canvases. Unlike the other MCP tools, they change your canvases.

ToolWhat it does
openCanvasShows a canvas in the chat, in clients that support MCP Apps
listCanvasesLists canvases and who is on each one
createCanvasCreates a canvas and returns its link
getCanvasReads a canvas: its nodes, connections, comments and who is on it
addToCanvasAdds catalog resources or new components, and connects them
updateCanvasNodeRenames, describes, versions or moves a node
connectCanvasNodesConnects nodes
removeFromCanvasRemoves nodes or connections
layoutCanvasLays out the whole canvas
setCanvasStatusSets the status to draft, proposed, accepted or rejected, with a note
commentOnCanvasStarts a comment thread on a node or a spot
replyToCanvasCommentReplies to a thread
resolveCanvasCommentResolves or reopens a thread

Every tool takes an optional agentName, the name people on the canvas see. It defaults to the name of the client, for example Claude, Claude Code, ChatGPT or Cursor.

How agents appear​

  • An agent has its own pointer and name on the canvas.
  • Its changes appear one step at a time, with what it is doing, for example "Connecting InstalmentPlanApproved to Notification Service".
  • A banner shows when an agent is working. Choose Follow to move your view with it.

Browser tools (WebMCP)​

When WebMCP is turned on in the Connect your AI agent dialog, the open canvas offers agents in the browser these tools: get_canvas, search_catalog, add_to_canvas, update_node, connect_nodes, remove_from_canvas, layout_canvas, set_canvas_status, add_comment, reply_to_comment, resolve_comment and show_nodes.

Keyboard shortcuts​

Press ? on a canvas to see these shortcuts. On Windows and Linux, use Ctrl instead of ⌘.

The keyboard shortcuts dialog

Tools​

ActionShortcut
SelectV
Hand (move around)H
Sticky noteN
TextT
CommentC
HotspotA
Level 1 / 2 / 31 2 3
Back to selectingEsc

Canvas​

ActionShortcut
Select everything⌘ A
Select several⇧ + click
Delete what's selectedDelete
Duplicate⌘ D
Copy / paste⌘ C / ⌘ V
Undo / redo⌘ Z / ⌘ ⇧ Z
Move aroundScroll
Zoom⌘ + scroll
Fit view⇧ 1

Notes and text​

ActionShortcut
Write on oneDouble-click
Finish writingEsc

Files​

ActionShortcut
Open a file⌘ O
Save to file⌘ S
Export image⌘ ⇧ E
Help?