codex-harness 0.0.0-stage → 0.2.0
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/LICENSE +21 -0
- package/README.md +112 -2
- package/THIRD_PARTY_NOTICES.md +5890 -0
- package/bin/codex-harness.cjs +48 -0
- package/package.json +41 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ErzenXz
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,113 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Codex Harness
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A small, quiet native Rust backend for coding agents. Your ACP-compatible app
|
|
4
|
+
provides the UI; the harness handles streaming, file/search tools, isolated
|
|
5
|
+
subagents, background jobs, MCP servers and optional computer use.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
pnpm add -g codex-harness
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or use `npm install -g codex-harness`. Requires Node.js 22.15+ for the installer
|
|
14
|
+
launcher. No Rust, Python, compilation, postinstall script or runtime download.
|
|
15
|
+
Only the native package for your OS/CPU is installed. Supports macOS, Linux and
|
|
16
|
+
Windows on arm64 and x64. Linux binaries use static musl and work on glibc and
|
|
17
|
+
musl distributions. Windows runs natively; WSL is optional.
|
|
18
|
+
|
|
19
|
+
Prefer no Node.js at all? Download the matching archive from
|
|
20
|
+
[Releases](https://github.com/ErzenXz/codex-harness/releases), verify it against
|
|
21
|
+
`SHA256SUMS`, and put the executable on PATH. `ripgrep` is recommended for faster
|
|
22
|
+
search; a bounded Rust fallback is built in.
|
|
23
|
+
|
|
24
|
+
## Sign in
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
codex-harness login
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Open the printed link, enter the code and approve access. Enable device-code
|
|
31
|
+
login in ChatGPT security settings if requested. Your plan must allow the model;
|
|
32
|
+
subscription limits still apply. No API key is needed for subscription sign-in.
|
|
33
|
+
|
|
34
|
+
Defaults use `gpt-6-luna`. To choose reasoning, concurrency or another provider,
|
|
35
|
+
copy a [starter configuration](examples/) to a trusted user directory and pass
|
|
36
|
+
`--config /absolute/path/config.toml` to **both login and the ACP launcher**.
|
|
37
|
+
[API key and provider setup](docs/reference.md#authentication-and-providers).
|
|
38
|
+
No configuration is read from the project being edited.
|
|
39
|
+
|
|
40
|
+
## Connect your ACP app
|
|
41
|
+
|
|
42
|
+
Set its agent command to `codex-harness`, with arguments `["--acp"]`. For the
|
|
43
|
+
lowest overhead, get the absolute native executable path once:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
codex-harness --print-binary-path
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Use that path directly in your app's launcher:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"command": "/absolute/path/printed/above/codex-harness",
|
|
54
|
+
"args": ["--acp"],
|
|
55
|
+
"env": {}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
On Windows the path ends in `.exe`. If using a custom config, append
|
|
60
|
+
`"--config", "/absolute/path/config.toml"` to `args`. Your ACP app sends prompts
|
|
61
|
+
and approvals over stdin/stdout. No files need to be installed in your projects.
|
|
62
|
+
|
|
63
|
+
A blank terminal is normal if you run the harness yourself: it waits for ACP
|
|
64
|
+
messages. There is no terminal chat, web server or status banner. Closed stdin
|
|
65
|
+
shuts it down. On macOS/Linux the npm launcher replaces itself with Rust using
|
|
66
|
+
Node's `execve` where available; Windows uses a child process. Direct native
|
|
67
|
+
launch avoids Node startup on every platform.
|
|
68
|
+
|
|
69
|
+
## Small by design
|
|
70
|
+
|
|
71
|
+
- One current-thread async runtime, pooled HTTP and lazy shared MCP connections.
|
|
72
|
+
- In-place streamed tool arguments and SSE fragments; no repeated whole-buffer
|
|
73
|
+
copies. JSON budget checks count bytes without allocating another JSON buffer.
|
|
74
|
+
- Whole-turn history eviction, bounded files/streams/tool output, backpressure,
|
|
75
|
+
explicit concurrency caps and session unloading.
|
|
76
|
+
- No telemetry, background updater, daemon or bundled browser/model/runtime.
|
|
77
|
+
- Permission-gated edits/shell/MCP tools, plan mode, subagent roles, cancellation,
|
|
78
|
+
persistence and observed provider usage reporting stay available.
|
|
79
|
+
|
|
80
|
+
Performance figures and reproducible tests live in
|
|
81
|
+
[Performance](docs/performance.md). These measure local overhead; model inference,
|
|
82
|
+
provider limits and workload determine end-to-end agent performance.
|
|
83
|
+
|
|
84
|
+
Native desktop control requires Linux X11 and is disabled by default. For macOS
|
|
85
|
+
and Windows desktop/browser control, connect a trusted MCP server. Approved shell,
|
|
86
|
+
MCP and desktop tools can access the host; they are **not an OS sandbox**.
|
|
87
|
+
Credentials are stored unencrypted in private local state. See
|
|
88
|
+
[Security and limits](docs/reference.md#safety-boundaries).
|
|
89
|
+
|
|
90
|
+
## Update, remove, build
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
pnpm add -g codex-harness@latest
|
|
94
|
+
codex-harness logout
|
|
95
|
+
pnpm remove -g codex-harness
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Restart your ACP agent after updating. If you launch the printed native path,
|
|
99
|
+
refresh that path after updating. Logout removes local login credentials; retained
|
|
100
|
+
conversations remain in the state directory. On Unix state defaults to
|
|
101
|
+
`$XDG_STATE_HOME/codex-harness` or `~/.local/state/codex-harness`; on Windows it is
|
|
102
|
+
`%LOCALAPPDATA%\codex-harness`. `CODEX_HARNESS_STATE_DIR` overrides it.
|
|
103
|
+
|
|
104
|
+
Source install (Rust 1.88+ and your OS build tools required):
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
cargo install --git https://github.com/ErzenXz/codex-harness --tag v0.2.0 --locked
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Missing platform package? Reinstall with optional dependencies enabled; do not
|
|
111
|
+
use `--no-optional` or `--omit=optional`. There is no fallback network download.
|
|
112
|
+
|
|
113
|
+
[Technical reference](docs/reference.md) · [Development and tests](docs/reference.md#development) · [Release process](docs/releasing.md)
|