oonacode
v0.3.130
Published
OonaCode — Windows-first multi-provider coding agent: the `oona` CLI, headless host service and local web UI. npm wrapper; the native binary is installed through the per-platform optional dependency.
Downloads
13,557
Maintainers
Readme
oonacode (npm wrapper)
OonaCode is a Windows-first, multi-provider coding agent: the genuine Claude Code engine (driven through the official Claude Agent SDK) in an isolated profile, sessions in SQLite, any model provider through your own gateway, and personal remote access to your own machines.
This package is the npm/pnpm/bun/yarn entry point. It contains no binaries itself; the native
build is pulled in through a per-platform optional dependency and linked into bin/ by a
postinstall step (the same model as esbuild / opencode).
npm install -g oonacode
pnpm add -g oonacode # then: pnpm approve-builds (allow the trusted postinstall)
bun add -g oonacode # then: bun pm trust oonacode
yarn global add oonacodeThen:
oona --help # CLI (mirrors Claude Code flags: -p, --model, --output-format text|json|stream-json, --resume, ...)
oona serve # start the host service (headless) + local web UI
oona web # open the local web UIPlatform packages
| Platform | Package | Status |
| ------------- | --------------------- | ---------------------------------------- |
| Windows x64 | oonacode-win32-x64 | shipped |
| Windows arm64 | oonacode-win32-arm64 | later (x64 build runs under emulation) |
| Linux x64 | oonacode-linux-x64 | later |
| Linux arm64 | oonacode-linux-arm64 | later |
| macOS x64 | oonacode-darwin-x64 | later |
| macOS arm64 | oonacode-darwin-arm64 | later |
Each platform package carries oona.exe (the single-binary host + CLI), oonaclaude.exe (the pinned
Claude Code engine sidecar — it must live on real disk next to oona.exe), the local web UI assets
(web-ui/) and native addons (build/).
oonaclaude.exe is a byte-for-byte copy of the pinned, unmodified engine binary from the Claude
Agent SDK platform package. OonaCode does not fork or patch Claude Code; the file is renamed only so
it can never be confused with, or collide with, your own claude on PATH.
How oona resolves the binary
bin/oona.js looks for, in order: bin/oona.exe (linked by postinstall) → oonacode-win32-x64/oona.exe
in place → the JS CLI @oonacode/cli/dist/main.js when that package is a dependency (developer
installs; slower start, needs an engine reachable via OONACODE_CLAUDE_BIN). The binary runs with
inherited stdio and its exit code is forwarded verbatim. If nothing is found it prints how to fix
it, including the Windows one-liner:
irm https://oonacode.oonak.ai/install.ps1 | iexNotes
- pnpm / bun block lifecycle scripts by default. Without the postinstall the wrapper still works (it resolves the platform package in place); linking only removes one resolution step.
- Set
OONACODE_SKIP_POSTINSTALL=1to skip the link step entirely. - Your own Claude subscription always runs direct to Anthropic from your PC; API-key providers go through your own OonaCode gateway. No credential is ever shared between users.
private: trueis set on this package until the first publish (TODO: flip inpackage.jsononce the npm org is ready; the release workflow refuses to publish while it is private).- In the monorepo
optionalDependenciesuseworkspace:<version>so pnpm links the sibling platform package;packaging/scripts/prepare-npm.mjsrewrites it to the concrete version right beforenpm publish(npm does not understand the workspace protocol).
