Lexus2016/claude-code-studio

133 stars · Last commit 2026-08-28

A fully functional web workspace for Claude Code CLI—chat, Kanban task board, task scheduling, multi-agent orchestration, MCP servers, skills, remote access (Web, SSH, Telegram), projects, and real-time data streaming.

README preview

![Claude Code Studio](public/screenshots/cover.png)

# Claude Code Studio

**The browser interface for Claude Code CLI.** Chat with AI, run tasks on autopilot, and manage your projects — all from one tab.

> [English](README.md) | [Українська](README_UA.md) | [Русский](README_RU.md)

> 📖 [From Terminal to Dashboard](https://www.notion.so/From-Terminal-to-Dashboard-How-Claude-Code-Studio-Changes-AI-Assisted-Development-329676bbc5b6809f9c63e29ca66d8135) | [Remote Access Revolution](https://www.notion.so/Claude-Code-Studio-The-Remote-Access-Revolution-for-AI-Assisted-Development-329676bbc5b68097a5aefac4db29a60d)

> Works on **Windows, macOS, and Linux** — zero platform-specific setup.

> **v7.15.0** — **Turn an existing plan into a board without running it.** An agent can now add Kanban cards that simply *sit* there: `create_task` takes a `status`, so importing a `tasks/` folder, a roadmap or a checklist puts every item on the board — **Backlog** for what is still open, **Done** for what the plan already ticks off — instead of launching one unattended run per line at the moment of import. You triage by dragging a card to **To Do**. Also in this release: **every chat now remembers its own turn budget and thinking effort.** Both are stored per chat, so a reopened tab, a fork, or the chat behind a Kanban card comes back on the dials it was created with, rather than on whatever the last open tab happened to be using.
>
> **Upgrading a Docker install from 7.2.x or older.** `docker-compose.yml` now keeps
> `config.json` and `.env` on the `data` volume (`CCS_CONFIG_PATH` / `CCS_ENV_PATH`)
> so the config UI's changes survive a container rebuild — previously they lived in
> the image layer and were discarded. On first start the server copies a legacy file
> across automatically and leaves the original in place. The one case it cannot
> rescue is a container whose `config.json` only ever existed in that discarded

View full repository on GitHub →