← Files DigitalOceanARCHIVED FILE
README.md
2.44 KB · Nov 5, 2026 · 06:08 UTC
# droplet-workspace
A Codex plugin that provisions a DigitalOcean droplet from the **Codex Universal**
image (id `251129059`) and wires it up as a remote SSH workspace for the Codex
desktop app. It uses the installed Codex DigitalOcean app, creates and boots
the droplet without doctl or API tokens, configures
local SSH access, and hands off to Codex. The user picks the region and size
interactively (with sensible defaults), and the droplet is billed hourly until
deleted.
## Components
```
droplet-workspace/
.codex-plugin/plugin.json # plugin manifest (name, version, skills/apps paths)
.app.json # connected DigitalOcean app manifest
skills/provision-droplet/
SKILL.md # the step-by-step workflow Codex follows
ssh_config.tmpl # ~/.ssh/config Host block template
scripts/
keygen.py # generates a unique name + ed25519 SSH key pair
configure_ssh.py # writes SSH config, scans host keys, waits for cloud-init
```
- **Codex DigitalOcean app** — one required external app integration. Install
and authenticate it in Codex before running this plugin. It provides both the
SSH key tools (`key-create`, `key-list`, `key-delete`) and the droplet tools
(`droplet-create`, `droplet-get`, `droplet-delete`).
- **`.app.json`** — the plugin-local app dependency manifest. It binds this
plugin to the DigitalOcean app id
`asdk_app_6a3c278c93ac8191b29768648d63a754`.
- **`SKILL.md`** — the orchestration guide. It drives the Codex DigitalOcean app
tools and the two scripts in order, prompts the user for region/size, and
explains the one manual Codex step at the end.
- **`scripts/keygen.py`** — stdlib-only; mints a unique `adjective-noun-hex4`
prefix, derives the droplet name / DO key label, and creates the local SSH key.
- **`scripts/configure_ssh.py`** — stdlib-only; renders `ssh_config.tmpl` into
`~/.ssh/config`, refreshes `known_hosts`, and probes SSH login until cloud-init
finishes before printing the `DROPLET READY` handoff.
- **`ssh_config.tmpl`** — the `Host` block template (`{{ALIAS}}`, `{{IP}}`,
`{{USER}}`, `{{IDENTITY_FILE}}`).
## The one manual step
There is no supported CLI to register a desktop remote SSH project in Codex
(tracking: openai/codex#21554). After provisioning, add the host via
**Codex App → Settings → Connections → Add SSH Host → pick the alias → choose
the remote folder.**
SHA-256: 7b2ddcb101e3ad4f63870ccd4cbdc4496fdd40c9abd647b080112fb7befbe8ae