To host a website made with Codex means putting the files Codex built on a server so anyone can open them at a public HTTPS link. On deed.page that is one curl request with no account, and the Free plan holds 25 sites of up to 25 MB each (pricing).
Codex, OpenAI's coding agent, writes and edits files in your project, but it does not host a plain folder of files for you. Most guides send you through a GitHub repo, a hosting dashboard, or a ZIP upload. The steps below let Codex do it from the terminal. Every command was run against production on November 13, 2026 with a 15-minute expiry, and the test sites were then deleted.
How do I host a website made with Codex?
Ask Codex to build the site, then to publish it with the line below. It reads the link from the reply and hands it to you.
curl -T index.html "https://deed.page/v1/sites?slug=recipe-box-codex-r2v6&ref=blog"
The reply had "url": "https://recipe-box-codex-r2v6.deed.page/", "version": "v1", and a deed_tok_… owner token shown once. Pick your own suffix; that slug is only an example, and a slug someone else owns returns 409 slug_taken with a free suggestion (choosing a slug). There is no sign-up, no claim link, and no default expiry.
Let the command reach the network
The Codex CLI and IDE extension run commands in a sandbox, and the default workspace-write mode keeps network access off (Codex approvals and security). In the Auto preset, Codex asks for approval before a command that needs the network, so you approve the curl once. To allow it for every session, the docs give this ~/.codex/config.toml setting:
[sandbox_workspace_write]
network_access = true
We checked both cases with codex sandbox (codex-cli 0.167.0): the same curl to deed.page got no connection under the built-in :workspace permission profile and returned 200 under a profile with network enabled. Turning network on lets every sandboxed command reach the internet, so leave it off if approving each publish suits you better.
A built folder (Vite, React, Astro)
Most Codex projects end with npm run build and a dist/ folder. Pack it with tar -C so index.html sits at the root, then send it with the token from the first publish:
tar -C dist -czf site.tar.gz .
curl -T site.tar.gz -H "Authorization: Bearer $DEEDPAGE_TOKEN" \
"https://deed.page/v1/sites?slug=recipe-box-codex-r2v6&ref=blog"
That returned "version": "v2" at the same URL, and /assets/app.css served as text/css. Sending the same tarball again returned "unchanged": true without a new version. deed.page serves static files only, so an app with API routes or server rendering needs a host that runs a server. Bigger builds go up in parts (large sites).
Host it from Codex with MCP
If you would rather Codex call a tool than run a shell command, add the deed.page MCP server once (Codex MCP docs):
codex mcp add deed-page --url https://deed.page/mcp
That wrote [mcp_servers.deed-page] with url = "https://deed.page/mcp" to config.toml, and codex mcp list showed it enabled with no sign-in step. The tool call looks like this:
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"publish_site","arguments":{"slug":"recipe-box-codex-mcp-r2v6","files":{"index.html":"<!doctype html><title>Recipe box</title><h1>Recipe box from Codex</h1>"}}}}
It returned ok: true, version: "v1", the subdomain URL, and a token. Passing that token to update_site gave v2 at the same address. The MCP walkthrough lists the other tools.
Make it the project's way to deploy
Codex reads AGENTS.md files before doing any work (AGENTS.md docs), so one line there stops each session from hunting for a host:
Deploy: npm run build, tar -C dist -czf site.tar.gz . then curl -T site.tar.gz
with Authorization: Bearer $(cat ~/.config/deed-page/token) to
https://deed.page/v1/sites?slug=<our-slug>. Tell me the url from the reply.
Keep the token in a file with chmod 600 and out of git, not in AGENTS.md itself (token hygiene). deed.page stores only its SHA-256 (trust).
FAQ
Doesn't Codex already host sites?
In the Codex desktop app, ChatGPT Sites can deploy a site that people in your workspace open, with sharing set by workspace settings; on Enterprise, admins decide whether it is available. For a public link anyone can open without a workspace, a static host like deed.page fits.
Do I need an account?
Not on deed.page. The first publish mints an owner token, and that token is the only credential. The Codex guides from Static.app and Tiiny Host (checked November 13, 2026) start with dragging a ZIP of the build onto their site instead of a command.
Will the site disappear if nobody visits it?
No. Sites do not expire unless you send X-Ttl for a throwaway page (TTLs). Free sites show a small "Published with deed.page" link; Hobby at $3 a month removes it.