Group of 5 Nothing to try yet Notable
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
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.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
Whether `isAppifactReplToolEnabled()` defaults to true or false cannot be determined, since its code lives outside this bundle.