codex-harness 0.2.0 → 0.2.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/README.md +52 -89
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,113 +1,76 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/ErzenXz/codex-harness/main/docs/assets/banner.svg" alt="Codex Harness — native Rust, small footprint." width="100%">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
A small native Rust backend for coding agents.<br>
|
|
7
|
+
macOS · Linux · Windows / arm64 · x64
|
|
8
|
+
</p>
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
<p align="center">
|
|
11
|
+
<a href="https://www.npmjs.com/package/codex-harness">npm</a> ·
|
|
12
|
+
<a href="https://github.com/ErzenXz/codex-harness/releases">Downloads</a> ·
|
|
13
|
+
<a href="https://github.com/ErzenXz/codex-harness/blob/main/docs/reference.md">Documentation</a>
|
|
14
|
+
</p>
|
|
8
15
|
|
|
9
|
-
|
|
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
|
|
16
|
+
## Quick start
|
|
25
17
|
|
|
26
18
|
```sh
|
|
19
|
+
pnpm add -g codex-harness
|
|
27
20
|
codex-harness login
|
|
28
21
|
```
|
|
29
22
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
23
|
+
Requires pnpm and Node.js 22.15+. Installs only your platform's native binary, with no
|
|
24
|
+
compilation or install scripts. [Standalone downloads](https://github.com/ErzenXz/codex-harness/releases)
|
|
25
|
+
run without Node.js. Linux uses static musl; Windows runs natively.
|
|
41
26
|
|
|
42
|
-
Set
|
|
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:
|
|
27
|
+
Set your ACP app's agent command:
|
|
50
28
|
|
|
51
29
|
```json
|
|
52
|
-
{
|
|
53
|
-
"command": "/absolute/path/printed/above/codex-harness",
|
|
54
|
-
"args": ["--acp"],
|
|
55
|
-
"env": {}
|
|
56
|
-
}
|
|
30
|
+
{ "command": "codex-harness", "args": ["--acp"] }
|
|
57
31
|
```
|
|
58
32
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
and
|
|
33
|
+
Your app provides the interface; the harness communicates over stdin/stdout.
|
|
34
|
+
Subscription login uses your plan's model access and limits.
|
|
35
|
+
[Other providers and API keys →](https://github.com/ErzenXz/codex-harness/blob/main/docs/reference.md#authentication-and-providers)
|
|
62
36
|
|
|
63
|
-
|
|
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.
|
|
37
|
+
## Performance
|
|
68
38
|
|
|
69
|
-
|
|
39
|
+
Measured locally on **macOS arm64 · v0.2.0**.
|
|
70
40
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
- Permission-gated edits/shell/MCP tools, plan mode, subagent roles, cancellation,
|
|
78
|
-
persistence and observed provider usage reporting stay available.
|
|
41
|
+
| Metric | Result |
|
|
42
|
+
| :--- | ---: |
|
|
43
|
+
| Native binary | **4.48 MB** · 6.8% smaller |
|
|
44
|
+
| Version startup, median | **5.82 ms** |
|
|
45
|
+
| Idle memory, sampled RSS | **4.02 MiB** |
|
|
46
|
+
| Streamed tool arguments, median | **2.02 ms** · ~29× faster |
|
|
79
47
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
48
|
+
Size and streaming comparisons use the original `6f55af7` baseline. Streaming
|
|
49
|
+
measures accumulation of 8,000 × 32-byte argument fragments; model latency is
|
|
50
|
+
excluded. Memory and timings vary by workload.
|
|
51
|
+
[Before/after results, methodology and reproduction →](https://github.com/ErzenXz/codex-harness/blob/main/docs/performance.md)
|
|
83
52
|
|
|
84
|
-
|
|
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).
|
|
53
|
+
## Built to stay light
|
|
89
54
|
|
|
90
|
-
|
|
55
|
+
One async event-loop thread, shared HTTP connections, lazy MCP connections and
|
|
56
|
+
bounded history, files and tool output. No telemetry, daemon, updater or bundled
|
|
57
|
+
browser/model.
|
|
91
58
|
|
|
92
|
-
|
|
93
|
-
|
|
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.
|
|
59
|
+
Streaming, file/search tools, MCP, subagents, background jobs, persistent sessions,
|
|
60
|
+
cancellation and permission controls are built in.
|
|
103
61
|
|
|
104
|
-
|
|
62
|
+
For the lowest launch overhead, run `codex-harness --print-binary-path` and use
|
|
63
|
+
that executable directly in your ACP app. On macOS/Linux the standard launcher
|
|
64
|
+
replaces Node with Rust where `execve` is available; Windows keeps a forwarding
|
|
65
|
+
process until you use the native path.
|
|
105
66
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
67
|
+
Approved tools can access your host. Native desktop control is optional and
|
|
68
|
+
requires Linux X11; macOS/Windows computer use works through MCP. See
|
|
69
|
+
[security and limits](https://github.com/ErzenXz/codex-harness/blob/main/docs/reference.md#safety-boundaries).
|
|
109
70
|
|
|
110
|
-
|
|
111
|
-
use `--no-optional` or `--omit=optional`. There is no fallback network download.
|
|
71
|
+
---
|
|
112
72
|
|
|
113
|
-
[
|
|
73
|
+
[Configuration](https://github.com/ErzenXz/codex-harness/tree/main/examples) ·
|
|
74
|
+
[Install, update & remove](https://github.com/ErzenXz/codex-harness/blob/main/docs/reference.md#installation-and-maintenance) ·
|
|
75
|
+
[Development](https://github.com/ErzenXz/codex-harness/blob/main/docs/reference.md#development) ·
|
|
76
|
+
[MIT license](https://github.com/ErzenXz/codex-harness/blob/main/LICENSE)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-harness",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Small native Rust coding-agent backend: ACP, streaming, subagents, MCP and ChatGPT sign-in",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
"registry": "https://registry.npmjs.org/"
|
|
35
35
|
},
|
|
36
36
|
"optionalDependencies": {
|
|
37
|
-
"@erzenx/codex-harness-darwin-arm64": "0.2.
|
|
38
|
-
"@erzenx/codex-harness-darwin-x64": "0.2.
|
|
39
|
-
"@erzenx/codex-harness-linux-arm64": "0.2.
|
|
40
|
-
"@erzenx/codex-harness-linux-x64": "0.2.
|
|
41
|
-
"@erzenx/codex-harness-win32-arm64": "0.2.
|
|
42
|
-
"@erzenx/codex-harness-win32-x64": "0.2.
|
|
37
|
+
"@erzenx/codex-harness-darwin-arm64": "0.2.1",
|
|
38
|
+
"@erzenx/codex-harness-darwin-x64": "0.2.1",
|
|
39
|
+
"@erzenx/codex-harness-linux-arm64": "0.2.1",
|
|
40
|
+
"@erzenx/codex-harness-linux-x64": "0.2.1",
|
|
41
|
+
"@erzenx/codex-harness-win32-arm64": "0.2.1",
|
|
42
|
+
"@erzenx/codex-harness-win32-x64": "0.2.1"
|
|
43
43
|
}
|
|
44
44
|
}
|