codexmu 0.2.0 → 0.2.2
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/README.ko.md +4 -4
- package/README.md +4 -4
- package/package.json +1 -1
- package/vendor/darwin-arm64/codexmu +0 -0
- package/vendor/darwin-x64/codexmu +0 -0
- package/vendor/linux-arm64/codexmu +0 -0
- package/vendor/linux-x64/codexmu +0 -0
package/README.ko.md
CHANGED
|
@@ -86,7 +86,7 @@ codexmu remove unused
|
|
|
86
86
|
codexmu │ gpt-5.1 medium │ …/codexmu │ main +2 │ 5h 85% · 0h42m │ user@example.com (plus) Context 100% left · Fast off · 5h 85% · weekly 58% · 0.153.4
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
표시되는 값은 현재 세션의 모델·추론 강도·작업 경로, Git 브랜치와 변경 수,
|
|
89
|
+
표시되는 값은 현재 세션의 모델·추론 강도·작업 경로, Git 브랜치와 변경 수, 남은 사용량, 활성 계정의 이메일·플랜입니다. 모델·추론 강도는 공식 Codex의 상태 줄에서 가져오므로 다음 턴을 기다리지 않고 선택한 대화와 `/model` 변경을 따라갑니다. 사용량은 계정 조회와 해당 세션의 Codex 서버가 보내는 실시간 한도 알림을 함께 반영하므로 턴 실행 중에도 갱신되며, 두 한도 표시는 같은 계정 데이터를 사용합니다. 상태 줄의 시간은 한도 초기화까지 남은 시간입니다. 계정 전환이 서버에서 승인되면 상태 줄도 새 계정으로 바뀌고 전환 알림 구간을 잠시 표시합니다. 조회되지 않은 한도는 `—`로 표시하며, 좁은 창에서는 경로·Git 표시를 줄입니다. 마우스 휠과 PageUp/PageDown으로 Codex 출력만 스크롤되고 상태 줄은 그대로 남으며, 다른 키를 누르면 현재 화면으로 돌아옵니다. codexmu는 마우스를 가로채지 않으므로 텍스트 선택·복사·Cmd+클릭은 터미널 기본 동작 그대로입니다(휠 스크롤은 Terminal.app, iTerm2, kitty, Ghostty, WezTerm이 기본으로 켜 두는 alternate scroll 동작을 이용합니다). 배경·글꼴은 사용하는 터미널 설정을 따릅니다.
|
|
90
90
|
|
|
91
91
|
```sh
|
|
92
92
|
codexmu
|
|
@@ -100,7 +100,7 @@ codexmu --plain
|
|
|
100
100
|
|
|
101
101
|
**같은 `CODEX_HOME`에서 여러 `codexmu` 창을 동시에 실행할 수 있습니다.** 각 터미널에서 `codexmu`를 실행하면 됩니다. 계정 목록과 기본 활성 계정은 공유하고, 대화·승인·실행 중인 인증은 각 창의 공식 Codex 서버가 관리합니다. 다른 창에서 계정이 바뀌면 각 창은 실행 중인 턴이 끝난 뒤 사용량 확인 시 새 계정을 적용합니다. 한도 오류가 난 창은 바로 전환을 시도합니다.
|
|
102
102
|
|
|
103
|
-
계정 저장소 접근·사용량 조회·OAuth 갱신은 저장소 잠금으로 직렬화합니다. 여러 창이 같은 토큰을 갱신하려고 하면 먼저 갱신된 토큰을 재사용하며, 다른 계정으로 작업 중인 창의 인증을 덮어쓰지 않습니다. 잠금은 세션 전체를 점유하지 않습니다.
|
|
103
|
+
계정 저장소 접근·사용량 조회·OAuth 갱신은 저장소 잠금으로 직렬화합니다. 여러 창이 같은 토큰을 갱신하려고 하면 먼저 갱신된 토큰을 재사용하며, 다른 계정으로 작업 중인 창의 인증을 덮어쓰지 않습니다. 인증 파일의 부가정보만 바뀐 경우에는 토큰이 갱신된 것으로 판단하지 않으며, 새로 갱신한 토큰도 정상적으로 저장합니다. 잠금은 세션 전체를 점유하지 않습니다.
|
|
104
104
|
|
|
105
105
|
새 홈에서 공식 Codex의 SQLite 초기화가 충돌하지 않도록 서버 시작부터 초기화 응답까지는 별도 시작 잠금으로 순서를 맞춥니다. 초기화 응답을 받으면 즉시 해제하여 여러 세션이 함께 작업할 수 있습니다.
|
|
106
106
|
|
|
@@ -199,7 +199,7 @@ python3 tests/check.py
|
|
|
199
199
|
python3 tests/check.py --native "$(command -v codex)"
|
|
200
200
|
|
|
201
201
|
# 실제 공식 Codex 터미널: 입력 → A 한도 → B 응답 → /quit → 터미널 복구
|
|
202
|
-
python3 tests/terminal.py --codex-bin "$(command -v codex)" --resize
|
|
202
|
+
python3 tests/terminal.py --codex-bin "$(command -v codex)" --model-change --usage-change --resize
|
|
203
203
|
python3 tests/terminal.py --codex-bin "$(command -v codex)" --plain
|
|
204
204
|
python3 tests/terminal.py --codex-bin "$(command -v codex)" --sessions 3 --resize
|
|
205
205
|
```
|
|
@@ -216,7 +216,7 @@ python3 tests/terminal.py --codex-bin "$(command -v codex)" --sessions 3 --resiz
|
|
|
216
216
|
|
|
217
217
|
`package.json`과 `Cargo.toml`의 버전을 함께 변경하세요. GitHub 저장소에 코드를 올린 뒤 Actions의 **npm release → Run workflow**를 실행하면 네 플랫폼의 바이너리를 빌드·검증하고 `npm-package` 아티팩트에 설치 가능한 `.tgz`를 만듭니다. Linux는 musl 타깃으로 빌드합니다.
|
|
218
218
|
|
|
219
|
-
게시하려면 `npm-package` 아티팩트를 내려받고, `npm login`한 머신에서 `npm publish ./codexmu-<version>.tgz --access public`을 실행하세요. npm은 게시 계정에 2단계 인증(2FA)을 요구하며, 명령 실행 시 브라우저 승인 단계가 열립니다. CI에서 게시하려면
|
|
219
|
+
게시하려면 `npm-package` 아티팩트를 내려받고, `npm login`한 머신에서 `npm publish ./codexmu-<version>.tgz --access public`을 실행하세요. npm은 게시 계정에 2단계 인증(2FA)을 요구하며, 명령 실행 시 브라우저 승인 단계가 열립니다. CI에서 게시하려면 npmjs.com 패키지 설정에서 이 저장소와 `npm-release.yml` 워크플로를 **trusted publisher**로 등록하고 워크플로의 **publish**를 선택하세요. 토큰 없이 GitHub OIDC로 게시됩니다. 패키지 이름을 바꾸려면 `package.json`의 `name`을 변경하면 됩니다. 워크플로는 네 플랫폼의 빌드와 검증이 모두 성공한 뒤 패키지를 게시합니다.
|
|
220
220
|
|
|
221
221
|
로컬 `npm publish`도 네 플랫폼 실행 파일이 모두 있는지 먼저 확인합니다. `npm pack`은 현재 플랫폼만으로 허용하므로 로컬 설치 테스트에 사용할 수 있습니다. 이 로컬 전용 `.tgz`를 공개 게시하지 마세요. 의존 npm 패키지와 설치 스크립트는 없습니다.
|
|
222
222
|
|
package/README.md
CHANGED
|
@@ -86,7 +86,7 @@ The image is a Terminal.app capture of a local fake-account run.
|
|
|
86
86
|
codexmu │ gpt-5.1 medium │ …/codexmu │ main +2 │ 5h 85% · 0h42m │ user@example.com (plus) Context 100% left · Fast off · 5h 85% · weekly 58% · 0.153.4
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
The status line shows the session model, reasoning effort, working directory, Git branch and change count,
|
|
89
|
+
The status line shows the session model, reasoning effort, working directory, Git branch and change count, remaining usage, and active account email and plan. Model and effort come from the native Codex status line, so they follow the selected conversation and `/model` changes without waiting for another turn. Usage combines account queries with live quota updates from that session’s Codex server, including during active turns; both quota displays use the same account data. The time is the countdown to the usage reset. Once the server acknowledges an account switch, the status line updates and briefly shows a switch notice segment. Unavailable quota data appears as `—`; narrow windows shorten or hide path, Git, and native details. The mouse wheel and PageUp/PageDown scroll the Codex output while the status line stays in place; any other key jumps back to the live view. codexmu never captures the mouse, so selecting text, copying, and Cmd+click keep working exactly as in your terminal (wheel scrolling relies on the alternate-scroll behavior that Terminal.app, iTerm2, kitty, Ghostty, and WezTerm enable by default). Your terminal controls the background and font.
|
|
90
90
|
|
|
91
91
|
```sh
|
|
92
92
|
codexmu
|
|
@@ -100,7 +100,7 @@ codexmu --plain
|
|
|
100
100
|
|
|
101
101
|
**Multiple `codexmu` windows can run simultaneously with the same `CODEX_HOME`.** Run `codexmu` in each terminal. They share the account list and default active account; each window's official Codex server manages its own conversations, approvals, and live authentication. When another window switches accounts, each window applies the new account during a usage check after its current turn finishes. A window receiving a usage-limit error attempts a switch immediately.
|
|
102
102
|
|
|
103
|
-
Account-store access, usage queries, and OAuth refresh are serialized by a store lock. Concurrent refreshes reuse tokens already refreshed by another window and do not overwrite the authentication of a window working with a different account. The lock is not held for the entire session.
|
|
103
|
+
Account-store access, usage queries, and OAuth refresh are serialized by a store lock. Concurrent refreshes reuse tokens already refreshed by another window and do not overwrite the authentication of a window working with a different account. Changes to auth-file metadata alone do not count as token rotation or prevent newly refreshed tokens from being saved. The lock is not held for the entire session.
|
|
104
104
|
|
|
105
105
|
A separate startup lock serializes server startup through the initialization response to avoid official Codex SQLite initialization conflicts in a fresh home. It releases immediately after initialization so sessions can work concurrently.
|
|
106
106
|
|
|
@@ -199,7 +199,7 @@ python3 tests/check.py
|
|
|
199
199
|
python3 tests/check.py --native "$(command -v codex)"
|
|
200
200
|
|
|
201
201
|
# Official Codex terminal: input → A hits limit → B responds → /quit → terminal restored
|
|
202
|
-
python3 tests/terminal.py --codex-bin "$(command -v codex)" --resize
|
|
202
|
+
python3 tests/terminal.py --codex-bin "$(command -v codex)" --model-change --usage-change --resize
|
|
203
203
|
python3 tests/terminal.py --codex-bin "$(command -v codex)" --plain
|
|
204
204
|
python3 tests/terminal.py --codex-bin "$(command -v codex)" --sessions 3 --resize
|
|
205
205
|
```
|
|
@@ -216,7 +216,7 @@ See [AGENTS.md](AGENTS.md) for the code layout, authentication and concurrency i
|
|
|
216
216
|
|
|
217
217
|
Update the versions in `package.json` and `Cargo.toml` together. After pushing the code to GitHub, select **npm release → Run workflow** in Actions to build and check all four platforms and create an installable `.tgz` in the `npm-package` artifact. Linux builds use musl targets.
|
|
218
218
|
|
|
219
|
-
To publish, download the `npm-package` artifact and run `npm publish ./codexmu-<version>.tgz --access public` from a machine logged in with `npm login`. npm requires two-factor authentication on the publishing account; the command opens a browser approval step. Alternatively,
|
|
219
|
+
To publish, download the `npm-package` artifact and run `npm publish ./codexmu-<version>.tgz --access public` from a machine logged in with `npm login`. npm requires two-factor authentication on the publishing account; the command opens a browser approval step. Alternatively, register this repository and the `npm-release.yml` workflow as a **trusted publisher** on the package's npmjs.com settings page and select **publish** in the workflow to publish from CI via GitHub OIDC without any token. Change `name` in `package.json` to rename the package. The workflow publishes only after builds and checks succeed for all four platforms.
|
|
220
220
|
|
|
221
221
|
Local `npm publish` also checks that executables for all four platforms are present. `npm pack` permits a current-platform-only package for local installation tests; do not publish that local-only `.tgz` publicly. There are no npm dependencies or installation scripts.
|
|
222
222
|
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/vendor/linux-x64/codexmu
CHANGED
|
Binary file
|