codex-webapp 0.1.7 → 0.1.8
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/ACKNOWLEDGEMENTS.md +11 -37
- package/README.ja.md +56 -101
- package/README.md +64 -103
- package/docs/architecture.md +85 -0
- package/docs/clean-release-verification.md +95 -0
- package/docs/codex-app-install.md +5 -0
- package/docs/distribution-boundary.md +37 -0
- package/docs/i18n/README.ko.md +11 -65
- package/docs/i18n/README.zh-CN.md +11 -65
- package/package.json +9 -2
- package/scripts/check-public-package-boundary.mjs +248 -0
- package/scripts/verify-clean-release.mjs +492 -0
- package/src/appServerBridge.js +150 -0
- package/src/appServerMessageCodec.js +12 -0
- package/src/auditEvidenceHook.js +18 -0
- package/src/bridgeEventEnvelope.js +29 -0
- package/src/browserPreload.js +176 -0
- package/src/browserSmoke.js +2 -2
- package/src/codexAppRenderer.js +12 -0
- package/src/codexWeb.js +7 -14
- package/src/commands.js +40 -33
- package/src/electronBridge.js +324 -0
- package/src/localServer.js +184 -0
- package/src/projectionManifest.js +8 -0
- package/src/rendererAssetSource.js +278 -0
- package/docs/assets/codex-webapp-readme-ja.png +0 -0
- package/docs/assets/codex-webapp-readme.png +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
Codex WebApp is a small, local adapter for people who already have the macOS
|
|
4
|
+
Codex App installed on their Mac. It does not replace Codex App and it does not ship a
|
|
5
|
+
separate Codex runtime. The package prepares the renderer that is already on
|
|
6
|
+
the user's machine, serves it on a local web address, and bridges browser
|
|
7
|
+
requests to the local Codex command-line tools.
|
|
8
|
+
|
|
9
|
+
## What The Package Includes
|
|
10
|
+
|
|
11
|
+
The npm package includes the adapter code:
|
|
12
|
+
|
|
13
|
+
- a command-line wrapper for `doctor`, `start`, and `smoke`
|
|
14
|
+
- local server code that serves static renderer files from the user's cache
|
|
15
|
+
- a small browser preload and bridge layer for local app-server communication
|
|
16
|
+
- tests, docs, and public support files
|
|
17
|
+
|
|
18
|
+
The package does not bundle or publish user or vendor runtime artifacts:
|
|
19
|
+
|
|
20
|
+
- no Codex/OpenAI binaries
|
|
21
|
+
- no `app.asar`
|
|
22
|
+
- no pre-extracted `webview/` directory
|
|
23
|
+
- no tokens, cookies, session IDs, or private keys
|
|
24
|
+
- no signed URLs
|
|
25
|
+
- no private session database
|
|
26
|
+
- no repository contents, prompts, customer data, or other user data
|
|
27
|
+
|
|
28
|
+
In short: the npm package is the adapter. The renderer source remains the Codex
|
|
29
|
+
App that the user installed locally.
|
|
30
|
+
|
|
31
|
+
## Runtime Flow
|
|
32
|
+
|
|
33
|
+
When a user runs `codex-webapp start`, the adapter does this on the local
|
|
34
|
+
machine:
|
|
35
|
+
|
|
36
|
+
1. Locates Codex App.
|
|
37
|
+
By default it expects `/Applications/Codex.app`. Users can override this
|
|
38
|
+
with `CODEX_APP_PATH` or point directly at a local archive with
|
|
39
|
+
`CODEX_WEBAPP_CODEX_ASAR`.
|
|
40
|
+
2. Reads the local Codex App renderer archive.
|
|
41
|
+
The expected archive is `Contents/Resources/app.asar` inside the app bundle.
|
|
42
|
+
3. Extracts only the `webview/` tree.
|
|
43
|
+
The files are copied into `~/.cache/codex-webapp/<fingerprint>/webview/`.
|
|
44
|
+
Other archive contents are not served.
|
|
45
|
+
4. Serves the prepared renderer.
|
|
46
|
+
The local HTTP server defaults to `http://127.0.0.1:8214/` and serves the
|
|
47
|
+
cached static files with normal cache headers.
|
|
48
|
+
5. Bridges browser calls to the local Codex app server.
|
|
49
|
+
The adapter starts `codex app-server --listen stdio://` when browser IPC
|
|
50
|
+
needs it, speaks JSON over stdio, and keeps that process local to the host.
|
|
51
|
+
|
|
52
|
+
The extraction cache is local machine state. It is not included in the npm
|
|
53
|
+
package and is not uploaded by this project. Users can remove it by deleting
|
|
54
|
+
`~/.cache/codex-webapp/`; the adapter will prepare it again on the next start.
|
|
55
|
+
|
|
56
|
+
## Adapter Responsibilities
|
|
57
|
+
|
|
58
|
+
Codex WebApp owns these public, package-level responsibilities:
|
|
59
|
+
|
|
60
|
+
| Area | Responsibility |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| Codex App discovery | Find the user's local Codex App or accept explicit local paths through environment variables. |
|
|
63
|
+
| Local extraction | Read the local `app.asar`, extract only `webview/`, transform the local `index.html` enough to load the browser bridge, and cache the result under the user's home directory. |
|
|
64
|
+
| Static UI serving | Serve the prepared renderer on a localhost-first HTTP server and block unsafe path traversal requests. |
|
|
65
|
+
| App-server bridge | Start and communicate with the local `codex app-server` process over stdio for browser-side app calls. |
|
|
66
|
+
| `doctor` | Check that Codex CLI is installed, new enough, and exposes the expected local commands. |
|
|
67
|
+
| `start` | Confirm the binding, prepare the renderer, and start the local server. |
|
|
68
|
+
| `smoke` | Verify that the local URL responds, and optionally capture browser evidence. |
|
|
69
|
+
|
|
70
|
+
## Local-First Boundary
|
|
71
|
+
|
|
72
|
+
The default binding is `127.0.0.1`. A non-loopback host requires an explicit
|
|
73
|
+
`--allow-non-loopback` flag because anyone who can reach the UI may be able to
|
|
74
|
+
operate Codex on that machine.
|
|
75
|
+
|
|
76
|
+
For phone or remote access, keep the raw UI behind a trusted access boundary
|
|
77
|
+
such as Tailscale, Cloudflare Access, WireGuard, or SSH tunneling. Codex WebApp
|
|
78
|
+
does not provide hosted access, identity, or account management.
|
|
79
|
+
|
|
80
|
+
## Public Documentation Boundary
|
|
81
|
+
|
|
82
|
+
This repository should describe the adapter in practical terms: what it starts,
|
|
83
|
+
what it reads locally, what it caches locally, and how users can verify it. Keep
|
|
84
|
+
the wording friendly and concrete. Avoid implying that the package contains
|
|
85
|
+
Codex App, OpenAI binaries, private session material, or customer data.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Clean Release Verification
|
|
2
|
+
|
|
3
|
+
Status: release operator checklist for public Codex WebApp package readiness.
|
|
4
|
+
|
|
5
|
+
This gate gives release operators a repeatable public-repo check before publishing or handing off a release candidate. It is bounded evidence, not a guarantee of release safety.
|
|
6
|
+
|
|
7
|
+
## Command
|
|
8
|
+
|
|
9
|
+
From a clean checkout of this public repo:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm ci
|
|
13
|
+
npm run verify:clean-release
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The command runs:
|
|
17
|
+
|
|
18
|
+
- `npm test`
|
|
19
|
+
- `npm run check:public-boundary`
|
|
20
|
+
- `npm pack --dry-run`
|
|
21
|
+
- `npm run start:dry-run` when the package exposes that script
|
|
22
|
+
|
|
23
|
+
It also inspects package metadata, the dry-run pack file list, and source-tree paths for private engine package names, bundled Codex App artifacts, pre-extracted renderer payloads, credential-looking paths, session database-looking paths, customer-data-looking paths, and private dependency specs.
|
|
24
|
+
|
|
25
|
+
The path scan intentionally allows public docs to name excluded artifacts so the boundary remains explainable. Do not add private implementation notes, patent-sensitive details, secrets, binary fixtures, `app.asar`, extracted renderer files, screenshots, private repo content, or private package dependencies to this repository.
|
|
26
|
+
|
|
27
|
+
## Optional Private Engine Check
|
|
28
|
+
|
|
29
|
+
If the private engine repository is available locally, include it without making this public package depend on it:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm run verify:clean-release -- --private-engine-dir /private/tmp/penso-render-envelope
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The same path can be provided with:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
PENSO_RENDER_ENVELOPE_DIR=/private/tmp/penso-render-envelope npm run verify:clean-release
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
When the private repo path is absent, the gate reports a `SKIP` for private engine checks and still verifies the public package. That skip is expected for public contributors and clean npm install environments.
|
|
42
|
+
|
|
43
|
+
The optional private check runs only the private repo's `npm test` and `npm pack --dry-run`. It does not copy private files into this repo or add a package dependency.
|
|
44
|
+
|
|
45
|
+
## Empty Directory Package Check
|
|
46
|
+
|
|
47
|
+
For a clean install-style proof, create a temporary directory outside this repo and install from the dry-run tarball or current public npm package:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
tmpdir="$(mktemp -d)"
|
|
51
|
+
npm pack --pack-destination "$tmpdir"
|
|
52
|
+
cd "$tmpdir"
|
|
53
|
+
npm init -y
|
|
54
|
+
npm install ./codex-webapp-*.tgz
|
|
55
|
+
npx codex-webapp start --dry-run
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
For the already-published package, use:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
tmpdir="$(mktemp -d)"
|
|
62
|
+
cd "$tmpdir"
|
|
63
|
+
npm init -y
|
|
64
|
+
npx -y codex-webapp@latest doctor
|
|
65
|
+
npx -y codex-webapp@latest start --dry-run
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Keep outputs redacted. Do not attach credentials, local app archives, extracted renderer files, private repo listings, or user data.
|
|
69
|
+
|
|
70
|
+
## Local Browser Smoke Evidence
|
|
71
|
+
|
|
72
|
+
On a Mac with Codex App installed, release evidence may include a local browser smoke run:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npx -y codex-webapp start
|
|
76
|
+
npx -y codex-webapp smoke --browser --url http://127.0.0.1:8214/
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Screenshots are optional and should be attached only after review for tokens, cookies, prompts, private repository contents, customer data, internal URLs, or other sensitive material.
|
|
80
|
+
|
|
81
|
+
## Evidence To Attach
|
|
82
|
+
|
|
83
|
+
Attach concise, redacted evidence:
|
|
84
|
+
|
|
85
|
+
- commit hash and branch
|
|
86
|
+
- `npm ci`
|
|
87
|
+
- `npm test`
|
|
88
|
+
- `npm run check:public-boundary`
|
|
89
|
+
- `npm run verify:clean-release`
|
|
90
|
+
- optional private engine check result or the explicit `SKIP`
|
|
91
|
+
- `npm pack --dry-run`
|
|
92
|
+
- empty-directory install or public `npx` dry-run proof when performed
|
|
93
|
+
- local Codex.app browser smoke result when performed
|
|
94
|
+
|
|
95
|
+
The evidence should show whether each check passed, failed, or was skipped. Avoid claiming complete detection or absolute protection.
|
|
@@ -8,6 +8,11 @@ affiliated with or endorsed by OpenAI.
|
|
|
8
8
|
This is a prompt-driven npm package path, not a native Codex App marketplace
|
|
9
9
|
install. Codex App runs the setup commands for the user.
|
|
10
10
|
|
|
11
|
+
The package is only the local adapter. It does not include Codex/OpenAI
|
|
12
|
+
binaries, `app.asar`, a pre-extracted `webview/`, tokens, cookies, signed URLs,
|
|
13
|
+
private session databases, private repository contents, or customer data. At
|
|
14
|
+
runtime it uses the Codex App renderer already installed on the user's Mac.
|
|
15
|
+
|
|
11
16
|
The intended experience is simple: paste one instruction into Codex App, let
|
|
12
17
|
Codex check/install the companion, start the local Codex-style Web surface, and
|
|
13
18
|
run a smoke test. For access from another PC or a phone, keep the machine behind
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Codex WebApp Distribution Boundary Decision
|
|
2
|
+
|
|
3
|
+
Status: accepted for PAN-1596.
|
|
4
|
+
|
|
5
|
+
## Decision
|
|
6
|
+
|
|
7
|
+
Codex WebApp remains a public-install-independent npm package. `npx codex-webapp` must work from the public npm registry without GitHub credentials, private package registry credentials, or access to a private engine repository.
|
|
8
|
+
|
|
9
|
+
The package will not depend on `penso-render-envelope` or any other private engine package at runtime. The public package owns only the local Codex App renderer bridge, public docs, and public-safe checks needed to start and smoke-test the installed Codex App renderer.
|
|
10
|
+
|
|
11
|
+
Future integration with private rendering work requires a new approval step and one of these public-safe paths:
|
|
12
|
+
|
|
13
|
+
- a generated subset that contains only reviewed public-safe code and metadata
|
|
14
|
+
- a separately licensed package that can be installed from a public or approved registry without private repository credentials
|
|
15
|
+
|
|
16
|
+
An adapter or interface boundary is preferred over transforming private implementation into public code. A generated subset is allowed only after review because comments, metadata, control flow, or test fixtures can still reveal private engine mechanics even when direct secrets are removed.
|
|
17
|
+
|
|
18
|
+
## Rejected Options
|
|
19
|
+
|
|
20
|
+
- Direct private GitHub dependency in `package.json` or `package-lock.json`: rejected because public `npx` installs would require private credentials and would fail for normal npm users.
|
|
21
|
+
- Runtime fetch from a private repository or private package registry: rejected because it turns first run into an authentication-dependent install path and can expose private infrastructure assumptions.
|
|
22
|
+
- Vendoring private engine internals into this public package: rejected because it risks publishing private implementation detail and changes the licensing and IP surface without approval.
|
|
23
|
+
- Embedding patent claim text or private engine design notes in public docs: rejected because the package only needs the distribution boundary, not protected claim language or private internals.
|
|
24
|
+
|
|
25
|
+
## License And IP Notes
|
|
26
|
+
|
|
27
|
+
This repository is public and distributed under its existing Apache-2.0 license. That license should apply only to the public code and docs intentionally shipped here. Private engine code, generated artifacts, or separately licensed packages need an explicit approval and compatibility review before being added to this package or its runtime path.
|
|
28
|
+
|
|
29
|
+
This note is an engineering distribution decision, not legal advice. It avoids making ownership, patent scope, or licensing conclusions beyond the public package boundary.
|
|
30
|
+
|
|
31
|
+
## Guardrail
|
|
32
|
+
|
|
33
|
+
`npm test` includes a public package boundary guard. The guard fails if `package.json`, `package-lock.json`, or the `npm pack --dry-run --json` file list shows private package names, GitHub dependency specs, private registry URLs, local `file:` or `link:` dependency specs, workspace dependency specs, install lifecycle scripts, non-public npm `publishConfig.registry`, or private-boundary pack paths such as `.npmrc`, `.env`, secrets directories, or a bundled private engine directory.
|
|
34
|
+
|
|
35
|
+
The guard intentionally checks dependency and package contents paths rather than every word in docs. Public documentation may name the boundary and the private package to explain what is not included, but package code should not dynamically import or fetch it, and docs must not expose private engine internals or patent claim text.
|
|
36
|
+
|
|
37
|
+
Counterproof review for this decision specifically called out dependency confusion, lockfile `resolved` URL leakage, `optionalDependencies`, install lifecycle scripts, and IP bleed from generated subsets. The accepted follow-up was to keep all dependency collections under the guard, add install lifecycle and private registry checks, and document adapter-first future integration.
|
package/docs/i18n/README.ko.md
CHANGED
|
@@ -1,95 +1,41 @@
|
|
|
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
1
|
# Codex WebApp
|
|
5
2
|
|
|
6
3
|
[English](../../README.md) / [日本語](../../README.ja.md) / 한국어 / [简体中文](./README.zh-CN.md)
|
|
7
4
|
|
|
8
|
-
Codex App 사용자를 위한
|
|
9
|
-
|
|
10
|
-
Codex App에 붙여 넣을 수 있는 프롬프트, `doctor`, 안전한 로컬 실행, 그리고 실제 Codex 스타일 브라우저 화면이 열리는지 확인하는 smoke test를 제공합니다.
|
|
5
|
+
Codex WebApp은 Codex App 사용자를 위한 비공식 local-first renderer bridge입니다. 설치된 Codex App의 `webview/` renderer를 로컬 캐시에 준비하고, `127.0.0.1`에서 제공하며, smoke test로 실제 접근 가능 여부를 확인합니다.
|
|
11
6
|
|
|
12
7
|

