Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
d4c2744
feat(web): add shared input and textarea primitives
pallyoung May 7, 2026
5e55b47
feat(web): add display primitive ui components
pallyoung May 7, 2026
baf03e8
feat(web): add shared tag and badge ui components
pallyoung May 7, 2026
74761cf
update: update welcome card copy with new slogan
pallyoung May 7, 2026
e53d822
docs: add promotional article for Coder Studio
pallyoung May 7, 2026
d39f82b
docs: optimize README for SEO and discoverability
pallyoung May 7, 2026
f3c4cb3
fix(auth): redirect all unauthenticated paths to login page
pallyoung May 7, 2026
d31fad4
docs: remove stale config drift references
pallyoung May 7, 2026
cb65342
refactor: remove config drift audit feature
pallyoung May 7, 2026
cce7c0d
fix(web): use current origin for dev websocket auth
pallyoung May 7, 2026
aa0b4d2
test(web): align auth route expectations
pallyoung May 8, 2026
6e94403
Improve git state sync and auto-fetch
pallyoung May 8, 2026
2662060
Refine workspace git status actions
pallyoung May 8, 2026
4c16c68
Add worktree management surface spec
pallyoung May 8, 2026
98db173
feat: add worktree management surface
pallyoung May 8, 2026
45850f4
Refine workspace git panel interactions
pallyoung May 8, 2026
2ef214b
feat(web): add shared ui migration phases f through q
pallyoung May 8, 2026
72aa158
Merge branch 'develop' into feature/ui-component-library
pallyoung May 8, 2026
0581459
fix: harden worktree and git auto-fetch flows
pallyoung May 9, 2026
e03c698
feat(web): add shared pill primitive
pallyoung May 9, 2026
a1153f1
feat(web): extend shared notice and tooltip adoption
pallyoung May 9, 2026
dfff969
fix(server): handle workspace root path escape
pallyoung May 9, 2026
cfcb53d
feat(web): extend shared notice and tooltip adoption
pallyoung May 9, 2026
aa11924
fix(web): add tooltip primitive and preserve appearance selections
pallyoung May 9, 2026
72aba76
feat(web): add shared input and textarea primitives
pallyoung May 7, 2026
f0a9ced
feat(web): add display primitive ui components
pallyoung May 7, 2026
6e61d3d
feat(web): add shared tag and badge ui components
pallyoung May 7, 2026
46a5f2e
feat(web): add shared ui migration phases f through q
pallyoung May 8, 2026
b35c9c6
fix(web): finish ui component library merge validation
pallyoung May 9, 2026
4443445
merge(feature/ui-component-library): absorb branch history
pallyoung May 9, 2026
d5d5774
feat(web): migrate bounded tooltip batches and complete spinner inven…
pallyoung May 9, 2026
dc42879
feat(web): migrate modal and icon action ui batches
pallyoung May 9, 2026
174b626
feat(web): complete shared sheet migration
pallyoung May 9, 2026
4c33f1e
feat(web): extend tooltip and confirm dialog migrations
pallyoung May 9, 2026
57d4eee
feat(web): expand shared empty state migration
pallyoung May 9, 2026
33ec290
fix(web): clarify config save backup toast
pallyoung May 9, 2026
9da20b0
feat(web): advance shared select popover and tabs migrations
pallyoung May 9, 2026
a08f008
fix(web): preserve live xterm responses during hydration flush
pallyoung May 9, 2026
49f4155
feat(web): add action menu and expand icon button adoption
pallyoung May 9, 2026
d7a7ae0
feat(web): migrate supervisor card icon actions
pallyoung May 9, 2026
04ad0e9
feat(web): expand icon button action coverage
pallyoung May 9, 2026
1ed2b66
feat(web): finish icon button feature migrations
pallyoung May 9, 2026
a85a8ca
feat(web): extend empty state workspace shells
pallyoung May 9, 2026
5152a77
test(web): cover workspace route gate shells
pallyoung May 9, 2026
6905202
feat(web): expand empty state migration coverage
pallyoung May 9, 2026
8256f24
feat(web): complete tooltip migration inventory
pallyoung May 9, 2026
12d1e3c
docs(web): complete icon button migration audit
pallyoung May 9, 2026
f95fd09
feat(web): migrate worktree delete confirm dialog
pallyoung May 9, 2026
b634a94
feat(web): migrate welcome empty-state shells
pallyoung May 9, 2026
c58c538
refactor: extend shared empty state adoption
pallyoung May 10, 2026
370518f
fix(web): resolve workspace read-side fallbacks
pallyoung May 10, 2026
29ee011
feat(server): add transcript path groundwork
pallyoung May 10, 2026
32edb49
feat(providers): add codex notify argv support
pallyoung May 10, 2026
35916a5
Revert "feat(providers): add codex notify argv support"
pallyoung May 10, 2026
feef9fc
Revert "feat(server): add transcript path groundwork"
pallyoung May 10, 2026
de26d5a
docs: remove stale codex notify hook plan
pallyoung May 10, 2026
08c13ec
feat(web): complete ui component migration inventory
pallyoung May 10, 2026
4f9a705
fix(web): restore workspace tab and file tree visuals
pallyoung May 10, 2026
b758b9c
fix(web): restore file tree icon colors
pallyoung May 10, 2026
55c1bd0
fix(web): align workspace footer git status
pallyoung May 10, 2026
98dbfe9
fix(web): avoid topbar tooltip overlap
pallyoung May 10, 2026
9be8aac
fix(web): scope workspace footer alignment by surface
pallyoung May 10, 2026
8957bed
fix(workspace): remove file tree label tooltips
pallyoung May 10, 2026
0962c0f
test(web): stop asserting legacy mobile git tab classes
pallyoung May 10, 2026
4521ccd
chore(release): add patch changeset for ci test fix
pallyoung May 10, 2026
39b7e4a
fix(web): adapt session launcher cards to narrow panes
pallyoung May 10, 2026
8dbeffe
Shorten git sync success notifications
pallyoung May 10, 2026
f187165
Fix Vitest project setup for web tests
pallyoung May 10, 2026
902df34
Add topbar close hover regression coverage
pallyoung May 10, 2026
bdc1623
Fix Vitest config resolution in CI
pallyoung May 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/fresh-icons-heal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@spencer-kit/coder-studio": patch
---

