The Canvas For Your Code Agents Terminals Browsers Files Projects Teams.

Mesa
Agent
Shell
Browser
3 online
Agent· mesa-app
streaming
mesa-app
feat/auth
M3 A2 ↑1 ↓0
src/
components/
AuthForm.tsx
TokenBadge.tsx
routes/
auth.ts
middleware/
jwt.ts
Stage All
Commit
Push
localhost:3000
live
AuthForm.tsx
index.tsx
1import { useState } from 'react'
2import { validateToken } from '../lib/auth'
3 
4export function AuthForm() {
5 const [email, setEmail] = useState('')
6 const [token, setToken] = useState(null)
7 const [loading, setLoading] = useState(false)
8 
9 async function handleSubmit(e) {
10 e.preventDefault()
11 setLoading(true)
12 
13 const res = await fetch('/api/auth', {
14 method: 'POST',
15 body: JSON.stringify({ email })
16 })
17 
18 const data = await res.json()
19 setToken(data.token)
20 validateToken(data.token)
21 setLoading(false)
22 }
23 
24 return (
25 <form onSubmit={handleSubmit}>
26 <input value={email}
27 onChange={e => setEmail(e.target
28 />
29 <button disabled={loading}>
30 {loading ? 'Signing in...' :
HMR 2.1s ago
TypeScript React
localhost:3000/dashboard
live
mesa-app
Dashboard
Projects
Agents
Settings
Dashboard
Active Projects
4
Running Agents
2
Open PRs
7
Team Online
3
Recent Activity
Agent completed auth middleware
Sarah pushed 3 commits to feat/auth
Build passing on main
Alex opened PR #43: JWT rotation
You
Sarah
Orchestrator

Local first

Your files, your machine, nothing to configure. Drop a folder and go.

Multiplayer

Share a room. See your team’s projects, agents, and previews in real time.

Unlimited agents

Run as many Claude instances as you need, across as many projects as you want.

Agents

Run Claude everywhere. See it all.

Every project on your canvas can have its own Claude terminal. Launch five, ten, twenty — there's no limit. Each one streams in real time.

mesa-api
streaming
mesa-web
done
$ Component migration done
 
Migrated 12 components
All tests passing ✓
docs-site
waiting
$ Waiting for input...
 
Which sections need
API reference updates?
mobile-app
streaming
Orchestratormesa-workspace
running
$ mesa orchestrate --watch
 
agents 4 activestreaming 2done 1waiting 1
 
routing auth.ts → mesa-api
syncing feat/auth across 3 nodes
watching src/** for changes

Spatial

Every project. One surface.

Drag folders onto the canvas — each one becomes a node. Attach agents, terminals, and previews to each. Zoom out to see your entire workload at a glance.

+
Frontend App
App.tsx
Dashboard.tsx
AuthForm.tsx
hooks/
Layout.tsx
api.ts
Nav.tsx
Settings.tsx
API Server
routes/
auth.ts
middleware/
jwt.ts
Design System
tokens.ts
Button.tsx
Input.tsx
Documentation
getting-started.md
api-reference.md
guides/
auth.md
deploy.md
changelog.md

Collaboration

A coworking space for code.

Create a room. Your teammates join the same canvas — editing the same files, watching the same agents, reviewing the same previews. All in real time.

AuthProvider.tsx
You
Sarah
Alex
1import { useAuth } from './hooks'
2import { validateToken } from '../lib/jwt'
3 
4export function AuthProvider({ children }) {
5
const [user, setUser] = useState(null)Alex
6 const [loading, setLoading] = useState(true)
7 
8 useEffect(() => {
9 const token = localStorage.getItem('token')
10 if (token && validateToken(token)) {
11 setUser(decodeToken(token))
12
}You
13 setLoading(false)
14 }, [])
15 
16 async function login(email, password) {
17 const res = await fetch('/api/auth', {
18
method: 'POST',Sarah
19 body: JSON.stringify({ email, password })
20 })
Agentstreaming
3 watching
$ Building auth middleware
 
Reading src/routes/auth.ts...
Analyzing existing token validation
Creating JWT token handler
Adding refresh token rotation
 
Writing src/middleware/jwt.ts
Configuring token expiry: 15m access, 7d refresh
 
$ Running tests...
auth.test.ts — 12 passed
jwt.test.ts — 8 passed
 
You
Sarah
Alex

Mesa runs on your machine. Drag a folder onto the canvas  a repo, a monorepo package, a side project. Attach a terminal, a browser preview, a log viewer. Each project gets its own space. Agents stream their work in real time. Previews update as files change. Everything is on one zoomable surface. 

Share a room and your teammates see the same canvas. Their projects, their agents, their previews  all visible. You can watch an agent work on someone else's branch, or review a preview without asking for a link. No staging deploys, no screenshots in Slack. 

No cloud. No accounts. No config files. Download, open, drag a folder.

Your whole stack.
One canvas.

Projects, agents, terminals, previews — all on one surface.
Download Mesa and drop a folder.

Free to use · Auto-updates · Extensible via plugins