--- title: VS Code + Claude Code + Codex emoji: 💻 colorFrom: blue colorTo: purple sdk: docker app_port: 7860 --- # VS Code (code-server) with Claude Code & OpenAI Codex Browser-based VS Code, with the `claude` and `codex` CLIs preinstalled, and persistent storage via a Hugging Face [Storage Bucket](https://huggingface.co/docs/hub/storage-buckets) mounted at `/data`. ## 1. Set a password secret In **Space settings → Variables and secrets**, add a secret: - `PASSWORD` = a password of your choice (If you skip this, code-server generates a random password each restart and prints it to the Space's container logs — check there if you didn't set one.) ## 2. Create and attach a storage bucket (free persistent storage) ```bash # create the bucket (one-time) hf buckets create my-vscode-data # attach it to this Space, mounted at /data hf spaces volumes set / -v hf://buckets//my-vscode-data:/data ``` You can also do this from the Space's **Settings → Storage Buckets** UI, mount path `/data`. Note that `/data` is only available at *runtime*, not during the Docker build — the `entrypoint.sh` script detects it on container start and, if present, points `$HOME` at `/data/home` (seeding it from the image's default home on first run). Everything under your home directory persists: your workspace, VS Code settings/extensions, `claude`/`codex` logins, shell config, the works. Without an attached bucket, everything still works, just ephemerally (lost on restart). ## 3. Log in to Claude Code and Codex Open a terminal inside VS Code (``Ctrl+` ``) and run: ```bash claude # follow the login prompt (or set ANTHROPIC_API_KEY as a Space secret) codex # follow the login prompt (or set OPENAI_API_KEY as a Space secret) ``` With a bucket attached, you only need to log in once — credentials persist across restarts.