goose v1.56.0, released on 23 October, changes what runs your agent’s scripts in code mode. The old runtime, PCTX on top of Deno and V8, is gone. In its place is a small JavaScript runtime that goose owns, built on Boa, a JavaScript engine written in Rust.
Code mode lets the model write a short script that calls several tools in one go, instead of making one tool call per turn. goose is an open-source agent with a CLI and a desktop app; we reviewed it earlier.
What changes for the model
Per PR #12952, code mode keeps progressive discovery and batching through three tools: list_functions, get_function_details and execute_javascript. That last one replaces execute_typescript, and goose no longer generates TypeScript types. Discovery now returns the original JSON schemas. Scripts define async function run() and call tools with await tools.call(name, arguments) using the exact goose tool names.
The PR also removes PCTX’s execute_bash and the disclosure modes and their settings. The normal developer shell is still there, and the CLI and desktop app still render saved execute_typescript calls from old sessions.
The sandbox
- Each run gets a fresh worker context, with runtime limits, timeouts and cancellation.
- At most four workers run at once, across all sessions.
- Console output and return values share a 1 MB cap, and error output is capped too.
- The runtime “has no direct filesystem, shell, network, or package access.” Tool calls keep goose’s existing permission and filtering rules.
Cancellation and timeouts wait up to one second for cleanup, and the PR notes that a synchronous Boa built-in can keep running on its worker thread after that.
The numbers, with a caveat
The PR author ran three synthetic workflows twice per runtime with gpt-5.6-sol at medium effort. Boa passed all six runs; PCTX passed five, with one hitting the turn limit. Median tokens fell from 14,166 to 8,040, and median time from 30.5 to 14.3 seconds. Matched debug builds shrank the CLI binary from 373.9 MB to 239.7 MB and cut a clean build from 111.9 to 83.7 seconds.
That is a small demo, and the PR calls the build timings single local measurements. It shows no regression, not a general speedup.
Also in 1.56
The release can resume failed or cancelled delegate subagents, caps them with GOOSE_MAX_CONCURRENT_SUBAGENTS, links subagent sessions in the UI, reports session status over OSC 7501 in the CLI and adds a Windows installer for the desktop app.
Practical takeaway
Update to 1.56. If you have recipes or prompts that name execute_typescript, or that leaned on bash inside code mode, switch them to execute_javascript and plain tool calls. If you build goose from source, you no longer need V8 or its ICU pins, and the PR links earlier reports of V8 initialization crashes it should put to rest.

The Campfire
No commentsNobody has pulled up a log by this one yet. Be the first to say what you make of it.
Held for the desk. It appears after a look.
Add a comment