Garcon
Garcon is a coding workspace for Claude Code, Codex, OpenCode, and Amp.
Install / Use
/learn @cfal/GarconQuality Score
Category
Development & EngineeringSupported Platforms
README
Garcon
Garcon is a coding workspace for Claude Code, Codex, OpenCode, and Amp.
<table> <tr> <td align="center"> <a href="screenshots/main-screen.png"> <img src="screenshots/main-screen.png" alt="Garcon main workspace" width="200" /> </a> </td> <td align="center"> <a href="screenshots/git-screen.png"> <img src="screenshots/git-screen.png" alt="Garcon git panel" width="200" /> </a> </td> <td align="center"> <a href="screenshots/main-screen-mobile.png"> <img src="screenshots/main-screen-mobile.png" alt="Garcon mobile layout" width="70" /> </a> </td> <td align="center"> <a href="screenshots/main-screen-dark.png"> <img src="screenshots/main-screen-dark.png" alt="Garcon main workspace in dark theme" width="200" /> </a> </td> </tr> <tr> <td align="center"><em>Main workspace</em></td> <td align="center"><em>Built-in Git workbench</em></td> <td align="center"><em>Mobile layout</em></td> <td align="center"><em>Main workspace (dark theme)</em></td> </tr> </table>Capabilities
- Multi-provider chat sessions (
claude,codex,opencode) with per-chat model selection - Unified coding workspace tabs: chat, files, terminal, and git
- Full Git workbench: status, diff, staging/hunks, branches, history, commit/push/pull/fetch, worktrees, revert
- Persistent chat history with pin/archive/reorder/read-state/fork operations
- Per-chat message queueing (enqueue, pause, resume, clear) with recovery after restart
- File workspace: tree/list/browse, text editing, binary/image viewing, and image upload for prompts
- Built-in terminal tab (PTY over WebSocket) with reconnectable sessions
- Configurable project access boundary for filesystem safety
Architecture
web/: SvelteKit frontend (chat, files, shell, git panels)server/: Bun server + WebSocket orchestration + provider adapterscommon/: shared WS contracts and chat/event types
Requirements
- Bun
- At least one agent backend:
- Claude CLI (
claude) and local Claude auth - Codex auth (
~/.codex/auth.json) orOPENAI_API_KEY - OpenCode provider keys/config (through OpenCode SDK)
- Claude CLI (
Quick Start
git clone https://github.com/cfal/garcon.git
cd garcon
bun run install
bun run start
Default URL: http://127.0.0.1:8080 (override with GARCON_PORT or --port)
On first launch, create the single local account at /setup, then configure providers in Settings.
If you start the server with auth disabled, onboarding/login is skipped and you enter the app directly.
Run and Configuration
CLI
bun run start --port 8080 --bind-address 127.0.0.1 --project-base-dir /path/to/repos
Disable auth at startup (requires server restart to change):
bun run start -- --disable-auth
# or GARCON_DISABLE_AUTH=true bun run start
Run bun run help to see all flags and supported environment variables.
Build Executable
Build a standalone Bun executable (server + embedded static frontend assets):
bun run build-exe
This command runs checks/tests, builds web/build, compiles dist/garcon, and runs a smoke test against the executable.
At server startup, static assets are served from embedded assets when Bun.embeddedFiles is non-empty.
Otherwise the server reads from web/build.
Docker
Docker Hub images are published periodically but may lag behind the latest commits.
For the most up-to-date version, build the image locally with docker compose build (see the Docker Compose section below).
Test with Docker Hub image:
docker run -d \
--name garcon \
--init \
--restart unless-stopped \
-p 8080:8080 \
-e GARCON_PORT=8080 \
-e GARCON_BIND_ADDRESS=0.0.0.0 \
-e GARCON_PROJECT_BASE_DIR=/projects \
-e OPENAI_API_KEY="${OPENAI_API_KEY:-}" \
-v garcon-data:/home/garcon/.garcon \
-v "$HOME/repos":/projects \
-v "$HOME/.claude":/home/garcon/.claude \
-v "$HOME/.codex":/home/garcon/.codex \
-v "$HOME/.opencode":/home/garcon/.opencode \
-v "$HOME/.opencode/opencode-data":/home/garcon/.local/share/opencode \
-v "$HOME/.opencode/opencode-state":/home/garcon/.local/state/opencode \
-v "$HOME/.opencode/opencode-cache":/home/garcon/.local/cache/opencode \
-v "$HOME/.amp":/home/garcon/.amp \
garconide/garcon:latest
Run with Docker Compose (builds local image):
GARCON_PROJECT_DIR=~/repos docker compose up -d
Custom port:
GARCON_PROJECT_DIR=~/repos GARCON_PORT=3000 docker compose up -d
Set GARCON_PROJECT_DIR (compose) or the /projects bind mount (docker run) to the directory containing your repos. Pass any API keys (e.g. OPENAI_API_KEY) as needed. Config is persisted in garcon-data.
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
AGENTS
342.5kExtensions Boundary This directory contains bundled plugins. Treat it as the same boundary that third-party plugins see. Public Contracts - Docs: - `docs/plugins/building-plugins.md` - `do
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
