Collaborator is a place to build with agents. Collaborator is an end-to-end environment for agentic development. Terminals, context files, and running code — all arranged on an infinite canvas in one place. No context switching, no tab hunting.
$ npx -y skills add collabs-inc/collab-public --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: collabs-inc/collab-public
What's inside
Collaborator is a place to build with agents.

Collaborator is an end-to-end environment for agentic development. Terminals, context files, and running code — all arranged on an infinite canvas in one place. No context switching, no tab hunting. Just your agents and your work, side by side.
The app is early-stage and in active development, with native desktop targets for macOS, Windows, and Linux. On Windows, terminal sessions can target both PowerShell and WSL2 distros.
Download the latest release for macOS, Windows, or Linux.
macOS and Linux also support command-line install:
curl -fsSL https://raw.githubusercontent.com/collaborator-ai/collab-public/main/install.sh | bash
Windows: use the .exe installer from the releases page.
Collaborator is a native desktop app built with:
Electron 40 — desktop shell with multi-webview architecture
React 19 — UI framework
Tailwind CSS 4 — styling
electron-vite — build tooling with hot reload
xterm.js — terminal emulation backed by a persistent node-pty sidecar
Monaco Editor — code editing with syntax highlighting
BlockNote / TipTap — rich text markdown editing
D3 — force-directed graph visualization
sharp — image processing
KaTeX — math rendering in markdown
All data is stored locally on disk.
Open Collaborator
Add a workspace — click the workspace dropdown in the navigator and choose "Add workspace", or press Cmd+Shift+O, then select a local folder
Double-click the canvas to create a terminal, and start an agent
Drag files from the navigator onto the canvas to open them as tiles alongside your running agents
Collaborator is a single-window application for macOS, Windows, and Linux. It operates primarily on local files with no accounts required. Anonymous, non-identifying usage analytics are collected via PostHog.
The window is divided into two regions:
Navigator — a resizable sidebar on the left containing a file tree and workspace switcher
Main area — the canvas, an infinite pan-and-zoom surface where tiles are arranged; also hosts the viewer, which displays the content of the file selected in the navigator
All application state is stored as JSON files in ~/.collaborator/.
The navigator sidebar displays a file tree rooted at the active workspace folder. Users can maintain multiple workspaces and switch between them.
A dropdown at the top of the navigator shows the active workspace name. It provides:
A list of all workspaces for quick switching
"Add workspace" to open a new local folder (also available via Cmd+Shift+O)
"Remove workspace" to remove a workspace from the list (does not delete files)
Each workspace gets its own independent file tree. The canvas and viewer are shared across workspaces.
The file tree shows all files and folders in the active workspace. It supports:
Expand/collapse folders by clicking
Two view modes: hierarchical tree view, and a chronological feed view sorted by date
Sorting: cycles through created (newest/oldest), modified (newest/oldest), and name (A-Z/Z-A)
File operations: create new note (generates Untitled.md), create new folder, rename (F2), delete (moves to trash)
Move files by dragging between folders
Multi-select with Shift+click and Cmd+click
Search via Cmd+K
Selecting a file in the tree opens it in the viewer. Dragging a file from the tree onto the canvas creates a tile.
The canvas is an infinite pan-and-zoom surface that fills the main area. It uses a dot grid background for spatial orientation.
| Action | Input |
|---|---|
| Pan | Scroll wheel, or Space+drag, or middle-click+drag |
| Zoom in | Cmd+= or Ctrl+scroll up |
| Zoom out | Cmd+- or Ctrl+scroll down |
| Reset zoom | Cmd+0 |
Zoom range: 33% to 100%, with rubber-band effect when overshooting limits
Zoom indicator: appears briefly in the bottom-right corner after zoom changes, showing the current percentage
Minor grid dots at regular intervals
Major grid dots at every 4th interval
All tile positions and sizes snap to the grid
Tiles are live views, not standalone containers.
File tiles (note, code, image) are bound to a file on disk by absolute path. If the file is renamed, the tile updates to track the new path. If the file is deleted, the tile is closed. If the file's content changes on disk, the tile reloads.
Terminal tiles are bound to a persistent sidecar-backed PTY session. Each terminal tile creates and manages its own session, which persists independently of the tile's lifecycle on the canvas.
Tiles are the content units on the canvas. Each tile has:
A title bar for dragging
Eight resize handles (four edges, four corners)
A z-index for layering — clicking a tile brings it to front
Tiles are created by:
Double-clicking empty canvas space — creates a terminal tile at that position
Dragging a file from the navigator onto the canvas — creates a note, code, or image tile depending on file type
Tiles can be closed via their title bar. Holding Shift while scrolling passes scroll events through tiles to the canvas.
An interactive terminal session. Created by double-clicking empty canvas space. The terminal's working directory is set to the active workspace path.
Terminals are the primary interface for running AI agents. Each terminal tile manages its own independent session.
A rich markdown editor. Created by dragging a .md file from the navigator onto the canvas. Supports inline editing with live rendering.
A syntax-highlighted code editor. Created by dragging any non-markdown, non-image file from the navigator onto the canvas. Supports inline editing with language detection.
A read-only image display. Created by dragging an image file (.png, .jpg, .jpeg, .gif, .svg, .webp) from the navigator onto the canvas.
The viewer displays the content of the currently selected file in the navigator. It occupies the main area alongside the canvas.
| File type | Display |
|---|---|
Markdown (.md, .mdx, .markdown, .txt) | Rich text editor with frontmatter support, cover images, and wiki-style links |
| Code (all other text files) | Syntax-highlighted editor with line numbers |
Image (.png, .jpg, .jpeg, .gif, .svg, .webp) | Image display with metadata |
Markdown and code files support inline editing in the viewer. The viewer watches for external file changes on disk and reloads automatically.
Pressing Escape closes the viewer (when not actively editing).
All state is stored locally in ~/.collaborator/.
canvas-state.json){
"version": 1,
"tiles": [
{
"id": "tile-<timestamp>-<index>",
"type": "term | note | code | image",
"x": 0,
"y": 0,
"width": 440,
"height": 540,
"filePath": "/absolute/path/to/file",
"zIndex": 1
}
],
"viewport": {
"panX": 0,
"panY": 0,
"zoom": 1.0
}
}
Canvas state is saved 500ms after each change (debounced) and immediately when tiles are created or closed.
config.json){
"workspaces": ["/path/to/workspace1", "/path/to/workspace2"],
"active_workspace": 0,
"window_state": {
"x": 0,
"y": 0,
"width": 1440,
"height": 900,
"isMaximized": false
},
"ui": {}
}
Install:
Node.js 22+
Bun
Platform notes:
macOS: Homebrew is the simplest way to install Node.js and Bun.
Windows: PowerShell 7 is recommended; WSL2 support requires at least one installed distro.
Linux: install Node.js and Bun from your distro packages or upstream installers.
Once the prerequisites are installed, clone the repo and install dependencies:
git clone https://github.com/collaborator-ai/collab-public.git
cd collab-public/collab-electron
bun install
bun run dev
This starts the Electron app with hot reload via electron-vite.
bun test
bun run build
⠀
.clabot
.github/
cla-signatures.json
workflows/
cla.yml
.gitignore
.mcp.json
CLA.md
collab-electron/
.gitignore
build/
entitlements.mac.plist
icon.icns
icon.ico
icon.png
bunfig.toml
cli/
collab-cli.mjs
test-cli.sh
docs/
superpowers/
specs/
2026-03-23-ipc-workspace-graph-modularization-design.md
2026-04-05-canvas-event-log-design.md
electron.vite.config.ts
NOTICE
package.json
packages/
collab-canvas-skill/
.claude-plugin/
plugin.json
collab-canvas-codex.md
collab-canvas-gemini.md
skills/
collab-canvas/
SKILL.md
components/
package.json
src/
CodeEditorView/
CodeEditorView.css
CodeEditorView.tsx
index.ts
monaco-react-shim.d.ts
ConceptList/
ConceptList.tsx
index.ts
Editor/
Blocknote.css
Editor.tsx
EditorConflictBanner.tsx
ImageBlock.tsx
index.ts
WikiLink.css
WikiLink.tsx
WikiLinkAutocomplete.tsx
ExcerptDisplay/
ExcerptDisplay.tsx
index.ts
FolderTableView/
FolderTableView.css
FolderTableView.tsx
index.ts
ImageView/
ImageView.tsx
ItemDetailView/
index.ts
ItemDetailView.tsx
Markdown/
index.ts
Markdown.tsx
MarkdownContent.css
SourceList/
index.ts
SourceList.tsx
Terminal/
index.ts
TerminalTab.css
TerminalTab.tsx
theme.ts
TreeView/
fileIcons.tsx
Helpers.test.ts
Helpers.ts
index.ts
SearchSortControls.tsx
TreeView.css
TreeView.tsx
types.ts
useDragDrop.ts
useFileTree.test.ts
useFileTree.ts
useImageThumbnail.ts
useInlineRename.ts
useMultiSelect.ts
useWorkspaceFileTree.ts
WorkspaceTree.tsx
vite-env.d.ts
WorkspaceGraph/
ForceDirectedGraph.tsx
forceGraph.ts
hueMap.test.ts
hueMap.ts
index.ts
ReplayTimeline.css
ReplayTimeline.tsx
types.ts
useReplayEngine.ts
WorkspaceGraph.css
WorkspaceGraph.tsx
shared/
package.json
src/
collab-file-url.test.ts
collab-file-url.ts
dark-mode.ts
extract-cover-image.test.ts
extract-cover-image.ts
filepath.ts
image.test.ts
image.ts
path-utils.test.ts
path-utils.ts
pdf.test.ts
pdf.ts
replay-types.ts
styles/
Theme.css
types.ts
utils.ts
viewer-item.test.ts
viewer-item.ts
window-api.d.ts
theme/
package.json
src/
styles.css
resources/
terminfo/
78/
xterm-256color
tmux.conf
scripts/
after-pack-pty.cjs
clean.mjs
dev.mjs
dev.ps1
fix-artifacts.cjs
local-bin.mjs
notarize.cjs
package.mjs
package.sh
postinstall.mjs
run-local-bin.mjs
upload-to-github.cjs
vendor-tmux.sh
src/
main/
acp-agent.ts
agent-activity.ts
analytics.ts
canvas-persistence.ts
canvas-rpc.ts
cdp.ts
cli-installer.ts
config.ts
cwd-fallback.test.ts
cwd-fallback.ts
env.d.ts
file-filter.test.ts
file-filter.ts
files.test.ts
files.ts
git-replay-worker.ts
git-replay.ts
image-service.ts
image-worker.ts
import-service.test.ts
import-service.ts
index.ts
integrations.test.ts
integrations.ts
ipc-browser.ts
ipc-canvas.ts
ipc-endpoint.ts
ipc-filesystem.ts
ipc-knowledge.ts
ipc-misc.ts
ipc-workspace.ts
ipc.ts
json-rpc-server.ts
logger.ts
paths.ts
pty.ts
sidecar/
client.test.ts
client.ts
entry.ts
log.ts
protocol.ts
ring-buffer.test.ts
ring-buffer.ts
server.test.ts
server.ts
terminal-target.ts
tmux.test.ts
tmux.ts
updater/
index.ts
update-manager.test.ts
update-manager.ts
vite-raw.d.ts
watcher-worker.ts
watcher.ts
wikilink-index.ts
workspace-config.ts
workspace-graph-python.ts
workspace-graph.ts
preload/
shell.ts
universal.ts
windows/
agent-chat/
index.html
src/
AgentThread.tsx
App.tsx
dev-shim.ts
main.tsx
MarkdownText.tsx
styles.css
ToolCallCard.tsx
use-acp-runtime.ts
graph-tile/
index.html
src/
App.tsx
main.tsx
styles/
App.css
nav/
index.html
src/
App.tsx
main.tsx
styles/
App.css
settings/
index.html
src/
App.tsx
main.tsx
shared/
PostHogProvider.tsx
shell/
index.html
src/
canvas-minimap.js
canvas-rpc.js
canvas-rpc.test.ts
canvas-state.js
canvas-state.test.ts
canvas-viewport.js
canvas-viewport.test.ts
dark-mode.js
edge-indicators.js
edge-indicators.test.ts
panel-manager.js
panel-manager.test.ts
renderer.js
shell.css
tile-interactions.js
tile-manager.js
tile-renderer.js
tile-renderer.test.ts
tooltip.js
webview-factory.js
webview-factory.test.ts
workspace-manager.js
terminal/
terminal-list/
index.html
src/
App.css
App.tsx
main.tsx
terminal-tile/
index.html
src/
App.tsx
main.tsx
styles/
App.css
index.html
src/
App.tsx
main.tsx
styles/
App.css
tile-list/
index.html
src/
App.css
App.tsx
main.tsx
viewer/
index.html
src/
App.tsx
main.tsx
styles/
App.css
Theme.css
tsconfig.json
tsconfig.node.json
tsconfig.web.json
CONTRIBUTING.md
docs/
superpowers/
plans/
2026-04-04-agent-sidebar.md
2026-04-04-files-and-tiles-unified-sidebar.md
specs/
2026-04-04-agent-sidebar-design.md
2026-04-04-files-and-tiles-unified-sidebar-design.md
install.sh
LICENSE.md
NOTICE.md
README.md
screenshot.pngFAQ
collab-public is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes collab-canvas. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.