Skip to content

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 container

It'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
KeyAction
/ move between fields
type / edit text fields (tlsDomains takes a comma-separated list)
/ / Spacetoggle booleans like cookieSecure
Ctrl+Ssave and hot-reload the running server
Ctrl+C / Escquit 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.yaml must 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.