Workspace
Isolate projects, clients, or research topics with multiple workspaces — FileTree + WorkbenchTabBar + shared AI context.
What a workspace is
Workspace is the outermost organization unit in VizChat. A workspace contains:
- A FileTree holding PDFs, images, bookmarks, and canvas documents
- A set of canvases / documents, each an independent 2D workspace
- A shared AI context — agents can read sibling documents for cross-file reasoning within the same workspace
You can create multiple workspaces along "project / client / research topic / quarter" axes, and they stay isolated — files and conversations in one workspace do not appear in another's AI context.
Interface layout
After login the default view is a three-pane structure:
| Pane | Contents |
|---|---|
| Left | WorkspaceSwitcher (change workspace) + FileTree |
| Center | AI chat panel |
| Right | WorkbenchTabBar + the currently open document (canvas / PDF / rich text) |
FileTree supports:
- Drag-drop file upload → auto-parsed by
document_parser - Add bookmark → paste a URL in the dialog → create a bookmark preview
- New folder → organize many files
- Rename, move, delete
WorkbenchTabBar
A row of tabs sits atop the center pane. Each open document is a tab, similar to VS Code or a browser. Clicking a document in the FileTree opens it as a tab. The openWorkbenchItems and activeWorkbenchItemKey fields are managed by the workspace-slice zustand store.
Tabs support:
- Right-click menu: close, close others, close all, reveal in file tree
- Automatic disambiguation — when same-named files from different folders are open at once, each tab appends a folder segment next to the filename: the shortest run that tells them apart (not necessarily the last one), with elided parts marked by
…, as in…/inline/…. The full path stays in the tab's tooltip - Persistent state on close — reopening the workspace restores the tab list
Renderers per document type
Renderers mount by preview kind: type only answers "how is it stored, and can it be edited", so binary images, audio, PDFs and archives — and text Markdown, SVG and HTML — each get their own viewer (src/lib/workbench/preview-kind.ts derives the kind from type and mimeType; src/lib/workbench/registry.ts lists one line per preview kind):
storyboard/dashboard— canvases, host-embedded cross-origin canvas-iframestext— text editor; HTML / SVG also get an isolated previewbinary— image viewer, audio / video player, PDF / Office preview; unrecognized formats show a file cardbookmark— URL card
Typical multi-workspace layouts
Scenario 1: consulting firm, one workspace per client
📁 Workspace: Acme Corp
📁 Quarterly reports
📄 Q1-dashboard.dsb
📄 Q2-storyboard.stb
📄 competitor-analysis.pdf
📁 Workspace: Beta Inc
📄 user-interview-notes.docx
📄 retention-model.stbThe two clients' AI conversations never cross-contaminate — asking "our sales last quarter" only sees the active workspace.
Scenario 2: grad student, one workspace per course
📁 Workspace: Machine Learning
📄 paper-notes/
📄 homework canvases
📁 Workspace: Thesis
📄 literature-review.stb
📄 experiment-data/Scenario 3: personal knowledge base
A single default workspace holds everything — works well for lightweight users who don't want to manage multiple spaces.
Workspace sharing (planned)
Today VizChat is primarily single-player. Workspace-level sharing and multiplayer collaboration are on the roadmap. Document-level sharing is designed but not yet shipped — see Sharing for the intended model and today's workarounds.
Next step
AI agent workflow
VizChat runs a single agent with an on-demand skill for widget building — it gathers context, finds or builds a widget, writes the document, and validates it.
Credits system
$1 = 1000 credits — AI generation, text recognition, TTS synthesis, and web search are all metered by real cost.