Skip to content

Releases

One Code 0.7.0

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 04 Nov 11:41
d9b61cb

One Code on pi 1.5.0, with very large instruction files kept from filling the context window.

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"

Instruction files take at most half the context window

CLAUDE.md, AGENTS.md and ONECODE.md ride the first message of every session, so a compaction can never free their space. A very large file, or several large ones together, used to leave every request nearly full or over the limit.

  • Instruction files may now take at most half the model's context window together. Past that, the largest file is left out, then the next largest, until the rest fit. The model gets a short note in its place naming the path and size, and reads the parts it needs.
  • You are told when it happens: at startup, before the next prompt when a model switch or a compaction moves a file across the line, when a nested CLAUDE.md is attached on a read, and in /doctor. /memory opens the file to trim it.
  • Nested instruction files share the same half with the top-level files and with the nested files already in the conversation.
  • Auto mode leaves out the same files the agent does. The classifier sees a note that the file exists and that leaving it out grants no permission.

pi 1.5.0

The app now pins pi 1.5.0. The extension package supports pi from 1.0.0, and the tested range runs through 1.5.

  • Hints follow your keybindings. Collapsed-output trailers, the startup key hints and the hidden-thinking label name the key you bound for each action, and drop the hint when the action has no key. On an older pi they keep today's text.
  • Your terminal knows when One Code is waiting for you. The question panel and plan approval now report a waiting state to the terminal, as pi's own dialogs already did.
  • Function keys with modifiers are read the way pi 1.5.0 reads them in the panels.
  • The bundled model catalogs are refreshed.

One Code 0.6.0

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 01 Nov 19:29
0cde89d

One Code on pi 1.4.0, with every request now built from the session itself, so sessions keep their prompt cache through compactions, reloads, forks and resumes.

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"

pi 1.4.0

The app now pins pi 1.4.0. The extension package supports pi from 1.0.0, and the tested range runs through 1.4.

pi 1.4.0 changes how OpenAI Responses requests declare their tools for GPT-5.4 and later (on openai, openai-codex, github-copilot and opencode). One Code now reads where a request declares its tools from the request itself, so the same session works on pi 1.0 through 1.4.

  • No repeated system prompt. Without the fix, every request after the first repeated the system prompt on these models.
  • Tools loaded through tool_search stay declared, in the main session and in forks.
  • A session started on pi 1.3 continues on 1.4 with its tools and cached prefix unchanged.

Requests built from the session

One Code now records each request as it went to the provider and builds the next one by appending to it. The request is a function of the session branch, so lifecycle events no longer change what the model already saw or break the prompt cache.

  • Compaction, /tree, /reload, --resume, /fork, /clear and model switches keep the permission mode, plan, loaded tools, file read state, /loop state and running agents the branch recorded.
  • Skill toggles and model switches no longer re-cache the conversation. The skills, tools and servers announced at the top of the session stay frozen until the next compaction, which rebuilds them. A tool or server that arrived mid-session is still named after a compaction.
  • Forks read the parent session's cache, get their own copy of the plan file, and hear when the parent's permission mode changes.
  • An entered worktree survives /clear and /new.
  • Subagents' injected tools stay deferred, and the model is told when a tool it used is gone.
  • Side calls (/btw, the recap, the classifier) see only the selected branch.

Also in this release

  • UserPromptSubmit hook context stays on its prompt. It no longer rides a later request when its own request fails or another prompt is queued.
  • A requested bypass mode is refused in a session that cannot grant bypass, and plan exit offers bypass back only when the session can grant it.
  • Skills marked user-only are refused to the model.
  • The bundled model catalogs are refreshed for pi 1.4.0 and again at the bump.
  • The app no longer shows pi's changelog after a pi version bump.

Verified

The unit suite (5,728 tests), the bundled-app smoke and the prompt-cache checks on Anthropic, OpenAI, OpenAI Codex and OpenRouter pass on this release. Live runs on pi 1.4.0 covered tool_search loads and forks on GPT-6.1, a session continued from pi 1.3.0, and the permission, subagent, workflow, plan, hook and lifecycle harnesses.

Both packages ship 0.6.0 in lockstep; the Homebrew formula moves to 0.6.0.

One Code 0.5.0

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 19 Oct 10:25
cb0fa88

One Code on pi 1.3.0, with contributor docs and a clearer plan approval dialog.

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"

pi 1.3.0

The app now pins pi 1.3.0. The extension package still supports pi from 0.84.3, and the tested range runs through 1.3.

  • A resumed session keeps the tools it loaded. A tool loaded through tool_search stays callable after --continue, and the first resumed request reads the whole cached prefix.
  • Opus 5 and Haiku 5.5 run their side calls with thinking off. The recap, the web reader, the session title and the auto-mode classifier send thinking disabled on those two models. Replayed requests keep their captured thinking settings, so they still read the session's cache.
  • GPT-6 on an OpenAI API key keeps the cache across a thinking-level change. pi carries the level in configuration_update input items, and forks pass them through.

Model catalogs

The bundled model catalogs are refreshed: 76 new models and 16 removed ones. Gemini 4 Argon is a workhorse model. With the new prices, Nemotron 3 Ultra and the Sakana models move from cheap to workhorse, and Gemini 2.5 Computer Use moves to cheap.

Also in this release

  • The plan approval dialog shows its choice keys (←/→, 1-4, enter, esc) directly under the choices, where they no longer get lost above a long plan.
  • Contributor docs under docs/dev/: getting started, architecture diagrams, extension rules and testing, with a rewritten AGENTS.md.

Verified

The unit suite, the bundled-app smoke and the prompt-cache checks on Anthropic, OpenAI, OpenAI Codex and OpenRouter pass on this release. It was also run by hand on Ubuntu 24.04 and Windows Server 2025, installed over 0.4.1.

Both packages ship 0.5.0 in lockstep; the Homebrew formula moves to 0.5.0.

One Code 0.4.1

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 22 Sep 14:19
5b62fbc

A same-day follow-up to 0.4.0, which carries the release notes.

Install

npm i -g @one-ai/one-code

Fixed

  • The @one-ai/one-code npm page is current again. The app's README had not changed since 0.2.0: it named the Homebrew formula one-code (renamed to onecode in 0.3.0, so the copied command failed), and said nothing about native Windows or the install.ps1 installer. It now mirrors the repository README's install section and feature summary.

No code changes. Both packages ship 0.4.1 in lockstep; the Homebrew formula moves to 0.4.1.

One Code 0.4.0

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 22 Sep 13:34
d7a7499

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 powershell tool is on by default on Windows and is the primary shell when active; Git Bash stays alongside when it exists, and CLAUDE_CODE_USE_POWERSHELL_TOOL / CLAUDE_CODE_GIT_BASH_PATH behave 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 .cmd language servers start through cmd.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+m on Windows and WSL (pi's key table takes ctrl+q there), and the mode badge's pause icon is a single cell.
  • An installer script. install.ps1 finds Node ≥ 22.19 or downloads the newest Node LTS for the CPU, verifies it against SHASUMS256.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-latest and ubuntu-latest on every push touching shell code. A new guide page, Windows, says what is and isn't verified.

Claude Code parity

  • /btw asks 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 /clear or 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_search loads, 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 renamed onecode formula.
  • 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 onecode formula is bumped to 0.4.0. A fresh brew install isurumaduranga/one-ai/onecode resolves about a day after the npm publish because of Homebrew's minimum-release-age guard.

One Code 0.3.1

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 12 Sep 12:48

A small follow-up to 0.3.0.

Install

npm i -g @one-ai/one-code

Fixes

  • onecode doctor no longer crashes. The doctor CLI resolved @earendil-works/pi-ai with a bare alias that rewrote the /compat subpath to a dead path, so the command failed the moment its dependency probe loaded pi-web-search. The CLI now aliases pi-ai the way pi's own loader does. The app smoke test runs onecode doctor so this cannot regress unnoticed. Interactive /doctor and web search were unaffected.

Homebrew

  • The tap formula is renamed to onecode and bumped to 0.3.1, matching the installed command. Install with brew install isurumaduranga/one-ai/onecode. A fresh brew install resolves about a day after the npm publish because of Homebrew's minimum-release-age guard.

Docs

  • The README and the whole user guide were rewritten in a plainer, more conversational voice, and every guide page now links back to the index.

One Code 0.3.0

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 12 Sep 08:33

This release renames the project to One Code and lands everything built since 0.1.4. The command is now onecode, all state lives in ~/.onecode, and the bundled app ships as the scoped package @one-ai/one-code; the pi package stays one-code-extension. Both packages ship in lockstep at 0.3.0.

Install

npm i -g @one-ai/one-code        # recommended — the bundled onecode app
pi install npm:one-code-extension # or install onto your own pi

Highlights

  • Auto permission mode is the default, matching current Claude Code: a deterministic shell pre-gate, a git-recoverability check for in-project destruction, and Claude Code's two-stage LLM classifier running its ruleset verbatim.
  • /doctor setup checkup and onecode doctor, with model presets you can apply.
  • Model tiering by model generation (from models.dev release dates), plus an optional measured capability floor for subagent, classifier, and reader picks when an Artificial Analysis key is set.
  • Subagents (Agent/SendMessage) with a live agent panel, worktree isolation, and two-way messaging; workflows (ultracode) run fan-out scripts in a worker thread with a runaway-loop watchdog.
  • MCP client with a /mcp manager panel and OAuth, and plugins with a /plugins marketplace.
  • Compaction, an LSP diagnostics watcher, and command hooks bridged into subagents.
  • Pinned pi upgraded to 0.85.1; broad hardening of untrusted-input surfaces and permission confinement.

Notes

  • Requires Node ≥ 22.19.
  • Homebrew: the formula is being renamed to onecode; a fresh brew install resolves ~24h after publish because of Homebrew's --min-release-age guard.

One Code 0.1.4 — true fullscreen, clean exit

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 10 Aug 11:41

The bundled app now runs the full Claude Code terminal experience: a full-screen (alt-screen) TUI by default on first run, and a clean exit — quitting restores your terminal to exactly what preceded the session, leaving only the one-line resume hint. (pi's stock quit path repaints the transcript into scrollback; the app reaches pi-tui's preserve-screen exit instead. An upstream proposal to make this a pi setting is queued.)

Opt out anytime with "tuiMode": "regular" in ~/.one-code/agent/settings.json. On your own pi (the extension package), fullscreen remains opt-in: pi --tui-mode fullscreen — with pi's stock exit behavior until the upstream change lands.

npm: @one-ai/one-code@0.1.4 · one-code-extension@0.1.4 (lockstep) · Homebrew: brew install isurumaduranga/one-ai/one-code

One Code 0.1.2 — first public release

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 10 Aug 10:20

First public release of One Code — the Claude Code experience on any model you want.

One Code brings the whole Claude Code workflow — subagents, ultracode workflows, skills, MCP, plan mode, hooks, a real permission system, project memory, full .claude/ compatibility — to any provider: Anthropic, OpenAI, Gemini, a local Ollama model, or a gateway like OpenRouter. It is built as a set of extensions for the pi coding agent — no forks, so upstream improvements land as a version bump.

Install

The bundled app (recommended — ships its own pinned pi, keeps state isolated in ~/.one-code, coexists with any existing pi):

npm install -g @one-ai/one-code
cd your-project && one-code

Or via Homebrew (installs Node for you too):

brew install isurumaduranga/one-ai/one-code

As a pi package, on your own pi install:

pi install npm:one-code-extension

Try it free

You need one model-provider key; two providers hand out free models today:

  • OpenCode Zen — free model deepseek-v4-flash-free
  • OpenRouter — free models carry a :free suffix; nvidia/nemotron-3-ultra-550b-a55b:free is genuinely good (in-app OAuth supported: /login → "Sign in with OpenRouter")

Release contents

  • npm @one-ai/one-code 0.1.2 — the app: one-code command, pi 0.84.1 pinned, isolated state, One Code update notifications
  • npm one-code-extension 0.1.2 — the pi package: 32 extensions, two themes, bundled agent catalog; tested against pi 0.83–0.84 with a startup warning outside that range

Versions are lockstep: both packages share one version per release, and the app pins the extension at exactly its own version.

Requires Node ≥ 22.19 on the npm route. Platforms: macOS and Linux (WSL works the same way); native Windows is untested best-effort for now.