[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83668":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},83668,"collab-public","collabs-inc\u002Fcollab-public","collabs-inc","Collaborator is a place to create with agents.","https:\u002F\u002Fwww.collaborator.bot",null,"TypeScript",2524,197,11,52,0,5,15,28.89,"Other",false,"main",true,[25,26,27,28,29,30],"agents","ai","claude-code","codex-cli","ide","terminal","2026-06-12 02:04:35","# Collaborator\n\nCollaborator is a place to build with agents.\n\n![Collaborator](screenshot.png)\n\nCollaborator 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.\n\nThe 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.\n\n## Install\n\n**[Download the latest release](https:\u002F\u002Fgithub.com\u002Fcollaborator-ai\u002Fcollab-public\u002Freleases\u002Flatest)** for macOS, Windows, or Linux.\n\nmacOS and Linux also support command-line install:\n\n```sh\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fcollaborator-ai\u002Fcollab-public\u002Fmain\u002Finstall.sh | bash\n```\n\nWindows: use the `.exe` installer from the releases page.\n\n## Stack\n\nCollaborator is a native desktop app built with:\n\n* **Electron 40** — desktop shell with multi-webview architecture\n\n* **React 19** — UI framework\n\n* **Tailwind CSS 4** — styling\n\n* **electron-vite** — build tooling with hot reload\n\n* **xterm.js** — terminal emulation backed by a persistent node-pty sidecar\n\n* **Monaco Editor** — code editing with syntax highlighting\n\n* **BlockNote \u002F TipTap** — rich text markdown editing\n\n* **D3** — force-directed graph visualization\n\n* **sharp** — image processing\n\n* **KaTeX** — math rendering in markdown\n\nAll data is stored locally on disk.\n\n## Quickstart\n\n1. Open Collaborator\n\n2. Add a workspace — click the workspace dropdown in the navigator and choose \"Add workspace\", or press Cmd+Shift+O, then select a local folder\n\n3. Double-click the canvas to create a terminal, and start an agent\n\n4. Drag files from the navigator onto the canvas to open them as tiles alongside your running agents\n\n***\n\n## Specification\n\n### Application overview\n\nCollaborator 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.\n\nThe window is divided into two regions:\n\n* **Navigator** — a resizable sidebar on the left containing a file tree and workspace switcher\n\n* **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\n\nAll application state is stored as JSON files in `~\u002F.collaborator\u002F`.\n\n### Multiworkspace navigation\n\nThe navigator sidebar displays a file tree rooted at the active workspace folder. Users can maintain multiple workspaces and switch between them.\n\n#### Workspace management\n\nA dropdown at the top of the navigator shows the active workspace name. It provides:\n\n* A list of all workspaces for quick switching\n\n* \"Add workspace\" to open a new local folder (also available via Cmd+Shift+O)\n\n* \"Remove workspace\" to remove a workspace from the list (does not delete files)\n\nEach workspace gets its own independent file tree. The canvas and viewer are shared across workspaces.\n\n#### File tree\n\nThe file tree shows all files and folders in the active workspace. It supports:\n\n* **Expand\u002Fcollapse** folders by clicking\n\n* **Two view modes**: hierarchical tree view, and a chronological feed view sorted by date\n\n* **Sorting**: cycles through created (newest\u002Foldest), modified (newest\u002Foldest), and name (A-Z\u002FZ-A)\n\n* **File operations**: create new note (generates `Untitled.md`), create new folder, rename (F2), delete (moves to trash)\n\n* **Move files** by dragging between folders\n\n* **Multi-select** with Shift+click and Cmd+click\n\n* **Search** via Cmd+K\n\nSelecting a file in the tree opens it in the viewer. Dragging a file from the tree onto the canvas creates a tile.\n\n### Canvas\n\nThe canvas is an infinite pan-and-zoom surface that fills the main area. It uses a dot grid background for spatial orientation.\n\n#### Viewport controls\n\n| Action     | Input                                             |\n| ---------- | ------------------------------------------------- |\n| Pan        | Scroll wheel, or Space+drag, or middle-click+drag |\n| Zoom in    | Cmd+= or Ctrl+scroll up                           |\n| Zoom out   | Cmd+- or Ctrl+scroll down                         |\n| Reset zoom | Cmd+0                                             |\n\n* **Zoom range**: 33% to 100%, with rubber-band effect when overshooting limits\n\n* **Zoom indicator**: appears briefly in the bottom-right corner after zoom changes, showing the current percentage\n\n#### Grid\n\n* Minor grid dots at regular intervals\n\n* Major grid dots at every 4th interval\n\n* All tile positions and sizes snap to the grid\n\n#### Data model\n\nTiles are live views, not standalone containers.\n\n* **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.\n\n* **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.\n\n#### Tile management\n\nTiles are the content units on the canvas. Each tile has:\n\n* A **title bar** for dragging\n\n* **Eight resize handles** (four edges, four corners)\n\n* A **z-index** for layering — clicking a tile brings it to front\n\nTiles are created by:\n\n* **Double-clicking** empty canvas space — creates a terminal tile at that position\n\n* **Dragging a file** from the navigator onto the canvas — creates a note, code, or image tile depending on file type\n\nTiles can be closed via their title bar. Holding Shift while scrolling passes scroll events through tiles to the canvas.\n\n### Tile types\n\n#### Terminal\n\nAn interactive terminal session. Created by double-clicking empty canvas space. The terminal's working directory is set to the active workspace path.\n\nTerminals are the primary interface for running AI agents. Each terminal tile manages its own independent session.\n\n#### Note\n\nA rich markdown editor. Created by dragging a `.md` file from the navigator onto the canvas. Supports inline editing with live rendering.\n\n#### Code\n\nA 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.\n\n#### Image\n\nA read-only image display. Created by dragging an image file (`.png`, `.jpg`, `.jpeg`, `.gif`, `.svg`, `.webp`) from the navigator onto the canvas.\n\n### Viewer\n\nThe viewer displays the content of the currently selected file in the navigator. It occupies the main area alongside the canvas.\n\n| File type                                                | Display                                                                       |\n| -------------------------------------------------------- | ----------------------------------------------------------------------------- |\n| Markdown (`.md`, `.mdx`, `.markdown`, `.txt`)            | Rich text editor with frontmatter support, cover images, and wiki-style links |\n| Code (all other text files)                              | Syntax-highlighted editor with line numbers                                   |\n| Image (`.png`, `.jpg`, `.jpeg`, `.gif`, `.svg`, `.webp`) | Image display with metadata                                                   |\n\nMarkdown and code files support inline editing in the viewer. The viewer watches for external file changes on disk and reloads automatically.\n\nPressing Escape closes the viewer (when not actively editing).\n\n### Persistence\n\nAll state is stored locally in `~\u002F.collaborator\u002F`.\n\n#### Canvas state (`canvas-state.json`)\n\n```json\n{\n  \"version\": 1,\n  \"tiles\": [\n    {\n      \"id\": \"tile-\u003Ctimestamp>-\u003Cindex>\",\n      \"type\": \"term | note | code | image\",\n      \"x\": 0,\n      \"y\": 0,\n      \"width\": 440,\n      \"height\": 540,\n      \"filePath\": \"\u002Fabsolute\u002Fpath\u002Fto\u002Ffile\",\n      \"zIndex\": 1\n    }\n  ],\n  \"viewport\": {\n    \"panX\": 0,\n    \"panY\": 0,\n    \"zoom\": 1.0\n  }\n}\n```\n\nCanvas state is saved 500ms after each change (debounced) and immediately when tiles are created or closed.\n\n#### App config (`config.json`)\n\n```json\n{\n  \"workspaces\": [\"\u002Fpath\u002Fto\u002Fworkspace1\", \"\u002Fpath\u002Fto\u002Fworkspace2\"],\n  \"active_workspace\": 0,\n  \"window_state\": {\n    \"x\": 0,\n    \"y\": 0,\n    \"width\": 1440,\n    \"height\": 900,\n    \"isMaximized\": false\n  },\n  \"ui\": {}\n}\n```\n\n## Development | Electron App\n\n### Prerequisites\n\nInstall:\n\n* Node.js 22+\n\n* Bun\n\nPlatform notes:\n\n* macOS: Homebrew is the simplest way to install Node.js and Bun.\n\n* Windows: PowerShell 7 is recommended; WSL2 support requires at least one installed distro.\n\n* Linux: install Node.js and Bun from your distro packages or upstream installers.\n\n### Setup\n\nOnce the prerequisites are installed, clone the repo and install dependencies:\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fcollaborator-ai\u002Fcollab-public.git\ncd collab-public\u002Fcollab-electron\nbun install\n```\n\n### Run in dev mode\n\n```sh\nbun run dev\n```\n\nThis starts the Electron app with hot reload via electron-vite.\n\n### Run tests\n\n```sh\nbun test\n```\n\n### Build\n\n```sh\nbun run build\n```\n\n⠀",2,"2026-06-11 04:11:27","high_star"]