New AppifactRepl tool for building artifacts via a JavaScript REPL#
A new AppifactRepl tool runs JavaScript against an Artifact's data (a REPL, or read-eval-print loop) but is currently gated off for most users
Unclear Whether isAppifactReplToolEnabled() defaults to true or false cannot be determined, since its code lives outside this bundle.
What
- A new tool called
AppifactReplruns a full Node.js REPL (a read-eval-print loop, meaning it executes a whole JavaScript program and returns the result) against an Artifact's document store, viaclaude.use("db"),claude.use("files"), andclaude.use("assets"), instead of making one Artifact store call at a time. It also supportsclaude.see()for attaching images or text to the tool's result, and can run a skill's own SDK script instead of the built-in one. - Internally it spawns a child process (running
node scripts/appifact_sdk.js --repl -) in a sandbox, and its output is scrubbed before being returned. - The tool is wired into the permission system, the always-allowed tool list, tool-name resolution caching, and file-read tracking. A permission-check helper adds a special case for it: it is treated as disabled if there is a matching deny rule, or a permission rule whose content is only whitespace or asterisks.
- Writes made through
AppifactRepldo not trigger the automatic artifact-opening behavior that normal file writes do. - The tool is gated behind multiple conditions: it only activates when the app is launched with the
remote_coworkentry point, an internal flag (tengu_buzzing_lightning, defaulting to false) is enabled, and a further enablement check (isAppifactReplToolEnabled()) whose implementation lives outside the shipped bundle and can't be fully inspected from source.
Why
This is groundwork for a more powerful way to build artifacts step by step with real code instead of individual tool calls, but it is not yet available to regular users: it's gated behind a server-side flag and only activates in the remote_cowork context, so most users won't see or be able to use it yet.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.236
Query handling moved out of the REPL component
Both mention repl
-
v2.1.236
REPL streaming state moved into a single object
Both mention repl
-
v2.1.269
CLAUDE_CODE_ARTIFACT_REPL exported and allow-listed but never read
Both mention repl