Skip to content

coderbots-io/workspace-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  ____          _           _           _
 / ___|___   __| | ___ _ __| |__   ___ | |_ ___
| |   / _ \ / _` |/ _ \ '__| '_ \ / _ \| __/ __|
| |__| (_) | (_| |  __/ |  | |_) | (_) | |_\__ \
 \____\___/ \__,_|\___|_|  |_.__/ \___/ \__|___/
__        __         _
\ \      / /__  _ __| | _____ _ __   __ _  ___ ___
 \ \ /\ / / _ \| '__| |/ / __| '_ \ / _` |/ __/ _ \
  \ V  V / (_) | |  |   <\__ \ |_) | (_| | (_|  __/
   \_/\_/ \___/|_|  |_|\_\___/ .__/ \__,_|\___\___|
                             |_|

Coderbots Workspace

▶ Run ./setup.sh to get started

A reusable GitHub Codespaces environment for an autonomous coding agent. This repo is not a project — it's the machine definition. You create a codespace from it, then the agent clones and runs any GitHub repo inside it.

./setup.sh installs/authenticates the agent, wires up Claude-in-Chrome, and connects the event bridge. (It also auto-launches the first time you open the codespace in VS Code.)

What you get

  • XFCE desktop in the browser via KasmVNC (port 6080, auto-connects, no password — the forwarded port is private/GitHub-auth gated). KasmVNC's web client does seamless clipboard (real Ctrl+C/Ctrl+V between your machine and the desktop) — use a Chromium-based browser (Chrome/Edge) for it to work.
  • Google Chrome, pre-flagged for containers (--no-sandbox --disable-gpu --disable-dev-shm-usage) and set as the default browser.
  • Node (LTS) and Python 3.12, plus build-essential, git, gh, jq, etc. for building most repos.
  • Claude Code installed globally; claude auth opens in the desktop Chrome so the OAuth localhost callback completes (no copy-paste).

Using it as a general environment

A codespace is bootstrapped from this repo, but you can clone and run as many other repos as you like inside it. Suggested workflow for the agent:

gh repo clone <owner>/<repo> ~/projects/<repo>   # uses the codespace's built-in auth
cd ~/projects/<repo>
# detect the stack and run it:
#   Node:   npm ci   (or pnpm/yarn) → npm run dev
#   Python: python -m venv .venv && . .venv/bin/activate && pip install -r requirements.txt

Each cloned repo's own .devcontainer/ is not applied automatically — this environment is the kitchen-sink that runs them. (If you later need a repo's exact environment, add the docker-in-docker feature + devcontainer CLI and run devcontainer up against the clone.)

Connecting to the desktop

Open the forwarded 6080 port in the browser. It auto-connects to XFCE. Launch apps from Applications (Chrome is under Internet).

Clipboard

KasmVNC syncs the clipboard with your local machine (use a Chromium browser). Paste is Ctrl+V in both Chrome and the terminal (xfce4-terminal is rebound so Ctrl+V pastes). Copy is Ctrl+C in apps, Ctrl+Shift+C in the terminal (Ctrl+C there is still SIGINT). Bidirectional sync can occasionally lag — for a short value, typing it is faster than fighting the clipboard.

Claude Code credentials (avoid the login dance)

Interactive claude login means copy-pasting a code into the desktop, which is fiddly. For a clean first run, inject credentials via a Codespaces secret so Claude Code is authenticated automatically (Repo/Account → Settings → Codespaces → Secrets):

  • CLAUDE_CODE_OAUTH_TOKEN — uses your Claude subscription. Generate once on a machine where you're logged in: claude setup-token, then paste the token as the secret value.
  • or ANTHROPIC_API_KEY — uses API billing.

Codespaces injects secrets as env vars, and Claude Code picks them up with no login flow or clipboard needed.

Layout

.devcontainer/
  devcontainer.json   # features (node, python), ports, lifecycle, env
  Dockerfile          # XFCE + KasmVNC + Chrome + fonts + build tools
  start-desktop.sh    # idempotent KasmVNC launcher (postStartCommand)

Notes / gotchas

  • git pull before "Rebuild Container" — a rebuild uses the .devcontainer/ files checked out in the codespace, not GitHub.
  • The desktop launch is idempotent and detached, so it survives restarts.
  • Heavy image — enable Codespaces prebuilds on this repo for fast startup.

About

Coderbots Codespace template

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors