Repository navigation
One Code 0.4.0
The Windows release, with a batch of Claude Code parity work behind it.
Install
npm i -g @one-ai/one-code
On Windows without Node.js:
powershell -c "irm https://raw.githubusercontent.com/IsuruMaduranga/one-code/master/install.ps1 | iex"
Native Windows
- One Code runs on native Windows in Claude Code's shape. The
powershelltool is on by default on Windows and is the primary shell when active; Git Bash stays alongside when it exists, andCLAUDE_CODE_USE_POWERSHELL_TOOL/CLAUDE_CODE_GIT_BASH_PATHbehave as they do in Claude Code.PowerShell(...)permission rules work, with a read-only allowlist and a deterministic pre-gate for auto mode. - Windows path spellings. Git Bash
/c/…and/tmp/…forms in bash command lines, drive-relative paths refused in the read-only check,~expanded with forward slashes. - npm
.cmdlanguage servers start throughcmd.exe, so TypeScript and friends work from an npm global install; a shimmed server's whole process tree is killed on shutdown. - Hooks are detached properly on Windows so an exiting parent never waits on them.
- Keys and chrome. Permission modes cycle with
alt+mon Windows and WSL (pi's key table takesctrl+qthere), and the mode badge's pause icon is a single cell. - An installer script.
install.ps1finds Node ≥ 22.19 or downloads the newest Node LTS for the CPU, verifies it againstSHASUMS256.txt, installs the app, fixes the user PATH, and points at Git for Windows when git is missing. - Verified live on CI. A real model drives the bash and PowerShell tools end to end on
windows-latestandubuntu-lateston every push touching shell code. A new guide page, Windows, says what is and isn't verified.
Claude Code parity
/btwasks a side question answered from the live conversation context, shown in a scrollable overlay that never enters the transcript.- Slash commands are visible to the model. Local commands leave Claude Code's
<local-command-caveat>and breadcrumb blocks, so a/clearor a model switch is no longer invisible to it. - Sessions are named automatically the way Claude Code names them, in the terminal title and the session picker.
- Harness notifications use Claude Code's wire shape (
<task-notification>, the subagent hand-back frames) instead of One Code's own prose frame. - Prompt caching on Anthropic. The tools array stays byte-stable across
tool_searchloads, so loading a deferred tool no longer busts the cached prefix. - Footer. Counts pi's cache-warming usage in the total, and shows the worktree's path and branch during a worktree session.
Doctor and update notice
- The Homebrew update hint waits until brew can actually install the release (Homebrew passes
--min-release-age=1), and names the renamedonecodeformula. - The doctor reports the shell tools in its Dependencies section and reads transcripts with one-line read-only commands.
pi
- The app pins pi 0.86.1; the extension package's tested range now covers 0.86.x.
Fixes
- Subagent cancellation status is preserved across hand-back review; saved model choices are validated.
- Subagent model selection and the retry menus' default model only pick image-capable models.
- The compaction clamp estimate counts the system prompt and tools.
- The shell tools inherit pi's strict JSON-schema sampling.
- Hand-back reasons are bounded and non-terminal statuses rejected.
- A skill's command turn runs in one-shot mode.
- LSP: a global-only TypeScript install is refused up front with the install line, and servers are keyed on the resolved path.
Homebrew
- The
onecodeformula is bumped to 0.4.0. A freshbrew install isurumaduranga/one-ai/onecoderesolves about a day after the npm publish because of Homebrew's minimum-release-age guard.