The Setup TUI
code-server-setup is a full-screen, arrow-key config editor for the server — think nmtui. It edits the same YAML file the server reads, and saving tells the running server to reload. No manual YAML editing, no forgetting to restart.
Run it
bash
sudo code-server-setup # system install (edits /etc/code.yaml)
code-server-setup --config ~/.config/code/server.yaml # userland install
podman exec -it code-server code-server-setup # inside the containerIt's installed alongside the server automatically.
Controls
code-server-setup — editing /etc/code.yaml
─────────────────────────────────────────────
listen :80
tlsDomains code.example.com
▶ tlsEmail ops@example.com▏
cookieSecure [x] true
dataDir /var/lib/code/data
─────────────────────────────────────────────
↑/↓ field ←/→/Space toggle type to edit ⌫ delete Ctrl+S save Ctrl+C quit| Key | Action |
|---|---|
↑ / ↓ | move between fields |
type / ⌫ | edit text fields (tlsDomains takes a comma-separated list) |
← / → / Space | toggle booleans like cookieSecure |
Ctrl+S | save and hot-reload the running server |
Ctrl+C / Esc | quit without saving |
What happens on save
Ctrl+S writes the YAML and signals the running server, which restarts itself in place with the new config — including changes that need re-binding ports (like turning on HTTPS). Open connections drop for a second and reconnect automatically; running tasks on your agents are unaffected.
If the server isn't running, the file is still saved — the config applies on next start.
Troubleshooting
save failed— the config file isn't writable. In the container case, the host's/etc/code.yamlmust be mounted read-write and owned by the container user:chown 10001:10001 /etc/code.yaml.- Saved a key but the behavior didn't change — that key may be overridden by a
CODE_*environment variable (common in container setups). The env var wins; remove it or change it there. See Configuration File.