Repository navigation
Releases
nodecode 0.1.13
nodecode 0.1.13, build 98dd6dc: nodecode --version prints 0.1.13+98dd6dc80.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode takes it on its own.
Changes since v0.1.12
- release: 0.1.13 (#376) (98dd6dc)
- tui: the footer shows nodecode.ai credit only while a session runs on nodecode.ai (#375) (76da997)
- macOS: open openssl@3 by its own path, so Homebrew OpenSSL 4 is never loaded (#369) (799d7f5)
- openssl: read a certificate through the name 4.0 kept (#374) (fef4021)
- channels: an answer no message asked for no longer leaves an empty user message that strict providers refuse (#368) (#373) (60a4f4e)
- term: a kitty picture says its columns, so Konsole keeps it in its band (#372) (5ccc519)
- scribe: a kept variable keeps the value its call gave, never the call (#371) (4be1821)
- gateway: a restart keeps the jobs a tool shell left running, each in a scope of its own (#367) (c7aa572)
- docs: a free key made on API keys runs with its provider wired, not NODECODE_API_KEY alone (#366) (46f1e22)
- account: nodecode logout and /logout sign the machine out on nodecode.ai, so its key stops working (#363) (0980d61)
nodecode 0.1.12
nodecode 0.1.12, build e105154: nodecode --version prints 0.1.12+e105154bc.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode updates itself.
Highlights
- One
/logoutsigns out every shell. Typed in one shell, it reaches every shell open on the same home: each one drops its credit line and clears onto a fresh session.nodecode logoutin a terminal goes through the running gateway and does the same. (#364) - A sign-in in one shell shows in all of them. Every open shell reads its credit line again after a sign-in. (#364)
Fixes
/logoutno longer answers404after an update. A shell left open on an older build could bring back a gateway on that older build, which has no sign-out. A shell now starts the gateway on the release installed last, and a shell that still meets an older gateway signs out by itself and says why. (#364)
Changed or removed
- Sign-in is for API credit alone while no plan is sold:
/loginandnodecode loginoffer no Subscription choice, and an account without a plan shows no plan line or subscribe hint. (#362)
Under the hood
Full commit list: v0.1.11...v0.1.12
nodecode 0.1.11
nodecode 0.1.11, build 50d5d86: nodecode --version prints 0.1.11+50d5d867c.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode updates itself.
Highlights
- Cyber v1 for free. Top up $2 once, run
nodecode loginand press Allow with a free key. The CLI saves two keys, so/modelslists Cyber v1 twice:nodecode-free/nodecode-cyber-v1with a FREE chip (no cost, 256K context) first, thennodecode/nodecode-cyber-v1, which says whether it draws on your plan or your credit. A free sign-in picks the free row by default. (#359) - You can see which key you are on. The footer reads Free key · Cyber v1 while a session runs on the free key, and your plan or credit otherwise.
/usageandnodecode loginlist both keys, andnodecode logoutforgets both. (#354, #359)
Fixes
- A live upgrade no longer stops when a release exports a name that a package using it already holds but that names nothing. (#355)
- Windows: a shell no longer waits forever on
advertises no gateway endpointwhen the gateway could not publish its port while shells were reading it. (#356)
Under the hood
- Live upgrade: the FREE badge lives in a weak table and the paid row's detail is defined before its caller, so a running 0.1.10 gateway takes the two-key change live. (#360)
- Docs: a free key's limits (1 request at once and 3M tokens a day while new, 40 requests a minute); Free key section in models. (2cdd2d6, #354)
- Release: 0.1.11. (#361)
Full commit list: v0.1.10...v0.1.11
nodecode 0.1.10
nodecode 0.1.10, build 1452d53: nodecode --version prints 0.1.10+1452d5350.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode updates itself.
Highlights
- Cyber v1 is
nodecode-cyber-v1, with 1M of context. Decide v1 and Image v1 arenodecode-decide-v1andnodecode-image-v1. The oldforesight-*ids still answer. (#351, #352, #345) - Claude Code and Codex on Cyber v1. The docs give the few lines each one needs: three
exportlines for Claude Code, a six-lineconfig.tomlfor Codex. (#344, #348) - Sign out.
/logoutandnodecode logoutsign this machine out of nodecode.ai. (#338) - Key chords for slash commands.
keybinds.jsonbinds a chord to a slash line, and the/menu shows the chord beside its command. (#219, #343) - Cells do more. A cell command can put text on the clipboard or in the message box, read what you are typing, and open a link in a new browser tab. A list dialog can have heading rows, and a cell's request body is sent as UTF-8. (#216, #217, #343, #334)
- Windows: stopping a command stops everything it started. A child runs in a job object of its own, so a kill takes its whole tree. (#294)
Fixes
- Mistral no longer refuses a chat with
Extra inputs are not permitted(422): a request to Mistral carries noreasoning_content. (#349) - A streamed reply that sends thinking and text in one chunk keeps its first words instead of dropping them. (#350)
- Windows: a command is found the way its shell finds it (
PATHEXT), a path under your home shows as~however Windows spells it, the Files view lists every file with its write time, a picture is named by itsfile:///C:/URL, afile://import source may be a Windows path, and errors name paths and error numbers the way Windows writes them. (#295, #297, #304, #274, #300, #325, #305, #296, #283, #299, #301, #311, #308) - Windows: a folder's lock is the one released after the folder is made, an adopted lease answers correctly, a stop a foreign call held off is woken again, and a runaway verdict names the recursion it stopped. (#281, #280, #318, #303)
- Turning a cell off parks a link to your own folder instead of deleting it. (#323)
- One build's cleanup no longer deletes the cell cache another build is using. (#341)
- An in-process shell's rows views close with its link. (#241)
Smaller additions
- A submitted turn can name the only tools it may call (
:tools). (#220) - The settings sheet calls
budget_calls"Tool call budget", beside Time budget and Token budget. (#179)
Changed or removed
/modelsrefuses a model id its provider's list does not offer. (#342)- A tagged release also moves the nightly pointers it carries, so nightly is never behind stable. (#339)
Under the hood
- CI and tests: the Windows suite's fixes and known-red list, test scratch folders carry the pid so two suites on one box never share one, and two flake fixes. (#347, #346, #321, #320, #319, #317, #316, #314, #313, #312, #310, #309, #306, #298, #292, #290, #282, #278, #277, #276, #272, #271, #209)
- Docs: top-ups from 5, an account runs 10 requests at once, two stale troubleshooting rows dropped. (#340, #211)
- Release: 0.1.10. (#353)
Full commit list: v0.1.9...v0.1.10
nodecode 0.1.9
nodecode 0.1.9, build 8c8dfdc: nodecode --version prints 0.1.9+8c8dfdc47.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode updates itself.
Highlights
- Sign in to nodecode.ai again.
/setupopens on the nodecode.ai sign-in, and a/modelssearch fornodecodefinds it. Cyber v1 lists its 128K context and per-token price. (#336, reverting #254) - Snapshots.
/snapshotsaves this organism's memory whole under a dated name;/snapshotslists them and switches to one in place. A checkpoint keeps the workspace's own bytes, and tool steps no longer pay for walks they do not need. (#235, #265, #263) - Resume a session.
nodecode resumepicks a session to open, andnodecode -ccontinues the newest one in this folder. (#244; asked for by @lightningRalf in #224) - A quiet message box. An empty message box is the blinking cursor alone, with no status or tip lines. (#331)
- Pictures in more terminals. Where the terminal speaks no kitty graphics, a picture draws as sixel, octants, sextants or half blocks, and it stays under the call that looked at it. (#255, #261, #266, #259)
- Skills are linked, not copied.
/import --linklinks a skill where it lives, and a cell reads itsSKILL.mdin place. (#229, #231) - Windows boots faster. An unmoved workspace starts no git, and
nodecode.exeruns on an SBCL runtime that maps its core instead of reading it whole. (#270, #332) - A nightly channel beside stable, for builds ahead of the next release. (#205)
Fixes
nodecode add,update,webandrollbackfind the running organism again (a 0.1.8 regression). (#240)- A Claude thinking block is never replayed to another provider. (#249)
- Windows: Shift+Enter inserts a newline, environment values outside ASCII work,
shand git start Git's own programs instead of its redirectors, a child inherits only its standard handles, and/backupworks. (#252, #198 by @tryingET, #262, #260, #267) - Copying a wrapped line puts it back together. (#221)
- The
/menu opens under the text you typed and only as the draft's first character; a bare/loginopens its choice again, outside the setup walk too. (#248, #253, #243; reported by @ogerets-glitch in #230) - A sign-in for a plan the account lacks now points to API credit top-ups. (#336)
- SQLite 3.54 keeps the store's fast query plan. (#214, by @tryingET)
- A hot-upgraded image names the release it runs. (#213)
- A program started as the organism before it stops is served, not lost. (#236; reported by @armchairfuturist-code in #226)
- A changed cell restarts from where it changed, not from the first one every time. (#257)
- Automatic eval watches run only known read forms. (#251)
- A kept definition carries the text its
($ "name")read. (#327) - The
ctrl+ffull screen hint shows only while the panel hides rows. (#210)
Smaller additions
@completes paths outside the workspace:~/,../and/. (#258; asked for by @lightningRalf in #223)- A command is its name; typed alone it answers its choices. (#239)
(system-prompt),(agents-md)and(soul-md)name the agent's own files. (#237)
Changed or removed
--sandbox,nodecode sandboxandnodecode secretsare held back until the jail ships: help lists none of them and the parser refuses them. A home marked by an earlier jailed run can still be read and released. (#336, #218)/importhas no--copy: skills are always linked. (#231)gateway offandgateway restartare refused from inside a session the gateway serves, instead of cutting that session off. (#233)- nodecode.ai is API credit only: the models manual and docs give Cyber v1's 128K context and per-token pay, with top-ups from 20. (#336, #330)
Under the hood
- Jail: the organism in an OS jail is in the tree, run by its tests, not offered yet. (#218)
- Cells: a made cell is its files; pin 6445619. (#232, #238)
- Client: a gateway client refuses
:store-pathbefore it reaches for a gateway. (#242, by @tryingET) - Generations: sealed generations are counted without decoding every manifest. (#225)
- CI and tests: the core suite runs on Windows, the release smokes use a non-ASCII environment value, test fixes. (#268, #256, #273, #269, #215 by @tryingET)
- Docs: pricing, cells, context and link fixes. (#330, #234, #228, #227, #222, #212, #207)
- Release: 0.1.9. (#337)
Thanks
- @tryingET: SQLite 3.54 keeps its query plan (#214), Unicode environment on Windows and the shell's session id (#198), a gateway client fix (#242) and a test fix (#215).
- @lightningRalf: asked for session resume (#224) and
@paths outside the workspace (#223). - @armchairfuturist-code: reported
nodecode rpcgiving up on a store whose owner just died (#226). - @ogerets-glitch: reported the bare
/logincrash (#230).
Full commit list: v0.1.8...v0.1.9
nodecode 0.1.8
nodecode 0.1.8, build c27e633: nodecode --version prints 0.1.8+c27e63333.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode updates itself.
Highlights
- Ask at the page. A turn can ask you a question in the web page or the desktop app and wait for your pick. (#185)
- A fuller web page. A Board of tasks (To do, Running, Needs you, Done), Ctrl+K command palette, Ctrl+P quick open, and Settings > Shortcuts to rebind any key. The Files view edits and saves files in syntax colours, and the message box records voice. (#184)
- Steer or stop helpers from a session's page, one at a time or all at once. A helper you steer answers with what you asked. (#194)
- MCP sign-in. Remote MCP servers sign in with OAuth. A server waiting on a browser sign-in, such as
npx mcp-remote URL, now fails in seconds and shows the sign-in link instead of hanging for minutes. (#202) - Make a cell by talking:
/cells new, or New cell in the Cells tab. (#158) - Guided setup:
nodecode gateway setupwalks you through a setup sheet step by step. Discord sets up from the bot token alone. (#150) - Start on a model with a prompt:
nodecode --model M -- PROMPT.--prompt-file FILE,@FILEand piped stdin give it the prompt too. (#151, #155) - Cron wakes a session on its own when something outside changes, such as a red CI run.
Fixes
- Anthropic: a session no longer fails every turn with
400 unexpected tool_use_idafter a cancel or restart. (#140, #187) - Stalled streams: a stream that stops sending content is cut after three idle timeouts, and an attempt that never sends any after fifteen. It retries or moves to the backup model. (#117, #138)
- A model stuck in a loop is cut and run again, never taken as its answer. (#118)
- A full
/tmpno longer fails every turn, and a failed write names its file. (#196) - An image over 2000 px a side or 5 MiB is shrunk to fit before it is sent. (#119)
- Terminal: behind tmux or screen the pane keeps its title, the cursor no longer flickers while the screen paints, and a long session opens faster. (#156, #180, #154)
editandwrite-filekeep a file's permissions. A backgrounded(sh ...)returns what its command printed, and output that isn't UTF-8 shows?instead of failing. (#130, #131, #161)- Several homes on one machine no longer delete each other's cached images. (#120)
- An update carries over a definition that moved to another file, and an install cleans up old releases nothing uses. (#165, #122, #164)
- A profile made from your settings keeps the cells the hub installed and the folder a pinned provider needs. (#109, #111)
- A models.dev address with a
${NAME}placeholder asks you for the value. (#116) - An eval runs on its own turn's model. (#153)
- Interrupting work can no longer leave a system library lock held. (#152)
Smaller additions
- Ctrl+Y selects transcript text from the keyboard. (#135)
- The guard asks Allow once or Deny before it refuses a call.
- The MCP tab shows one line per server, its tools folded out, with a search across them.
/channelspicks the Discord bot's channels, people and roles.nodecode web --printprints the page's link without opening a browser. (#157)nodecode addsays what it is waiting on, and names it when it gives up. (#125)(mcp:login NAME ADDRESS)finishes an MCP sign-in from another machine's browser.
Changed or removed
- The built-in JPEG decoder is gone. An oversized JPEG is shrunk with ImageMagick, ffmpeg or sips when one is installed, and otherwise sent as it is. (#204)
- The settings sheet, the cells sheet and
/generationsuse one layout at every width. A narrow window gets a slimmer side rail. (#204) /treeno longer marks cron fires, re-asks or steers, and the Konami code on the home mark is gone. (#204)
Under the hood
- Code: about 3,000 kernel lines cut with all tests passing (#142, #192, #204). The source moved to one
src/, with tools grouped by job (#145, #147, #148, #167). - Proofs: Lean proofs for the retry ladder, credential chain, context budget, self-edit hold and cell start deadlines, checked in every CI run (#136, #137, #138, #139, #143, #144).
- CI: Perf and Nightly jobs guard speed and memory on every change (#146, #149, #159, #160, #201).
- Tests and build tooling: #121, #123, #128, #129, #133, #134, #162, #172, #173, #197.
- Docs: the nodecode.ai/docs reference now lives in this repo, checked by CI (#178, #189).
- Cells: a hub clone follows its index pin (#114). The bundled cells pin moved 16 times (#115, #124, #132, #163, #171, #181, #182, #183, #186, #188, #191, #193, #195, #202, and two direct commits).
- Version bump (#200).
Full commit list: v0.1.7...v0.1.8
nodecode 0.1.7
nodecode 0.1.7, build 2629050: nodecode --version prints 0.1.7+2629050e1.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode takes it on its own.
Changes since v0.1.6
- version: 0.1.7 (#102) (2629050)
- cells: pin 45c8c6c (c1c7322)
- macos: a build lock from before the Mac last booted is taken over (#105) (a96e29a)
- term: the wheel scrolls the transcript on Termux, which drops any-event mouse tracking (#103) (97f6173)
- term: a shell follows the terminal between light and dark (DEC 2031) (#95) (28e00ba)
- context: every parent folder's AGENTS.md rides, the farthest first, past .git (#106) (4773010)
- cells: pin 20fe2ce (d81c885)
- cells: pin 0cbc438 (a30634a)
- security: a vulnerability is reported privately, through an advisory (#100) (42a80b7)
- shell: a boot still on its way names what it waits on, never asks whether an owner serves (#97) (e7753b0)
- upgrade: a release taken live starts the channels again once no turn runs (#90) (41c11a9)
- tui: a run shows its newest edit's diffs, not every edit's (#99) (ea77bf5)
- cells: pin 4581c28 (#98) (fc95d73)
- cells: pin 1f530ac (8b36f82)
- cells: pin 002369d (c274bd2)
- anthropic: a thinking-off refusal is the model's declaration, and the round goes again (#91) (890f645)
- cells: pin af6ef5b (f5ffe0b)
- Claude Code: no API-key prompt while its cell starts; a cold launch starts cells at once (#88) (4f9bddd)
nodecode 0.1.6
nodecode 0.1.6, build 30b22b0: nodecode --version prints 0.1.6+30b22b096.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode takes it on its own.
Changes since v0.1.5
- version: 0.1.6 (#87) (30b22b0)
- upgrade: 0.1.5 takes this release live (#86) (71f412c)
- naming: an answer holding a tool call names no session, and the namer reads the prompt quoted (#81) (6adf440)
- cells: pin 498455b (6f43d5f)
- readme: phones get a phone-shaped take of the demo (#80) (d16a237)
- tui: a call line too wide for its row keeps what it kept and its status (#78) (3cf5660)
- cells: pin 6ec677f (4093f2f)
- snapshot: a walk past its bound stages nothing; /tmp and system folders are no workspace (#83) (26eef0c)
- store: a write whose rollback fails no longer closes the store (#82) (75c1f8c)
- snapshot: a new session's first request no longer waits for a folder walk (#79) (1c99986)
- readme: the demo GIF shows today's TUI, in the Standard viewport (#76) (cfa3be2)
- tui: a call that kept a file is one teal line in its own place, its file from home (#77) (f7f81f5)
- cells: pin b6cd156 (3f999b3)
- tui: every dialog's footer paints its keys as caps, /models' too (#74) (7babf34)
- ci: a Discord bot must keep answering through an upgrade (#73) (5bf2b17)
- upgrade: no organism stays on the build before, one gateway per home (#72) (6cf038d)
nodecode 0.1.5
nodecode 0.1.5, build 73e2e99: nodecode --version prints 0.1.5+73e2e99e9.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode takes it on its own.
Changes since v0.1.4
- version: 0.1.5 (#71) (73e2e99)
- rpc: a home never made is made, not a spawning setsid error (#61) (5f52073)
- anthropic: bind replayed thinking to the thinking ahead of it (#68) (ce52934)
- tests: /sessions age tests stop the clock at local noon (#70) (b82e563)
- eval: raw text (#>TAG) so a file body rides inside the form (#69) (5b8af1e)
- install: on Windows the PATH names a launcher folder, so a window opened before an update runs the new release (#65) (e327d0b)
- anthropic: thinking off in each model's own spelling (sonnet 5.5, opus 5.5 400s) (#60) (b04102f)
- engine: each provider in its own file under engine/providers/ (#66) (6a0cb4e)
- eval guard: one runaway verdict per climb, so a probe in the unwind cannot replace the named one (#67) (1e3794c)
- connection box: the verdict sits one blank under the title, not three (#64) (c80bec8)
- test: the newest words fade test no longer races the clock (#63) (173eca1)
- cells: pin c0ab005 (2a7712f)
- harness: sh :timeout, package-export hints, refusal hold (Lean-proved), cron notice clears (#58) (5c93702)
- docs: src/README.md is a short contributor primer (#59) (4778738)
- tui: a settled run shows the diffs its workspace snapshots took (#41) (10fc748)
- update: a window whose PATH predates the update is told why it still runs the old release (#57) (c26725a)
- snapshot: exclude nested snapshot storage from workspace captures (#55) (5814391)
- engine: a write-file receipt says when the text ends without a newline (#56) (9a328d9)
- shell: say which session each shell is on, in $XDG_RUNTIME_DIR/nodecode/shells/.json (#52) (282affa)
nodecode 0.1.4
nodecode 0.1.4, build d99362e: nodecode --version prints 0.1.4+d99362e73.
Install:
curl -fsSL https://nodecode.ai/install.sh | sh
irm https://nodecode.ai/install.ps1 | iex # Windows PowerShell
A running nodecode takes it on its own.
Changes since v0.1.3
- version: 0.1.4 (#51) (d99362e)
- engine: one failed request no longer blinds a turn to images, sh runs bash, an escape the reader drops refuses the snippet (#50) (76bd604)
- README: a phone-width ARC-AGI-3 token chart (ece409b)
- watch: never watch eval-status, eval-await or eval-interrupt (0c9f4ac)
- release: release-publish.sh is executable again; release-test gates every script the workflow runs (#46) (666bb2f)
- release: the run commits the site installers through a helper of its own (#45) (2522703)