QZMIoI8dra0ExohZ.mp4
Infinite canvas workspace for AI agents and developers.
CodeSurf is an Electron desktop app where terminals, chats, code editors, browsers, notes, boards, and extensions live together on a spatial canvas. It also supports tabbed/layout views, local agent tooling, and project-scoped workspace state.
- Infinite 2D canvas for blocks
- Terminal, chat, code, browser, files, note, and board blocks
- Tabbed/layout view for structured workspaces
- Local MCP server for agent-native workflows
- Extension system for custom blocks and tools
- File-based persistence under your home directory
- Electron
- React
- TypeScript
- Vite / electron-vite
- Tailwind CSS
- xterm / node-pty
- Monaco Editor
Install dependencies:
npm installRun in development:
npm run devBuild:
npm run buildPlatform packaging:
npm run dist:mac
npm run dist:windows # NSIS installer + portable .exe
npm run dist:linux # AppImage + .debCodeSurf can also be shipped as a thin npm package. The npm package contains the app build output and launcher scripts, but it does not bundle the Electron runtime itself.
On first launch, the codesurf launcher downloads Electron into ~/.codesurf/electron and reuses that cached runtime after that.
Build the publishable npm package directory and tarball with Bun:
bun run build:npmThat command writes:
release/npm/package/— the publishable package contentsrelease/npm/*.tgz— the tarball produced bynpm pack
You can test the packaged launcher locally with:
npm install -g ./release/npm/codesurf-0.1.0.tgz
codesurfInstall from npm once published:
npm install -g codesurf
codesurfsrc/
main/ Electron main process
preload/ Electron preload bridge
renderer/ React app
shared/ Shared types and utilities
resources/ App icons and build resources
CodeSurf stores app data under ~/.codesurf.
Default app-created workspaces go under:
~/codesurf/workspaces/
Project-backed workspaces can point at any folder you open.
SEE LICENSE FILE