Service eligibility and regional restrictions
PuppyIP serves only compliant overseas businesses and their authorized personnel. Proxy services are not available in mainland China. The service may only be used for lawful business activities outside mainland China. Use of this service within mainland China is prohibited.
Hosting a proxy IP or server overseas does not change these restrictions. The service must not be provided to end users in mainland China through relaying, forwarding, sharing or resale. Before use, read the Terms of Service.
Key Takeaways
- Think and Agent Skills now use the workspace from @cloudflare/computer; JavaScript execution also requires a configured backend and Worker Loader.
- @cloudflare/shell and Think's createExecuteTool stopped receiving development and support on October 20, 2026.
- Computer and Shell write to different tables. A new workspace may appear empty after switching, while the old data remains in its original table unless you separately remove it.
- Cloudflare's migration example reads the old Workspace and writes through the new workspace.fs; Think normally works under /workspace.
- Computer currently runs only inside Durable Object storage, with one workspace per object. Large-file writes to R2 and some older backends have no equivalent migration path.
Which Think projects are affected?
Cloudflare's October 20, 2026 announcement says Think and Agent Skills now use the workspace and filesystem tools from @cloudflare/computer. Projects that need JavaScript execution also have to configure a Worker Loader and the appropriate backend; constructing a Workspace alone does not provide exec.
The same announcement says @cloudflare/shell and Think's createExecuteTool are deprecated and will no longer be developed or supported from that date. If a project still imports those packages or calls that tool, inventory those paths before following the current Think tools documentation.
Why are old files missing from the new workspace?
The two packages use different Durable Object SQLite tables. The old Shell workspace with the default namespace uses cf_workspace_default; Computer uses a separate set of tables with vfs_ and _vfs_ prefixes. Changing packages does not copy files between them.
As a result, a new Think workspace may look empty on its first start even though the old Shell data remains in its original table. Data is deleted only if an application or operator separately removes the old table or associated R2 objects. An empty new workspace does not by itself mean the old files were erased.
Check storage and tool differences before switching
Computer must run inside a Durable Object and use ctx.storage. Cloudflare's migration guide lists no equivalent replacement for D1, Shell's custom SqlBackend or InMemoryFs. One Durable Object storage can currently hold one Computer workspace, and Shell's namespace option has no equivalent.
Computer stores file content in SQLite and does not yet write large files to R2; R2 mounts are read-only. Think's tools also change: list becomes ls, and the in-process bash tool is gone. exec is available only after you configure a Workspace backend. The old workspaceBash, createWorkspaceTools and Think workspace tools module have been removed without direct replacements.
Copy files through the workspace API, not by moving database rows
Back up the Durable Object data first, then confirm the old workspace namespace, directories, symlinks and R2 object scope. Cloudflare's example constructs both Workspaces on the same storage, walks the old directory and creates directories, links and files through the new workspace.fs. Do not insert rows directly into vfs_ tables: chunk hashes, revision counters and the change log must remain consistent.
Think and Computer tools generally work under /workspace, so the example copies an old /notes.md to /workspace/notes.md by default; set the copy root to / if the original paths must remain unchanged. If the old Shell workspace stored files in R2, use matching r2 and name or r2Prefix options during the copy so the bytes can be read.
How should you verify the copy and keep a rollback path?
Put the copy in a one-time migration step and store a Durable Object key that prevents it from running on every startup. If migration stops partway through, inspect which files already reached the new Workspace before recovery; do not blindly repeat writes or overwrite newer content.
In an isolated environment, check the file list, file contents, symlink targets, R2 large-file handling and configured backends. Keep the old data until these checks pass and the application reads the new workspace. If you later clean up, verify each exact R2 key and namespace first so you do not remove objects under a prefix shared by another workspace. Creation time, modification time and MIME type are not preserved exactly: Computer records copy-time timestamps and does not store a MIME type for each file.
Pricing, regions and verification limits
These Cloudflare migration and Think pages do not provide a fee, plan-eligibility or regional-availability matrix that applies to every account. Check the Cloudflare account, product plan and current pricing documentation for your own setup; do not infer free usage or universal availability from a code sample.
This guide summarizes Cloudflare announcements and documentation only. PuppyIP did not install dependencies, connect to a Durable Object, run the copy code or verify a live deployment for any account.
Sources
Frequently Asked Questions
Will switching to @cloudflare/computer automatically delete the old files?
No. Cloudflare says the packages use different tables and switching does not migrate the files. Unless you separately delete them, the old Shell data remains in its original table. An empty new workspace does not mean the old table was erased.
Is changing @cloudflare/shell to @cloudflare/computer enough to migrate?
No. In addition to API and tool changes, files must be copied from the old workspace to the new one. Check Durable Object storage, workspace count, R2 large files and old backend compatibility as well.
Can Think execute JavaScript or shell commands by default?
No. Cloudflare says the default Workspace has no execution backend and therefore no exec tool. Configure a Worker Loader and a suitable backend when needed; do not assume the old Think bash or execute tool is still available.
Can I delete the old table and R2 files as soon as the copy completes?
Verify files, links and application reads in the new workspace first. Before deleting R2 objects, check each exact key and namespace. Cloudflare specifically warns against deleting a shared prefix in bulk.
Can Computer keep using D1, a custom SqlBackend or InMemoryFs?
The current migration guide does not list replacements for those older configurations. Computer runs on Durable Object storage. Check whether your project depends on those backends instead of assuming a package change preserves their behavior.