Setup guide

Connect OpenAI Codex to your Vibesies container

Three ways to use Codex with your container. All three use your own ChatGPT / OpenAI account — Vibesies doesn't resell tokens.

Pick your workflow

Option 1 (recommended)

Codex Desktop app — direct SSH to your container

OpenAI added SSH remote connections to the Codex desktop app as an alpha feature in 2026. You enable it in your local config, add your Vibesies container to ~/.ssh/config, and the app spawns a Codex server inside your container over SSH. Same UI as a local session, but everything runs on your container.

Why this matters for Vibesies: Codex is already pre-installed in your container (the alpha feature requires it on the remote's PATH). All you need to do on the remote side is paste your SSH key in the dashboard. The rest is local setup on your Mac/Windows.

1. Download Codex Desktop

2. Sign in

Open the app and sign in with your ChatGPT Plus / Pro / Business / Edu / Enterprise account. Programmatic Codex usage is included.

3. Run the one-shot setup command on your laptop

This single paste does everything: enables Codex Desktop's alpha SSH feature and adds your Vibesies container to ~/.ssh/config. Safe to run more than once.

Mac / Linux Terminal:

mkdir -p ~/.codex ~/.ssh && touch ~/.codex/config.toml ~/.ssh/config && \
{ grep -q "^remote_connections" ~/.codex/config.toml || printf '\n[features]\nremote_connections = true\n' >> ~/.codex/config.toml; } && \
{ grep -q "^Host vibesies$" ~/.ssh/config || printf '\nHost vibesies\n    HostName your-name.vibesies.com\n    User vibe\n    Port 22XX\n    IdentityFile ~/.ssh/id_ed25519\n    ServerAliveInterval 60\n' >> ~/.ssh/config; } && \
echo "✓ Vibesies setup complete. Restart Codex Desktop, then Settings → Connections."

Windows PowerShell:

New-Item -ItemType Directory -Force "$HOME\.codex","$HOME\.ssh" | Out-Null
$cfg = "$HOME\.codex\config.toml"; if (!(Test-Path $cfg)) { New-Item -ItemType File $cfg | Out-Null }
if (!(Select-String -Path $cfg -Pattern "^remote_connections" -Quiet)) { Add-Content $cfg "`n[features]`nremote_connections = true" }
$ssh = "$HOME\.ssh\config"; if (!(Test-Path $ssh)) { New-Item -ItemType File $ssh | Out-Null }
if (!(Select-String -Path $ssh -Pattern "^Host vibesies$" -Quiet)) {
  Add-Content $ssh "`nHost vibesies`n    HostName your-name.vibesies.com`n    User vibe`n    Port 22XX`n    IdentityFile ~/.ssh/id_ed25519`n    ServerAliveInterval 60"
}
Write-Host "✓ Vibesies setup complete. Restart Codex Desktop, then Settings → Connections."

The Codex alpha flag lives on your laptop's config (not our server) — that's what tells your Codex Desktop app to expose the SSH menu. The SSH entry lives in your standard ~/.ssh/config.

4. Restart Codex Desktop and connect

  1. Fully quit and reopen Codex Desktop.
  2. Open Settings → Connections.
  3. You should now see vibesies in the list. Enable it, then pick /workspace as the project folder.

5. Vibe

Type what you want. Codex edits files in /workspace on your container. Your site at your-domain.vibesies.com reflects changes immediately.

Security note from OpenAI: remote project threads run commands and write files on the remote host using SSH port forwarding with local-host WebSocket listeners. Don't expose an unauthenticated app-server listener on a shared or public network. (For Vibesies, this is fine — the listener stays on your laptop's localhost, and SSH is the only thing on the public port.)
Option 2

VS Code with Remote SSH

If you live in VS Code or Cursor, this is the natural path. Edit files in VS Code's familiar UI, run codex in the integrated terminal.

1. Install VS Code (or Cursor) + Remote-SSH extension

code.visualstudio.com. Ctrl/Cmd-Shift-X → search "Remote - SSH" → Install.

2. Add your container to ~/.ssh/config

Same config block as Option 1 above.

3. Connect

F1Remote-SSH: Connect to Hostvibesies. Open Folder → /workspace.

4. Sign in to Codex in the terminal

codex login --device-auth
# ↑ the --device-auth flag is REQUIRED in a remote container.
#   Plain `codex login` tries to open a browser to localhost
#   inside the container, which doesn't work.

Codex prints a code like XXXX-XXXXX. Open auth.openai.com/codex/device on your laptop, paste the code, sign in. One-time per container.

Option 3

Plain SSH + the codex CLI

Pure terminal. No editor, no extension, no desktop app.

ssh -p 22XX vibe@your-name.vibesies.com

codex login --device-auth
# (the --device-auth flag is required — plain `codex login` won't work)

codex
# the agent starts in the current directory

The MOTD on first SSH login walks through this. cat /workspace/HELLO.md for the full orientation.

Billing

What does Codex cost?

You bring your own OpenAI account. Vibesies doesn't resell tokens or take a cut.

A free ChatGPT account does NOT include Codex — you need at least Plus.

Troubleshooting

Common problems

SSH option doesn't appear in Codex Desktop's Settings → Connections
The alpha feature isn't enabled. Edit ~/.codex/config.toml and add:
[features]
remote_connections = true
Restart the app.
Codex says "codex not found on remote host"
The alpha SSH feature requires Codex to be installed and on PATH on the remote machine. We pre-install it in every Vibesies container, so this shouldn't happen. If it does, SSH in directly and check which codex — expected output is /usr/bin/codex. If missing, run sudo npm install -g @openai/codex@latest inside your container.
Plain codex login hangs / opens a localhost URL
That's Codex's default flow trying to open a browser callback at http://localhost:1455 — which doesn't exist inside your headless container. Press Ctrl-C and run codex login --device-auth instead. (Only relevant for terminal SSH; the desktop app handles auth differently.)
Device-auth code expired before I pasted it
Codes expire in 15 minutes. Just re-run codex login --device-auth for a fresh one.
Codex Desktop's SSH host list is empty even after editing my SSH config
Codex reads concrete aliases only — pattern entries like Host *.example.com are ignored. Make sure your block starts with a concrete name like Host vibesies. Restart the app after editing.
"Cloud threads not available" warning
You signed in with an OpenAI API key. Some Codex features (cloud threads, shared sessions) require ChatGPT-account auth. For most coding work this doesn't matter. To switch, sign out and re-sign in with your ChatGPT account.
How do I update Codex in my container?
Inside the container: sudo npm install -g @openai/codex@latest. Or grab the binary from github.com/openai/codex/releases.
Can I use both Codex and Claude Code in the same container?
Yes — both CLIs are pre-installed. Sign in to whichever (or both). Run claude for one task, codex for another. They don't conflict.

Ready to vibe?

Open the dashboard, copy your SSH info, fire up Codex Desktop.

Open dashboard Connecting Claude instead?