# oonacode-win32-x64

Platform package for the [`oonacode`](../oonacode) npm wrapper — **Windows x64 only**
(`"os": ["win32"], "cpu": ["x64"]`). Do not install it directly; `npm i -g oonacode` pulls it in as
an optional dependency and links its binaries into the wrapper's `bin/`.

## Contents (injected at release time — this directory is a skeleton in git)

| File                    | What                                                                          |
| ----------------------- | ----------------------------------------------------------------------------- |
| `oona.exe`              | the `oona` CLI + headless host service + local web UI server (single binary)   |
| `oonaclaude.exe`        | the pinned Claude Code engine, run through the Claude Agent SDK (sidecar)      |
| `web-ui/`               | the local web UI static assets served by the host service                     |
| `build/`, `prebuilds/`  | native addons (e.g. SQLite) laid out where the bundle looks for them          |
| `registry.json`         | the provider registry — the host refuses to start without it beside the exe   |
| `oonacode-release.json` | version / arch / commit / build mode / engine version stamp                   |

`oonaclaude.exe` is a byte-for-byte copy of the pinned, **unmodified** native binary from
`@anthropic-ai/claude-agent-sdk-win32-x64`. OonaCode does not fork or patch Claude Code — it ships
under our own filename only so it can never be confused with, or collide with, a user's own `claude`
on PATH. It is in the package only when the build bundled the engine
(`packaging/release.ps1 -BundleEngine`); a default release does not, and the PC downloads the
pinned engine once into its own store on the first message (`docs/engine-once.md`).

In the source repository this directory is only a skeleton — `package.json` and this README; the
payload is git-ignored. The package that is published is staged OUTSIDE the repository by
`packaging/scripts/stage-npm.mjs` from `dist\win\stage`, the build the release has just made
(`packaging/release.ps1` step 6b), and the staging refuses a build of another version or one
pinned to another engine than the release publishes. `release.ps1` never packs this directory.
(Until 0.3.131 it did, as the directory sat on disk: every npm release from 0.3.18 to 0.3.131
carries a 0.3.17 `oona.exe` — review C18/C26, 2026-09-23.)

`oonaclaude.exe` keeps Anthropic's own Authenticode signature (it is never re-signed and never
modified — only the filename differs); `oona.exe` is signed by the release
pipeline when a certificate is configured (see `docs/release-windows.md`).

Linux x64 is the sibling [`oonacode-linux-x64`](../oonacode-linux-x64); the other platforms
(`oonacode-win32-arm64`, `oonacode-linux-arm64`, `oonacode-darwin-*`) are deferred.
