Features

How to use Trellis Studio workspace navigation, agents, graph view, memory, desktop, and cloud.

Reference for day-to-day Studio behavior. For product positioning, start with the introduction. For the latest shipped tweaks, see What's new.

Workspace navigation

Files, entities, and relationships sit side by side. Wiki-links and references resolve across code, decisions, and issues.

The file browser scopes listings to the project workspace you opened, including when that path is a symlink (monorepo root or git worktree). Open the repo directory as the project root to search inside it; symlink names at a parent folder appear in the tree without scanning nested repos. Runtime data under .trellis/ is excluded from indexing and text search.

Go to file: ⌘P / Ctrl+P, or the session header search bar. Recently opened files first, then fuzzy path matching (spaces match path segments).

Command palette: ⌘⇧P / Ctrl+Shift+P for commands, session switching, and file search. Shortcuts: Settings → Keyboard.

Appearance: default Cursor palette (light/dark follow system). Change under Settings → General or command palette Theme entries.

Sessions and the icon rail

Agent sessions are separate chats (transcript, composer draft, model per tab). The editor pane is shared: open tabs, icon rail, scroll positions, and review state persist when you switch sessions.

Code view uses a conventional layout: Explorer tree on the left, editor on the right. Toggle the tree from the tab bar or fileTree.toggle in the palette.

Icon rail (top to bottom): Graph, Plan, Code, Database, Assets, Design, Review, Preview, Logs. Below that, the projection zone pins lenses (Notes, Calendar, Whiteboards, custom views). Pin or unpin with + (up to eight). Route: ?view=projection&lens=<id>. Configure defaults in opencode.jsonc under projections.pinned and projections.custom.

Specialized editors: spreadsheets (.xlsx), 3D models, .base vault views, .whiteboard: Excalidraw boards. See Projections and whiteboards.

Embedded agents {#embedded-agents}

Run agents inside the workspace. Every tool call is captured as a durable op. Agents read and write the same graph you do.

Models and providers: local Studio uses your configured providers (Settings → Providers). Hosted studio.trellis.computer includes free-tier models and optional ChatGPT Pro/Plus (Codex) via device code. See Cloud AI proxy and What's new for current defaults.

Composer: stays interactive after each turn, including provider errors. On cloud, assistant text streams in as the model generates.

Read aloud: volume beside Copy on completed assistant messages (and in the Code markdown toolbar). Synthesis via POST /tts/speak (Gemini TTS when GEMINI_API_KEY is set, otherwise Edge Read Aloud). Successful runs save under .trellis/media/ as speech assets in the graph for replay from Assets or Design.

Ambient focus: a focus chip shows what surface you are on (whiteboard, file, rail view, agent lane). Pin keeps it across navigation; Exclude drops it for the next send only. Studio injects a bounded [FOCUS v1] block on send. Explicit @ attachments outrank ambient focus.

Turn actions: after a completed turn, shortcut buttons under your prompt jump to files, whiteboards, CMS entries, calendar events, previews, or diffs from that turn's tool calls.

Agent memory and capture {#agent-memory-and-capture}

Agents keep durable facts in the same graph as everything else.

Injected project memory: each turn, Studio adds a <project-memory> block to system context (recent facts plus semantic matches to the prompt).

The memory tool: memory remember, memory recall, memory list. Facts are memory entities scoped to user or project.

Automatic capture in opencode.jsonc under capture (defaults on):

{
  "capture": {
    "links": true,
    "explicitMemory": true,
    "researchSources": true,
    "personalEvents": true,
  },
}

personalEvents watches the calendar tool for all-day birthdays/anniversaries and persists year-stripped facts to user memory.

Trellis enforcement: reminders after CMS and web research tools for ## Graph enrichment / ## Next steps in Trellis. The cms tool rejects empty create_entry calls and formula-only payloads.

Explicit CMS collections: a collection exists only after create_collection registers a TypeSchema with cms=true. Graph types like calendar_event are not CMS collections unless registered. The Database rail lists the same explicit schemas.

Live graph view {#live-graph-view}

Graph is the default session view. Bookmarks with ?view=home redirect to Graph.

Visualize the causal stream. Filter by entity type, time range, or branch. Click an op to see the change it produced.

Rendering: up to 800 nodes use full SVG (icons, labels, drag). Larger graphs use Canvas2D dots with an SVG overlay for hover/selection. Above 15,000 nodes, physics settles then freezes for responsiveness.

Pan and zoom: trackpad scroll pans; pinch or Ctrl/Cmd + scroll zooms. Labels appear when zoomed in past 0.65×. Off-screen panning shows a Return to graph nodes beacon; reopening Graph with a saved off-screen viewport flies back to the cluster. Minimap in the corner for navigation.

Entity sidebar: selecting a file or directory opens Preview, Details, and Activity. Markdown Preview renders the note; YAML frontmatter edits on Details.

Plan → Calendar shares the same CalendarView as the Calendar projection.

Data loads from GET /trellis/graph on the local OpenCode server (authenticated in the Tauri desktop build).

Decision traces, issues, and Idea Garden

  • Decision traces first-class why records, searchable precedent. Guide.
  • Issues and milestones tasks, criteria, and branches in-graph. Guide.
  • Idea Garden abandoned work becomes revivable clusters. Guide.

Publish to the web (cloud)

Cloud workspaces ship static snapshots to https://<slug>.studio.trellis.computer via Publish in the preview or browser panel. Distinct from Share session (transcript link). Full publishing guide.

Desktop app

Trellis Studio ships as a native Tauri build with the same OpenCode sidecar as browser Studio. Use Settings → Server to point at a remote server instead of the bundled sidecar.

Graph, issues, and Trellis panels require a healthy sidecar connection. If the graph is empty, confirm the workspace exists on disk and the sidecar passed its startup health check.