codex-webapp 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SECURITY.md ADDED
@@ -0,0 +1,56 @@
1
+ # Security Policy
2
+
3
+ Codex WebApp is a local-first companion UI. Treat Codex remote-control
4
+ as a powerful local execution surface.
5
+
6
+ Remote use requires Tailscale, Cloudflare Access, or an equivalent trusted
7
+ access boundary. Exposing a raw app-server on a public IP can give another
8
+ person practical control over your local development machine.
9
+
10
+ The bundled UI server is static and localhost-first. It binds to `127.0.0.1` by
11
+ default and refuses non-loopback hosts unless the operator passes
12
+ `--allow-non-loopback`. That flag is not an authentication layer; it only records
13
+ that the operator has intentionally moved the server outside loopback and must
14
+ already have a trusted boundary.
15
+
16
+ ## Supported Surface
17
+
18
+ This public package candidate supports:
19
+
20
+ - local Codex CLI readiness checks
21
+ - local `codex remote-control` startup
22
+ - browser/mobile UI scaffolding
23
+ - trusted-network operation behind localhost, Tailscale, Cloudflare Access, or
24
+ an equivalent private access boundary
25
+
26
+ ## Not Supported
27
+
28
+ Do not use this package to:
29
+
30
+ - expose a raw app-server to the public internet
31
+ - bypass Codex approval or sandbox policy
32
+ - store tokens, cookies, session IDs, private keys, or customer data
33
+ - represent the tool as an official OpenAI product
34
+ - turn a completed Codex turn into a deployment or release approval
35
+
36
+ ## Reporting
37
+
38
+ Please report security issues privately to the maintainer before opening a
39
+ public issue. Public reports should avoid logs, screenshots, URLs, or examples
40
+ that include secrets, internal repository names, customer data, or private
41
+ network details.
42
+
43
+ ## Safe Defaults
44
+
45
+ The public module should fail closed when:
46
+
47
+ - Codex CLI is missing
48
+ - Codex CLI is older than `0.130.0`
49
+ - `codex remote-control --help` fails
50
+ - no trusted access boundary is configured for remote use
51
+ - the UI server is asked to bind to a non-loopback host without explicit
52
+ operator override
53
+ - unknown app-server events cannot be safely classified
54
+
55
+ Maintainers and contributors are not responsible for damage caused by exposing the
56
+ server without a VPN, trusted proxy, or equivalent access control.
package/SUPPORT.md ADDED
@@ -0,0 +1,64 @@
1
+ # Support
2
+
3
+ Codex WebApp is a local-first companion UI. Start with the checks below before
4
+ opening an issue.
5
+
6
+ Before asking for help:
7
+
8
+ ```bash
9
+ npx codex-webapp doctor
10
+ npx codex-webapp start --dry-run
11
+ npx codex-webapp smoke --url http://127.0.0.1:8214/
12
+ ```
13
+
14
+ When reporting an issue, include:
15
+
16
+ - OS and shell
17
+ - Node.js version
18
+ - Codex CLI version
19
+ - command output from `doctor`
20
+ - whether the Codex-style browser UI opened locally
21
+
22
+ Do not include:
23
+
24
+ - API keys
25
+ - OAuth tokens
26
+ - cookies
27
+ - session IDs
28
+ - private repository names or contents
29
+ - customer data
30
+ - private network URLs
31
+
32
+ Security issues should be reported privately first. Public issues should use
33
+ redacted logs only.
34
+
35
+ ## Failure Matrix
36
+
37
+ | Symptom | First check | What to tell a non-engineer |
38
+ |---|---|---|
39
+ | Codex is missing | `codex --version` | Codex is not installed on this machine yet. Ask Codex App to explain the update command before continuing. |
40
+ | Codex is too old | `codex --version` | `remote-control` needs Codex `0.130.0` or newer. Update Codex, then rerun `doctor`. |
41
+ | `remote-control` is unavailable | `codex remote-control --help` | Codex is installed, but this build does not expose the remote-control command. Update Codex and retry. |
42
+ | Package is unavailable | `npx codex-webapp doctor` | The package may not be public on npm yet. Check npm package status or test from a local tarball during validation. |
43
+ | Port is busy | `start --dry-run` or `start` output | Change the local port with `--port <port>` and retry. |
44
+ | UI does not open | `smoke --url <printed-url>` | The server may not be running or the wrong URL was opened. Smoke-test the exact printed URL. |
45
+ | Browser/mobile cannot reach it | trusted access boundary | Keep localhost local. For phone or another PC, set up Tailscale, Cloudflare Access, or an equivalent private boundary first. |
46
+ | Smoke fails | `smoke` output | Capture the first failed step and stop. Do not keep retrying with private URLs or secrets in the transcript. |
47
+
48
+ ## Codex App Diagnosis Prompt
49
+
50
+ ```text
51
+ Please diagnose this Codex WebApp setup failure.
52
+
53
+ Do not print tokens, cookies, private repo contents, customer data, or internal URLs.
54
+ Use only redacted command output.
55
+
56
+ Check in this order:
57
+ 1. Codex version.
58
+ 2. Whether `codex remote-control --help` works.
59
+ 3. `npx codex-webapp doctor`.
60
+ 4. `npx codex-webapp start --dry-run`.
61
+ 5. Smoke test against the exact URL printed by start.
62
+
63
+ Tell me the first failed step, likely cause, and the next safe action.
64
+ ```
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { main } from "../src/commands.js";
3
+
4
+ await main(process.argv);
@@ -0,0 +1,50 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1280" height="720" viewBox="0 0 1280 720" role="img" aria-labelledby="title desc">
2
+ <title id="title">Mobile and trusted-access concept</title>
3
+ <desc id="desc">A public-safe concept image showing Codex App, a local machine, trusted access, and a phone browser.</desc>
4
+ <defs>
5
+ <linearGradient id="panel" x1="0" x2="1" y1="0" y2="1">
6
+ <stop offset="0%" stop-color="#f8f7f2"/>
7
+ <stop offset="100%" stop-color="#e8eee7"/>
8
+ </linearGradient>
9
+ <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
10
+ <feDropShadow dx="0" dy="18" stdDeviation="22" flood-color="#000000" flood-opacity="0.24"/>
11
+ </filter>
12
+ </defs>
13
+ <rect width="1280" height="720" fill="#111111"/>
14
+ <text x="72" y="92" font-family="Inter, Arial, sans-serif" font-size="44" font-weight="800" fill="#ffffff">Codex-style browser access, without exposing the raw server</text>
15
+ <text x="72" y="134" font-family="Inter, Arial, sans-serif" font-size="22" fill="#b9b9b9">Codex App stays the starting point. Trusted access is the boundary.</text>
16
+ <g transform="translate(80 208)" filter="url(#shadow)">
17
+ <rect width="300" height="360" rx="26" fill="url(#panel)"/>
18
+ <text x="36" y="58" font-family="Inter, Arial, sans-serif" font-size="26" font-weight="800" fill="#161616">Codex App</text>
19
+ <rect x="36" y="94" width="228" height="178" rx="18" fill="#222222"/>
20
+ <text x="58" y="136" font-family="SFMono-Regular, Consolas, monospace" font-size="16" fill="#eeeeee">Please set up</text>
21
+ <text x="58" y="166" font-family="SFMono-Regular, Consolas, monospace" font-size="16" fill="#eeeeee">codex-webapp</text>
22
+ <text x="58" y="210" font-family="SFMono-Regular, Consolas, monospace" font-size="16" fill="#77d99d">doctor</text>
23
+ <text x="58" y="240" font-family="SFMono-Regular, Consolas, monospace" font-size="16" fill="#77d99d">smoke</text>
24
+ <text x="36" y="318" font-family="Inter, Arial, sans-serif" font-size="18" fill="#4d554f">Paste one prompt. Codex runs the setup path.</text>
25
+ </g>
26
+ <g transform="translate(490 208)" filter="url(#shadow)">
27
+ <rect width="300" height="360" rx="26" fill="url(#panel)"/>
28
+ <text x="36" y="58" font-family="Inter, Arial, sans-serif" font-size="26" font-weight="800" fill="#161616">Local Machine</text>
29
+ <rect x="42" y="106" width="216" height="128" rx="18" fill="#ffffff" stroke="#cfd8cf"/>
30
+ <rect x="74" y="144" width="152" height="16" rx="8" fill="#2f7a5b"/>
31
+ <rect x="74" y="180" width="104" height="16" rx="8" fill="#8b948e"/>
32
+ <text x="56" y="276" font-family="SFMono-Regular, Consolas, monospace" font-size="18" fill="#2a2a2a">127.0.0.1:8214</text>
33
+ <text x="36" y="318" font-family="Inter, Arial, sans-serif" font-size="18" fill="#4d554f">Raw server stays local by default.</text>
34
+ </g>
35
+ <g transform="translate(900 176)" filter="url(#shadow)">
36
+ <rect width="240" height="430" rx="38" fill="#f7f7f4"/>
37
+ <rect x="20" y="20" width="200" height="390" rx="28" fill="#151515"/>
38
+ <rect x="48" y="64" width="144" height="12" rx="6" fill="#444444"/>
39
+ <text x="48" y="158" font-family="Inter, Arial, sans-serif" font-size="26" font-weight="800" fill="#f4f4f4">What should</text>
40
+ <text x="48" y="192" font-family="Inter, Arial, sans-serif" font-size="26" font-weight="800" fill="#f4f4f4">we build?</text>
41
+ <rect x="42" y="260" width="156" height="52" rx="26" fill="#2d2d2d"/>
42
+ <circle cx="172" cy="286" r="18" fill="#a8a8a8"/>
43
+ </g>
44
+ <path d="M398 388 H470" stroke="#f2f2f2" stroke-width="8" stroke-linecap="round"/>
45
+ <path d="M452 368 L476 388 L452 408" fill="none" stroke="#f2f2f2" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
46
+ <path d="M808 388 H880" stroke="#f2f2f2" stroke-width="8" stroke-linecap="round"/>
47
+ <path d="M862 368 L886 388 L862 408" fill="none" stroke="#f2f2f2" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
48
+ <rect x="392" y="594" width="496" height="56" rx="28" fill="#2f7a5b"/>
49
+ <text x="430" y="630" font-family="Inter, Arial, sans-serif" font-size="22" font-weight="800" fill="#ffffff">Tailscale / Cloudflare Access / trusted boundary</text>
50
+ </svg>
@@ -0,0 +1,53 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1280" height="720" viewBox="0 0 1280 720" role="img" aria-labelledby="title desc">
2
+ <title id="title">Codex WebApp overview</title>
3
+ <desc id="desc">A public-safe overview showing Codex App prompt, npm beta package, local browser UI, smoke evidence, and trusted access boundary.</desc>
4
+ <defs>
5
+ <linearGradient id="bg" x1="0" x2="1" y1="0" y2="1">
6
+ <stop offset="0%" stop-color="#111111"/>
7
+ <stop offset="100%" stop-color="#1f2a24"/>
8
+ </linearGradient>
9
+ <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
10
+ <feDropShadow dx="0" dy="18" stdDeviation="20" flood-color="#000000" flood-opacity="0.32"/>
11
+ </filter>
12
+ </defs>
13
+ <rect width="1280" height="720" fill="url(#bg)"/>
14
+ <rect x="48" y="44" width="1184" height="632" rx="28" fill="#f6f4ef"/>
15
+ <text x="96" y="122" font-family="Inter, Arial, sans-serif" font-size="48" font-weight="800" fill="#151515">Codex WebApp</text>
16
+ <text x="96" y="164" font-family="Inter, Arial, sans-serif" font-size="22" fill="#4b514c">Prompt-driven browser companion for Codex App users</text>
17
+ <g transform="translate(96 220)" filter="url(#shadow)">
18
+ <rect width="310" height="312" rx="18" fill="#ffffff" stroke="#d7d1c5"/>
19
+ <text x="28" y="52" font-family="Inter, Arial, sans-serif" font-size="24" font-weight="800" fill="#151515">1. Paste Prompt</text>
20
+ <rect x="28" y="84" width="254" height="150" rx="14" fill="#151515"/>
21
+ <text x="48" y="122" font-family="SFMono-Regular, Consolas, monospace" font-size="17" fill="#eeeeee">Use npm package:</text>
22
+ <text x="48" y="154" font-family="SFMono-Regular, Consolas, monospace" font-size="17" fill="#77d99d">codex-webapp...</text>
23
+ <text x="48" y="188" font-family="SFMono-Regular, Consolas, monospace" font-size="17" fill="#eeeeee">doctor</text>
24
+ <text x="48" y="216" font-family="SFMono-Regular, Consolas, monospace" font-size="17" fill="#eeeeee">start --dry-run</text>
25
+ <text x="28" y="270" font-family="Inter, Arial, sans-serif" font-size="17" fill="#596159">Codex App can run the setup path without making the user type every command.</text>
26
+ </g>
27
+ <g transform="translate(486 220)" filter="url(#shadow)">
28
+ <rect width="310" height="312" rx="18" fill="#ffffff" stroke="#d7d1c5"/>
29
+ <text x="28" y="52" font-family="Inter, Arial, sans-serif" font-size="24" font-weight="800" fill="#151515">2. Start Locally</text>
30
+ <rect x="28" y="84" width="254" height="150" rx="14" fill="#eef2ec"/>
31
+ <circle cx="70" cy="132" r="14" fill="#2f7a5b"/>
32
+ <rect x="96" y="118" width="142" height="12" rx="6" fill="#2f7a5b"/>
33
+ <rect x="70" y="170" width="168" height="12" rx="6" fill="#8a948d"/>
34
+ <rect x="70" y="202" width="116" height="12" rx="6" fill="#8a948d"/>
35
+ <text x="28" y="270" font-family="Inter, Arial, sans-serif" font-size="17" fill="#596159">The raw browser server stays on localhost by default.</text>
36
+ </g>
37
+ <g transform="translate(876 220)" filter="url(#shadow)">
38
+ <rect width="310" height="312" rx="18" fill="#ffffff" stroke="#d7d1c5"/>
39
+ <text x="28" y="52" font-family="Inter, Arial, sans-serif" font-size="24" font-weight="800" fill="#151515">3. Verify UI</text>
40
+ <rect x="28" y="84" width="254" height="150" rx="14" fill="#151515"/>
41
+ <rect x="50" y="112" width="210" height="18" rx="9" fill="#3a3a3a"/>
42
+ <text x="64" y="166" font-family="Inter, Arial, sans-serif" font-size="24" font-weight="700" fill="#eeeeee">What should</text>
43
+ <text x="64" y="200" font-family="Inter, Arial, sans-serif" font-size="24" font-weight="700" fill="#eeeeee">we build?</text>
44
+ <text x="28" y="270" font-family="Inter, Arial, sans-serif" font-size="17" fill="#596159">Smoke tests prove a Codex-style surface is reachable before sharing evidence.</text>
45
+ </g>
46
+ <path d="M423 376 H466" stroke="#2f7a5b" stroke-width="8" stroke-linecap="round"/>
47
+ <path d="M453 358 L474 376 L453 394" fill="none" stroke="#2f7a5b" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
48
+ <path d="M813 376 H856" stroke="#2f7a5b" stroke-width="8" stroke-linecap="round"/>
49
+ <path d="M843 358 L864 376 L843 394" fill="none" stroke="#2f7a5b" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
50
+ <rect x="96" y="586" width="1088" height="48" rx="24" fill="#2f7a5b"/>
51
+ <text x="126" y="617" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700" fill="#ffffff">Trusted access boundary:</text>
52
+ <text x="374" y="617" font-family="Inter, Arial, sans-serif" font-size="20" fill="#ffffff">localhost first, then Tailscale or Cloudflare Access. Never expose the raw server directly.</text>
53
+ </svg>
@@ -0,0 +1,40 @@
1
+ # Codex App Web Companion Install UX Guide
2
+
3
+ Audience: a Codex App user who may not operate a terminal directly.
4
+
5
+ Codex WebApp is an unofficial companion UI. It is not
6
+ affiliated with or endorsed by OpenAI.
7
+
8
+ This is a prompt-driven npm package path, not a native Codex App marketplace
9
+ install. Codex App runs the setup commands for the user.
10
+
11
+ The intended experience is simple: paste one instruction into Codex App, let
12
+ Codex check/install the companion, start the local Codex-style Web surface, and
13
+ run a smoke test. For access from another PC or a phone, keep the machine behind
14
+ Tailscale, Cloudflare Access, or an equivalent trusted boundary.
15
+
16
+ ## Paste Prompt
17
+
18
+ Paste this prompt into Codex App:
19
+
20
+ ```text
21
+ Please verify Codex WebApp on this machine.
22
+
23
+ Constraints:
24
+ - Treat it as an unofficial companion UI, not an OpenAI-endorsed tool.
25
+ - Do not paste or print tokens, cookies, private repository content, customer data, or internal URLs.
26
+ - Keep any raw Codex browser server or app-server on localhost or behind Tailscale, Cloudflare Access, or an equivalent trusted boundary.
27
+
28
+ Steps:
29
+ 1. Check whether Codex is available and whether `codex remote-control --help` works.
30
+ 2. If Codex is older than 0.130.0, explain the update that is needed.
31
+ 3. Run `npx codex-webapp doctor`.
32
+ 4. Run `npx codex-webapp start --dry-run`.
33
+ 5. If a UI server is available, run `npx codex-webapp smoke --url http://127.0.0.1:8214/`.
34
+ 6. Use `--browser --screenshot artifacts/codex-webapp.png` only when browser evidence is needed.
35
+ 7. Summarize pass/fail status and start a small diagnosis if a step fails.
36
+ ```
37
+
38
+ The proof we want is not that a developer can type commands. The proof is that
39
+ a Codex App user can paste one instruction, receive a clear readiness result,
40
+ and get browser-smoke evidence or a useful failure diagnosis.
@@ -0,0 +1,95 @@
1
+ > **Unofficial community project.** This project is not affiliated with,
2
+ > endorsed by, sponsored by, or associated with OpenAI or the official Codex App.
3
+
4
+ # Codex WebApp
5
+
6
+ [English](../../README.md) / [日本語](../../README.ja.md) / 한국어 / [简体中文](./README.zh-CN.md)
7
+
8
+ Codex App 사용자를 위한 브라우저 companion입니다.
9
+
10
+ Codex App에 붙여 넣을 수 있는 프롬프트, `doctor`, 안전한 로컬 실행, 그리고 실제 Codex 스타일 브라우저 화면이 열리는지 확인하는 smoke test를 제공합니다.
11
+
12
+ ![Codex WebApp overview](../assets/codex-webapp-overview.svg)
13
+
14
+ > OpenAI와 제휴하거나 OpenAI가 보증한 공식 제품이 아닙니다.
15
+ >
16
+ > 원본 UI 서버는 기본적으로 `localhost`에만 두세요. 휴대폰이나 다른 PC에서 접근하려면 Tailscale, Cloudflare Access, 또는 동등한 신뢰 경계를 먼저 설정하세요. 공개 IP에 직접 노출하지 마세요.
17
+
18
+ Note: The software interface is currently available mainly in English. This
19
+ Korean documentation has been translated for setup convenience.
20
+
21
+ ## 빠른 시작: Codex App
22
+
23
+ 아래 프롬프트를 Codex App에 붙여 넣으세요.
24
+
25
+ ```text
26
+ Please set up Codex WebApp on this machine.
27
+
28
+ Use this npm package:
29
+ codex-webapp@beta
30
+
31
+ Please:
32
+ 1. Check my Codex version.
33
+ 2. Run the package doctor.
34
+ 3. Run start in dry-run mode first.
35
+ 4. Start the local browser UI only on localhost.
36
+ 5. Smoke-test the printed local URL.
37
+
38
+ Keep everything on localhost unless I already have Tailscale, Cloudflare Access,
39
+ or another trusted access boundary set up.
40
+
41
+ Do not print tokens, cookies, private repo contents, customer data, or internal URLs.
42
+ ```
43
+
44
+ Codex는 내부적으로 다음과 같은 명령을 실행합니다.
45
+
46
+ ```bash
47
+ npx -y codex-webapp@beta doctor
48
+ npx -y codex-webapp@beta start --dry-run
49
+ npx -y codex-webapp@beta start
50
+ ```
51
+
52
+ `npx`는 npm에 공개된 패키지를 임시로 실행하는 도구입니다. 사용자가 직접 프로젝트를 만들거나 의존성을 관리할 필요를 줄여 줍니다.
53
+
54
+ ## 터미널로 실행
55
+
56
+ ```bash
57
+ codex --version
58
+ codex remote-control --help
59
+ npx -y codex-webapp@beta doctor
60
+ npx -y codex-webapp@beta start --dry-run
61
+ npx -y codex-webapp@beta start
62
+ ```
63
+
64
+ 기본 로컬 URL:
65
+
66
+ ```text
67
+ http://127.0.0.1:8214/
68
+ ```
69
+
70
+ ## Smoke Test
71
+
72
+ ```bash
73
+ npx -y codex-webapp@beta smoke \
74
+ --url http://127.0.0.1:8214/
75
+ ```
76
+
77
+ 공개 이슈나 스크린샷에는 토큰, 쿠키, private repository, 고객 데이터, 내부 URL을 넣지 마세요.
78
+
79
+ ## 현재 beta의 범위
80
+
81
+ 이 패키지는 Codex App native marketplace plugin, browser extension, one-click installer, managed hosting service가 아닙니다. Codex App에 프롬프트를 붙여 넣고, Codex가 `npx`로 npm 패키지를 실행하는 방식입니다.
82
+
83
+ 현재 beta는 experimental이며 compatibility-first입니다. 현재 `0xcaff/codex-web` commit `585613f5a3a355af5aefc388ca4e31b07a472cda`를 참조하는 Codex 스타일 browser runtime을 실행하고, 그 주변에 설치, 안전, 문서, 검증 evidence 계층을 더합니다.
84
+
85
+ ## Security And Privacy
86
+
87
+ 이 CLI wrapper는 사용자의 prompt, repository, token, cookie, customer data를 이 프로젝트가 운영하는 third-party server로 전송하지 않습니다. 이 패키지는 browser extension을 설치하지 않으며 browser token을 `localStorage`, `chrome.storage`, extension profile에 저장하지 않습니다.
88
+
89
+ 공개 issue나 screenshot에는 secret, private repository, customer data, internal URL을 포함하지 마세요.
90
+
91
+ ## Acknowledgements
92
+
93
+ 현재 beta는 Codex 스타일 브라우저 화면을 제공하는 public project `0xcaff/codex-web`의 접근 방식을 사용하고 참조합니다. 이 프로젝트는 그 주변에 배포, doctor, 안전 경계, 문서, 검증 evidence 계층을 추가합니다.
94
+
95
+ License: [Apache-2.0](../../LICENSE.md)
@@ -0,0 +1,95 @@
1
+ > **Unofficial community project.** This project is not affiliated with,
2
+ > endorsed by, sponsored by, or associated with OpenAI or the official Codex App.
3
+
4
+ # Codex WebApp
5
+
6
+ [English](../../README.md) / [日本語](../../README.ja.md) / [한국어](./README.ko.md) / 简体中文
7
+
8
+ 这是面向 Codex App 用户的浏览器 companion。
9
+
10
+ 它提供可直接粘贴到 Codex App 的提示词、友好的 `doctor` 检查、安全的本地启动器,以及用于确认真实 Codex 风格浏览器界面是否可访问的 smoke test。
11
+
12
+ ![Codex WebApp overview](../assets/codex-webapp-overview.svg)
13
+
14
+ > 本项目不隶属于 OpenAI,也未获得 OpenAI 的官方认可或背书。
15
+ >
16
+ > 原始 UI 服务器默认应只监听 `localhost`。如果需要从手机或另一台电脑访问,请先使用 Tailscale、Cloudflare Access,或同等的可信访问边界。不要把原始服务器直接暴露到公网 IP。
17
+
18
+ Note: The software interface is currently available mainly in English. This
19
+ Simplified Chinese documentation has been translated for setup convenience.
20
+
21
+ ## Codex App 快速开始
22
+
23
+ 把下面的提示词粘贴到 Codex App:
24
+
25
+ ```text
26
+ Please set up Codex WebApp on this machine.
27
+
28
+ Use this npm package:
29
+ codex-webapp@beta
30
+
31
+ Please:
32
+ 1. Check my Codex version.
33
+ 2. Run the package doctor.
34
+ 3. Run start in dry-run mode first.
35
+ 4. Start the local browser UI only on localhost.
36
+ 5. Smoke-test the printed local URL.
37
+
38
+ Keep everything on localhost unless I already have Tailscale, Cloudflare Access,
39
+ or another trusted access boundary set up.
40
+
41
+ Do not print tokens, cookies, private repo contents, customer data, or internal URLs.
42
+ ```
43
+
44
+ Codex 通常会为你执行类似命令:
45
+
46
+ ```bash
47
+ npx -y codex-webapp@beta doctor
48
+ npx -y codex-webapp@beta start --dry-run
49
+ npx -y codex-webapp@beta start
50
+ ```
51
+
52
+ `npx` 的简单解释:它会临时运行一个已经发布到 npm 的包,减少手动安装和管理项目依赖的麻烦。
53
+
54
+ ## 终端快速开始
55
+
56
+ ```bash
57
+ codex --version
58
+ codex remote-control --help
59
+ npx -y codex-webapp@beta doctor
60
+ npx -y codex-webapp@beta start --dry-run
61
+ npx -y codex-webapp@beta start
62
+ ```
63
+
64
+ 默认本地地址:
65
+
66
+ ```text
67
+ http://127.0.0.1:8214/
68
+ ```
69
+
70
+ ## Smoke Test
71
+
72
+ ```bash
73
+ npx -y codex-webapp@beta smoke \
74
+ --url http://127.0.0.1:8214/
75
+ ```
76
+
77
+ 公开 issue 或截图时,请不要包含 token、cookie、私有仓库、客户数据或内部 URL。
78
+
79
+ ## 当前 beta 的范围
80
+
81
+ 这不是 Codex App native marketplace plugin、browser extension、one-click installer 或 managed hosting service。它的使用方式是:把提示词粘贴到 Codex App,让 Codex 通过 `npx` 执行 npm 包。
82
+
83
+ 当前 beta 是 experimental,并采用 compatibility-first 方针。它目前运行一个引用 `0xcaff/codex-web` commit `585613f5a3a355af5aefc388ca4e31b07a472cda` 的 Codex 风格 browser runtime,并在其周围增加安装、安全、文档和验证证据层。
84
+
85
+ ## Security And Privacy
86
+
87
+ 此 CLI wrapper 不会把你的 prompt、repository、token、cookie 或 customer data 发送到由本项目运营的 third-party server。本包不会安装 browser extension,也不会把 browser token 写入 `localStorage`、`chrome.storage` 或 extension profile。
88
+
89
+ 公开 issue 或截图时,请不要包含 secret、私有仓库、客户数据或内部 URL。
90
+
91
+ ## Acknowledgements
92
+
93
+ 当前 beta 使用并感谢 public project `0xcaff/codex-web` 提供的 Codex 风格浏览器界面思路。本项目在此基础上增加分发、doctor、安全边界、文档和验证证据层。
94
+
95
+ License: [Apache-2.0](../../LICENSE.md)
@@ -0,0 +1,75 @@
1
+ # Codex WebApp 日本語クイックスタート
2
+
3
+ ブラウザでCodexを開きたいのに画面が出なくて困っている人向けの手順です。このパッケージは、Codexの準備確認、Codex-style Web UIの起動、表示疎通、そして安全境界の確認を親切にするための非公式WebApp surfaceです。
4
+
5
+ > OpenAI公式プロダクトではありません。OpenAIによる承認・提携・endorsementはありません。
6
+
7
+ ## 1. Codexを最新版へ更新
8
+
9
+ `remote-control` は Codex CLI `0.130.0` 以降が必要です。
10
+
11
+ ```bash
12
+ npm install -g @openai/codex@latest
13
+ ```
14
+
15
+ ## 2. remote-control が入っているか確認
16
+
17
+ ```bash
18
+ codex --version
19
+ codex remote-control --help
20
+ ```
21
+
22
+ `codex-cli 0.130.0` 以上で、helpが表示されればOKです。
23
+
24
+ ## 3. friendly doctor を実行
25
+
26
+ ```bash
27
+ npx codex-webapp@beta doctor
28
+ ```
29
+
30
+ Codexが古い、または `remote-control` が見つからない場合は、次に打つべきコマンドを表示します。
31
+
32
+ ## 4. Codex-style Web UI を起動
33
+
34
+ ```bash
35
+ npx codex-webapp@beta start
36
+ ```
37
+
38
+ このコマンドは起動前に確認プロンプトを出します。自動化された信頼済み環境だけで `--yes` を使ってください。
39
+
40
+ ```bash
41
+ npx codex-webapp@beta start --yes
42
+ ```
43
+
44
+ ## 5. ブラウザで表示できるか確認
45
+
46
+ UIサーバーが起動している状態で、実ブラウザ疎通を確認します。
47
+
48
+ ```bash
49
+ npx codex-webapp@beta smoke \
50
+ --url http://127.0.0.1:8214/
51
+ ```
52
+
53
+ 通常のsmokeはPlaywrightなしで、UI URLを取得して `What should we build` が含まれているか確認します。
54
+
55
+ スクリーンショットも残したい場合は、Playwrightを使うdeep smokeを実行します。
56
+
57
+ ```bash
58
+ npx codex-webapp@beta smoke \
59
+ --browser \
60
+ --url http://127.0.0.1:8214/ \
61
+ --screenshot artifacts/codex-webapp.png
62
+ ```
63
+
64
+ deep smokeでPlaywrightが無い場合は入れてください。
65
+
66
+ ```bash
67
+ npm install -D playwright
68
+ npx playwright install chromium
69
+ ```
70
+
71
+ ## セキュリティ境界
72
+
73
+ raw Codex browser serverやapp-serverをpublic IPへ直接公開しないでください。モバイルから使う場合は、先にTailscale、Cloudflare Access、または同等の信頼済みアクセス境界を用意してください。
74
+
75
+ issueやチャットに、token、cookie、private repoの中身、顧客データ、内部URLを貼らないでください。
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "codex-webapp",
3
+ "version": "0.1.0-beta.1",
4
+ "description": "Unofficial. Respectful web app surface, doctor, and safety wrapper for Codex App users.",
5
+ "type": "module",
6
+ "license": "Apache-2.0",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/penso-os/codex-webapp.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/penso-os/codex-webapp/issues"
13
+ },
14
+ "homepage": "https://github.com/penso-os/codex-webapp#readme",
15
+ "keywords": [
16
+ "codex",
17
+ "codex-app",
18
+ "remote-control",
19
+ "webapp",
20
+ "browser-ui"
21
+ ],
22
+ "bin": {
23
+ "codex-webapp": "bin/codex-webapp.mjs"
24
+ },
25
+ "scripts": {
26
+ "doctor": "node ./bin/codex-webapp.mjs doctor",
27
+ "smoke": "node ./bin/codex-webapp.mjs smoke",
28
+ "test": "node --test",
29
+ "start:dry-run": "node ./bin/codex-webapp.mjs start --dry-run"
30
+ },
31
+ "engines": {
32
+ "node": ">=20"
33
+ },
34
+ "files": [
35
+ "bin",
36
+ "docs",
37
+ "src",
38
+ "ACKNOWLEDGEMENTS.md",
39
+ "README.md",
40
+ "README.ja.md",
41
+ "SECURITY.md",
42
+ "SUPPORT.md",
43
+ "CONTRIBUTING.md",
44
+ "LICENSE.md"
45
+ ]
46
+ }