|
|
13
8
|
|
|
14
|
-
|
|
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
|
|
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 doctor
|
|
48
|
-
npx -y codex-webapp start --dry-run
|
|
49
|
-
npx -y codex-webapp start
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
`npx`는 npm에 공개된 패키지를 임시로 실행하는 도구입니다. 사용자가 직접 프로젝트를 만들거나 의존성을 관리할 필요를 줄여 줍니다.
|
|
53
|
-
|
|
54
|
-
## 터미널로 실행
|
|
9
|
+
## Quick Start
|
|
55
10
|
|
|
56
11
|
```bash
|
|
57
|
-
codex --version
|
|
58
|
-
codex remote-control --help
|
|
59
12
|
npx -y codex-webapp doctor
|
|
60
13
|
npx -y codex-webapp start --dry-run
|
|
61
14
|
npx -y codex-webapp start
|
|
62
15
|
```
|
|
63
16
|
|
|
64
|
-
|
|
17
|
+
Open:
|
|
65
18
|
|
|
66
19
|
```text
|
|
67
20
|
http://127.0.0.1:8214/
|
|
68
21
|
```
|
|
69
22
|
|
|
70
|
-
|
|
23
|
+
Verify:
|
|
71
24
|
|
|
72
25
|
```bash
|
|
73
|
-
npx -y codex-webapp smoke
|
|
74
|
-
--url http://127.0.0.1:8214/
|
|
26
|
+
npx -y codex-webapp smoke --url http://127.0.0.1:8214/
|
|
75
27
|
```
|
|
76
28
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
## 현재 범위
|
|
80
|
-
|
|
81
|
-
이 패키지는 Codex App native marketplace plugin, browser extension, one-click installer, managed hosting service가 아닙니다. Codex App에 프롬프트를 붙여 넣고, Codex가 `npx`로 npm 패키지를 실행하는 방식입니다.
|
|
82
|
-
|
|
83
|
-
현재 release는 `0.1.7`이며 early, compatibility-first입니다. 현재 `0xcaff/codex-web` commit `585613f5a3a355af5aefc388ca4e31b07a472cda`를 참조하는 Codex 스타일 browser runtime을 실행하고, 그 주변에 설치, 안전, 문서, 검증 evidence 계층을 더합니다.
|
|
29
|
+
## Safety
|
|
84
30
|
|
|
85
|
-
|
|
31
|
+
This project is not affiliated with or endorsed by OpenAI.
|
|
86
32
|
|
|
87
|
-
|
|
33
|
+
Keep the raw UI server on localhost. For phone or remote access, use Tailscale, Cloudflare Access, WireGuard, SSH tunneling, or an equivalent trusted access boundary. Do not expose the raw UI server directly to a public IP.
|
|
88
34
|
|
|
89
|
-
|
|
35
|
+
Do not share tokens, cookies, private repository contents, customer data, internal URLs, `.env` values, or anything containing SECRET, KEY, or TOKEN in public issues or screenshots.
|
|
90
36
|
|
|
91
|
-
##
|
|
37
|
+
## Scope
|
|
92
38
|
|
|
93
|
-
|
|
39
|
+
This package starts a local renderer bridge for the Codex App already installed on this computer. It is not a native Codex App marketplace plugin, browser extension, one-click installer, or managed hosting service.
|
|
94
40
|
|
|
95
41
|
License: [Apache-2.0](../../LICENSE.md)
|
|
@@ -1,95 +1,41 @@
|
|
|
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
1
|
# Codex WebApp
|
|
5
2
|
|
|
6
3
|
[English](../../README.md) / [日本語](../../README.ja.md) / [한국어](./README.ko.md) / 简体中文
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
它提供可直接粘贴到 Codex App 的提示词、友好的 `doctor` 检查、安全的本地启动器,以及用于确认真实 Codex 风格浏览器界面是否可访问的 smoke test。
|
|
5
|
+
Codex WebApp 是面向 Codex App 用户的非官方、local-first renderer bridge。它会从本机已安装的 Codex App 准备 `webview/` renderer,在 `127.0.0.1` 提供本地页面,并通过 smoke test 验证页面是否可访问。
|
|
11
6
|
|
|
12
7
|