Fix the mobile workspace Git tab tests so CI no longer fails on stale legacy class assertions after the shared tab styling migration.
236 changes: 138 additions & 98 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,119 +1,169 @@
# Coder Studio

<div align="center">

**AI Coding Workspace · Browser-Based · Cross-Device · Self-Hosted**

[![npm version](https://img.shields.io/npm/v/@spencer-kit/coder-studio.svg)](https://www.npmjs.com/package/@spencer-kit/coder-studio)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js](https://img.shields.io/badge/Node.js-%3E%3D24.0.0-green.svg)](https://nodejs.org/)

</div>

---

> Deploy once, code everywhere.
>
> Deploy your coding workspace once, then keep working anywhere.

[中文说明](README.zh-CN.md)
[中文说明](README.zh-CN.md) | [Documentation](docs/help/quick-start.md) | [GitHub](https://github.com/spencerkit/coder-studio)

Coder Studio lets you launch an AI coding workspace on your machine and keep using it from wherever you are. Claude Code or Codex, files, Git, and terminal all stay in one browser-based workspace, so your workflow is no longer pinned to one desk or one device.
**Coder Studio** is a browser-based AI coding workspace that runs on your local machine. Access your development environment from any device with a web browser — continue coding on your phone during commute, review changes on a tablet, or switch between computers seamlessly.

Start a task in the office, check progress on your phone during the commute, review changes from a tablet, and continue on a laptop later. Same workspace, same context, no environment handoff.
## ✨ Key Features

![Workspace](docs/help/assets/screenshot-workspace-overview.png)
- 🌐 **Browser-Based Workspace** — No desktop app needed, works in any modern browser
- 📱 **Cross-Device Continuity** — Start on desktop, continue on mobile, switch devices freely
- 🤖 **Multi-Agent Support** — Run Claude Code and OpenAI Codex sessions side by side
- 🔧 **Integrated Environment** — Terminal, file editor, Git viewer, and AI agents in one interface
- 🔒 **Self-Hosted & Private** — Code stays on your machine, no cloud IDE dependency
- ⚡ **Real-Time Sync** — Live workspace state across all connected devices

## Why Coder Studio
![Workspace Overview](docs/help/assets/screenshot-workspace-overview.png)

- **Deploy once, continue anywhere**: start the service once and move between devices and contexts without breaking your flow
- **One workspace across devices**: not just remote logs, but the same workspace with Agent, code, Git, and terminal
- **Agent + Code + Git + Terminal in one place**: less context switching between CLI, editor, diff tools, and shell
- **Works with Claude Code and Codex**: choose the right Agent per task and run sessions side by side
- **Runs locally, keeps your data under your control**: the service runs on your machine, without relying on a third-party cloud IDE
---

## What Problem It Solves
## 🎯 Why Coder Studio

Traditional AI coding workflows are often tied to the one machine where the CLI is running:
| Feature | Benefit |
|---------|---------|
| **Deploy once, continue anywhere** | Start the service once, move between devices without breaking flow |
| **Unified workspace** | Agent, code, Git, and terminal in one place — no more app switching |
| **Multi-Agent support** | Run Claude Code and Codex sessions side by side |
| **Local-first & private** | Runs on your machine, code never leaves your device |
| **Zero-config browser access** | No desktop client, just open a URL from any device |

- The Agent is running, but you still have to stay near the original device
- Changing locations makes it hard to keep watching context and execution state
- A phone may show notifications, but not the full coding workspace
- Switching devices usually means taking over the environment again instead of simply continuing the work
---

Coder Studio turns that into:

`Deploy once, code everywhere.`

## Quick Start
## 🚀 Quick Start

```bash
# Install globally
npm install -g @spencer-kit/coder-studio

# Launch the workspace
coder-studio open
```

Then just:
Your browser opens automatically. Select your project folder and start working with Claude Code or OpenAI Codex.

1. Click **Open Workspace** in the browser
2. Choose your project directory and create a Claude or Codex session
3. Start working with the Agent while viewing files, Git changes, and terminal output in the same workspace
> **No AI CLI installed yet?** You can still browse files and use the terminal. Install Claude Code or Codex later when needed.

> You can open the UI and browse files and terminals before installing a provider CLI. See the [Provider Setup Guide](docs/help/providers.md) for details.
---

## How You Can Use It
## 💡 Use Cases

| Scenario | What you do |
|----------|-------------|
| Start work in the office | Launch the service, open the project, create a Claude or Codex session, and let the Agent begin |
| Check progress during a commute | Open the same workspace on your phone and review Agent output, session status, and Git changes |
| Review changes while away from your desk | Use a tablet to browse files, inspect diffs, and confirm terminal output |
| Continue later on another device | Reconnect to the same workspace and keep going with the same context |
| Share progress with teammates | Let others on the same local network open the workspace in a browser and view the current state |
### Remote-Friendly Development

## What You Can Do
- Start an Agent task at the office, check progress on your phone during commute
- Review code changes on a tablet without opening your laptop
- Continue work from a home computer with zero setup

- Run multiple Agent sessions inside one workspace
- Watch the file tree, editor, and Git diff while the Agent is working
- Open a Shell terminal to validate the Agent's output yourself
- Use the full multi-panel desktop layout and keyboard shortcuts
- Monitor workspace and session progress from a phone or tablet
- Manage themes, language, shortcuts, and provider arguments from Settings
### Team Collaboration

## Works Across Devices
- Share workspace URL with teammates on the same network
- Code review without screen sharing — just open the link
- Real-time visibility into Agent progress for stakeholders

Coder Studio runs in a standard browser and does not require a desktop client:
### AI-Assisted Coding

- **Desktop**: best for full coding sessions, editing files, reviewing diffs, and managing panels
- **Tablet**: useful for lightweight review, tracking Agent progress, and browsing project state
- **Phone**: useful for checking session status, terminal output, and workspace changes on the go
- Run multiple Claude Code or Codex sessions in parallel
- Monitor Agent progress from mobile while away from desk
- Keep terminal, editor, and Git view in one unified interface

The same service URL can be opened from different devices, and the interface adapts to the screen automatically.
---

**Desktop Workspace**
## 📱 Cross-Device Experience

| Device | Best For |
|--------|----------|
| 🖥️ **Desktop** | Full coding sessions, file editing, diff review, panel management |
| 📱 **Tablet** | Code review, Agent progress tracking, file browsing |
| 📲 **Phone** | Quick status checks, terminal output monitoring, session viewing |

The same workspace URL works across all devices — interface adapts automatically.

**Desktop Interface**

![Desktop Workspace](docs/help/assets/screenshot-pc.png)

**Mobile Workspace**
**Mobile Interface**

![Mobile Workspace](docs/help/assets/screenshot-mobile.png)

## Core Capabilities
---

## 🛠️ Feature Overview

- **Workspace**: a local project directory with its own files, terminals, Git state, and sessions
- **Session**: an independent Claude or Codex Agent run inside a workspace
- **Terminal**: both Shell terminals and Agent terminals are supported
- **Git View**: inspect branches, changed files, and diffs directly inside the workspace
- **Settings**: manage themes, language, shortcuts, and provider startup arguments in one place
| Feature | Description |
|---------|-------------|
| **Multi-Agent Sessions** | Run Claude Code and Codex sessions side by side |
| **Integrated Editor** | Monaco-powered code editor with syntax highlighting |
| **Git Integration** | View branches, diffs, and changed files without leaving workspace |
| **Shell Terminal** | Full PTY terminal for commands and validating Agent output |
| **Responsive UI** | Desktop, tablet, and phone layouts that adapt automatically |
| **Session History** | Resume previous sessions with full context preserved |
| **Dark/Light Theme** | Customizable appearance and keyboard shortcuts |

## Documentation
---

- [Quick Start](docs/help/quick-start.md) - From install to first launch
- [App Overview](docs/help/app-overview.md) - Core concepts and capabilities
- [Provider Setup](docs/help/providers.md) - Install and configure Claude Code / Codex CLI
- [Desktop Guide](docs/help/desktop-guide.md) - Desktop interface and workflows
- [Mobile Guide](docs/help/mobile-guide.md) - Phone and tablet usage
- [Common Workflows](docs/help/workflows.md) - Task-oriented usage patterns
- [Troubleshooting](docs/help/troubleshooting.md) - Common issues and fixes
- [CLI Reference](docs/help/cli.md) - Command-line reference
## 📋 Requirements

## Installation Requirements
| Dependency | Version | Notes |
|------------|---------|-------|
| Node.js | ≥ 24.0.0 | Required for running Coder Studio |
| Claude Code CLI | Latest | Optional — for Claude Agent sessions |
| OpenAI Codex CLI | Latest | Optional — for Codex Agent sessions |

---

## 📚 Documentation

| Resource | Description |
|----------|-------------|
| [Quick Start Guide](docs/help/quick-start.md) | Installation to first workspace |
| [App Overview](docs/help/app-overview.md) | Core concepts and features |
| [Provider Setup](docs/help/providers.md) | Claude Code / Codex CLI installation |
| [Desktop Guide](docs/help/desktop-guide.md) | PC interface and shortcuts |
| [Mobile Guide](docs/help/mobile-guide.md) | Phone / tablet usage |
| [Common Workflows](docs/help/workflows.md) | Task-based tutorials |
| [Troubleshooting](docs/help/troubleshooting.md) | FAQ and known issues |
| [CLI Reference](docs/help/cli.md) | Command-line options |

| Requirement | Notes |
|-------------|-------|
| Node.js >= 24.0.0 | Required to run the Coder Studio service |
| Claude Code CLI or OpenAI Codex CLI | Required to create Agent sessions; files and terminals can still be used before installing a provider |
---

## Contributor Notes
## 👥 Who Should Use Coder Studio

The following section is for repository contributors. Regular users can start with the quick start and product docs above.
- **AI Coding Power Users** — Daily Claude Code / Codex users who want better session management
- **Multi-Device Developers** — Switch between office, home, and mobile devices frequently
- **Remote-First Teams** — Need to share work progress without screen sharing
- **Privacy-Conscious Developers** — Want code to stay on local machine, not cloud IDE

---

## 🔮 Roadmap

- [ ] Web-based terminal streaming optimization
- [ ] Session replay and history navigation
- [ ] Multi-workspace management
- [ ] Plugin system for custom integrations
- [ ] Cloud sync for workspace preferences

---

## 🤝 Contributing

We welcome contributions! See [Contributing Guide](CONTRIBUTING.md) for details.

### Local Development

Expand All @@ -123,40 +173,30 @@ pnpm install
pnpm dev
```

### Common Commands

```bash
pnpm changeset
pnpm acceptance:phase1
pnpm build:cli
pnpm lint
pnpm lint:fix
pnpm format
pnpm check
```

### Release Flow

- Release-worthy PRs add a changeset for `@spencer-kit/coder-studio`
- Ordinary PRs can merge without a changeset
- After release-worthy changes land on `main`, GitHub Actions auto-creates or updates a release PR
- Merging the release PR writes the CLI version bump and changelog
- Publishing is manual through the `Publish CLI` workflow, which publishes to npm, creates the git tag, and opens the GitHub release

### Tech Stack

- Frontend: React + Vite + Jotai
- Backend: Fastify + WebSocket
- Terminal: xterm.js + node-pty
- Editor: Monaco Editor
- Storage: SQLite (`node:sqlite`)
| Layer | Technology |
|-------|------------|
| Frontend | React, Vite, Jotai |
| Backend | Fastify, WebSocket |
| Terminal | xterm.js, node-pty |
| Editor | Monaco Editor |
| Storage | SQLite (node:sqlite) |

### Development Docs

- [PRD](docs/PRD.zh-CN.md)
- [Design Spec](docs/superpowers/specs/2026-04-13-coder-studio-design.md)
- [More Docs](docs/)

## License
---

## 📄 License

MIT License — see [LICENSE](LICENSE) for details.

---

## 🔍 Keywords

MIT
`ai coding assistant` `browser ide` `claude code` `codex` `remote development` `web-based ide` `self-hosted ide` `cross-device coding` `ai agent workspace` `local-first development` `mobile coding` `tablet coding` `developer tools` `terminal in browser` `git web interface` `monaco editor` `websocket terminal` `ai pair programming` `coding anywhere` `cloud ide alternative`
Loading
Loading