Skip to main content

Remote-friendly web workspace for Codex sessions

Project description

Open Codex UI

open-codex-ui

Remote-friendly Codex web workspace for continuing sessions from desktop and mobile browsers.

Resume

一二Resume

Requirements

  • uv for running the published application
  • Python 3.12+, Node.js 20+, and pnpm only for source development

Install

Run the published application without a permanent installation:

uvx open-codex-ui

The wheel includes the compiled frontend and starts in production mode. For a persistent command, install it as a uv tool:

uv tool install open-codex-ui
open-codex-ui

For source development, install the backend dependencies:

uv sync

Codex workspace support uses the published open-codex-bridge package from PyPI.

Then install the frontend dependencies:

cd web
pnpm install

Authentication

This app now supports password protection for deployed environments.

Enable auth with either:

  • YIER_AUTH_PASSWORD
  • YIER_AUTH_PASSWORD_HASH

Plain password example:

export YIER_AUTH_PASSWORD='change-this-password'

Hashed password example:

uv run python -c "from yier_web.auth import hash_password; print(hash_password('change-this-password'))"
export YIER_AUTH_PASSWORD_HASH='paste-generated-hash-here'

Optional auth settings:

  • YIER_AUTH_SECRET: optional extra signing secret for session cookies
  • YIER_AUTH_SESSION_TTL_HOURS: cookie lifetime in hours, default is 168
  • YIER_CODEX_EMBED_TOKEN: token for unauthenticated Codex iframe access

If neither password variable is set, authentication is disabled.

Codex Iframe Embed

See IFRAME.md for iframe setup, authentication, and the postMessage API.

Development Startup

Development mode is different from production:

  • The backend should run with --debug
  • The frontend should run with Vite dev server
  • In this mode, the backend proxies frontend requests to http://127.0.0.1:5173

Recommended one-command startup:

uv run open-codex-ui-dev

This starts:

  • frontend: pnpm dev
  • backend: debug mode with reload

If you prefer split terminals:

Frontend only:

uv run open-codex-ui-dev-web

Backend only:

uv run open-codex-ui-dev-backend

You can also override backend bind settings:

uv run open-codex-ui-dev --host 127.0.0.1 --port 9999
uv run open-codex-ui-dev-backend --host 127.0.0.1 --port 9999

Default address:

  • App: http://127.0.0.1:9999
  • Vite dev server: http://127.0.0.1:5173

Notes:

  • Keep pnpm dev running, otherwise the backend cannot proxy the frontend in debug mode.
  • API requests still go through the Python server at port 9999.

Production Startup

The published wheel includes the compiled frontend and does not use the Vite dev server:

uvx open-codex-ui

The server listens on 127.0.0.1:9999 by default. Bind to the local network explicitly when needed:

uvx open-codex-ui --host 0.0.0.0 --port 9999

When running from a source checkout, build the frontend before starting:

uv run open-codex-ui-build-web
uv run open-codex-ui-prod

In production mode:

  • The backend serves the compiled assets packaged under yier_web/static
  • No Vite proxy is used
  • Authentication should usually be enabled with YIER_AUTH_PASSWORD or YIER_AUTH_PASSWORD_HASH

Production example:

export YIER_AUTH_PASSWORD='change-this-password'
uvx open-codex-ui --host 0.0.0.0 --port 9999

Common Commands

Backend tests:

uv run --all-packages pytest

Targeted backend tests:

uv run --all-packages pytest tests/test_codex_backend.py tests/test_codex_workspace.py tests/test_app.py

Backend compile check:

uv run python -m compileall yier_web

Frontend unit tests:

cd web
pnpm test:unit

Frontend type check:

cd web
pnpm type-check

Frontend production build:

uv run open-codex-ui-build-web

Startup Summary

Development:

uv run open-codex-ui-dev

Production:

export YIER_AUTH_PASSWORD='change-this-password'
uvx open-codex-ui --host 0.0.0.0 --port 9999

Available uv Scripts

Development:

  • uv run open-codex-ui-dev: start frontend and backend together
  • uv run open-codex-ui-dev-web: start Vite only
  • uv run open-codex-ui-dev-backend: start backend only in debug mode

Production:

  • uvx open-codex-ui: run the published wheel in production mode
  • uv run open-codex-ui-build-web: build frontend assets
  • uv run open-codex-ui-prod: start backend in production mode

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open_codex_ui-0.1.4.tar.gz (668.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

open_codex_ui-0.1.4-py3-none-any.whl (660.2 kB view details)

Uploaded Python 3

File details

Details for the file open_codex_ui-0.1.4.tar.gz.

File metadata

  • Download URL: open_codex_ui-0.1.4.tar.gz
  • Upload date:
  • Size: 668.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for open_codex_ui-0.1.4.tar.gz
Algorithm Hash digest
SHA256 6a676a0067fbf0d9d29dcb40650c821afe00fe8fac83c1d1d93d65ac3d4ce792
MD5 7ab6ee4e50a424bc8cc63a4495c0b10a
BLAKE2b-256 2230be3dd256070b5fb683809c600ea60849c16294c2223055bfd739fcca5771

See more details on using hashes here.

Provenance

The following attestation bundles were made for open_codex_ui-0.1.4.tar.gz:

Publisher: publish.yml on Sube-py/open-codex-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file open_codex_ui-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: open_codex_ui-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 660.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for open_codex_ui-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 47689c9a4efc12456ad8d06ec7b1b2cc7b3ea38f947c15b697c2043291694913
MD5 06af50336f6ddb5d39efac9ec1685e93
BLAKE2b-256 0a6e80f2df70605e119e41581217d95a067354b17e654644cca866a508969e80

See more details on using hashes here.

Provenance

The following attestation bundles were made for open_codex_ui-0.1.4-py3-none-any.whl:

Publisher: publish.yml on Sube-py/open-codex-ui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page