|
|
13
8
|
|
|
14
|
-
|
|
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
|
|
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 doctor
|
|
48
|
-
npx -y codex-webapp start --dry-run
|
|
49
|
-
npx -y codex-webapp start
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
`npx` 的简单解释:它会临时运行一个已经发布到 npm 的包,减少手动安装和管理项目依赖的麻烦。
|
|
53
|
-
|
|
54
|
-
## 终端快速开始
|
|
9
|
+
## Quick Start
|
|
55
10
|
|
|
56
11
|
```bash
|
|
57
|
-
codex --version
|
|
58
|
-
codex remote-control --help
|
|
59
12
|
npx -y codex-webapp doctor
|
|
60
13
|
npx -y codex-webapp start --dry-run
|
|
61
14
|
npx -y codex-webapp start
|
|
62
15
|
```
|
|
63
16
|
|
|
64
|
-
|
|
17
|
+
Open:
|
|
65
18
|
|
|
66
19
|
```text
|
|
67
20
|
http://127.0.0.1:8214/
|
|
68
21
|
```
|
|
69
22
|
|
|
70
|
-
|
|
23
|
+
Verify:
|
|
71
24
|
|
|
72
25
|
```bash
|
|
73
|
-
npx -y codex-webapp smoke
|
|
74
|
-
--url http://127.0.0.1:8214/
|
|
26
|
+
npx -y codex-webapp smoke --url http://127.0.0.1:8214/
|
|
75
27
|
```
|
|
76
28
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
## 当前范围
|
|
80
|
-
|
|
81
|
-
这不是 Codex App native marketplace plugin、browser extension、one-click installer 或 managed hosting service。它的使用方式是:把提示词粘贴到 Codex App,让 Codex 通过 `npx` 执行 npm 包。
|
|
82
|
-
|
|
83
|
-
当前 release 为 `0.1.7`,仍处于 early 阶段,并采用 compatibility-first 方针。它目前运行一个引用 `0xcaff/codex-web` commit `585613f5a3a355af5aefc388ca4e31b07a472cda` 的 Codex 风格 browser runtime,并在其周围增加安装、安全、文档和验证证据层。
|
|
29
|
+
## Safety
|
|
84
30
|
|
|
85
|
-
|
|
31
|
+
This project is not affiliated with or endorsed by OpenAI.
|
|
86
32
|
|
|
87
|
-
|
|
33
|
+
Keep the raw UI server on localhost. For phone or remote access, use Tailscale, Cloudflare Access, WireGuard, SSH tunneling, or an equivalent trusted access boundary. Do not expose the raw UI server directly to a public IP.
|
|
88
34
|
|
|
89
|
-
|
|
35
|
+
Do not share tokens, cookies, private repository contents, customer data, internal URLs, `.env` values, or anything containing SECRET, KEY, or TOKEN in public issues or screenshots.
|
|
90
36
|
|
|
91
|
-
##
|
|
37
|
+
## Scope
|
|
92
38
|
|
|
93
|
-
|
|
39
|
+
This package starts a local renderer bridge for the Codex App already installed on this computer. It is not a native Codex App marketplace plugin, browser extension, one-click installer, or managed hosting service.
|
|
94
40
|
|
|
95
41
|
License: [Apache-2.0](../../LICENSE.md)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-webapp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "Unofficial. Respectful web app surface, doctor, and safety wrapper for Codex App users.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -23,17 +23,24 @@
|
|
|
23
23
|
"codex-webapp": "bin/codex-webapp.mjs"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
|
+
"check:public-boundary": "node ./scripts/check-public-package-boundary.mjs",
|
|
26
27
|
"doctor": "node ./bin/codex-webapp.mjs doctor",
|
|
27
28
|
"smoke": "node ./bin/codex-webapp.mjs smoke",
|
|
28
29
|
"test": "node --test",
|
|
30
|
+
"verify:clean-release": "node ./scripts/verify-clean-release.mjs",
|
|
29
31
|
"start:dry-run": "node ./bin/codex-webapp.mjs start --dry-run"
|
|
30
32
|
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@electron/asar": "^3.4.1",
|
|
35
|
+
"ws": "^8.18.3"
|
|
36
|
+
},
|
|
31
37
|
"engines": {
|
|
32
|
-
"node": ">=20"
|
|
38
|
+
"node": ">=20.11"
|
|
33
39
|
},
|
|
34
40
|
"files": [
|
|
35
41
|
"bin",
|
|
36
42
|
"docs",
|
|
43
|
+
"scripts",
|
|
37
44
|
"src",
|
|
38
45
|
"ACKNOWLEDGEMENTS.md",
|
|
39
46
|
"README.md",
|