✦ v0.1.8 · macOS · Cloudflare free plan

DeskWand Bot

Deploy to your own Cloudflare account on the free plan. Create a bot by saying what it should watch, and back up your data to your Mac at any time.

macOS 12 or later · Apple silicon. Windows is not released yet.

The whole service runs on Cloudflare's free plan

Sign in, choose a model and a message channel, then deploy. No Node.js, Git or Wrangler.

1

Sign in with Cloudflare

Authorize once in the browser. You do not type an account ID or create an API token yourself.

2

Pick a model and a channel

The default is Workers AI with Gemma 4 26B, so no model key is needed. The channel is Telegram or WeChat.

3

Review and deploy

The app creates the resources, uploads the release and activates the deployment. When a step fails, it says why.

ComponentFree allowance
Workers + Durable ObjectsCovered by the free plan. Conversations, tasks and bots all live there, on SQLite storage.
Workers AI10,000 neurons a day. The default model, Gemma 4 26B, needs no key.
R2Stores task artifacts, within the free allowance.
Your own model keyOptional. Everything runs without one.

When the daily allowance runs out, Workers AI pauses until 00:00 UTC (08:00 Beijing time). Nothing is charged automatically. On a paid plan it bills by usage.

Bots stay online and start from one sentence

No forms, no config files. Say what it should watch, and it gets a mission and a memory.

DeskWand Telegram WeChat

Create a bot that reads the tech news every morning and sends me anything big about models or chips. Skip the rest.

Created "Morning tech watch". It runs once a day at 00:00 UTC (8:00 Beijing time). First run is tomorrow.

Next day, 08:03

🤖 Morning tech watchOnly one thing worth your time today: a company released a new open model, with weights, training details and evals.

Also don't miss open model releases.

Noted. The next run will take that into account.

Morning tech watch Running
Mission
Read the tech news every morning and report only major changes in models and chips
Memory
Cares about models and chips No promotions or funding rumours Asked to include open model releases
Next run
Tomorrow, 00:00 UTC
Runs
6 so far
Telegramprogress edited in place · approval buttons · images and voice WeChatimages and voice · approvals by text command

Both channels receive images and voice. Whether an image can be read depends on the model: the default Gemma 4 26B handles images, and text-only models are marked in the app. WeChat has no buttons, so an approval becomes a text command naming the exact task and approval, such as 批准 t3 ap1 (approve, task 3, approval 1).

One channel is active at a time. Bots run quietly and only message you when there is something worth reporting. Wake-ups are 5 minutes to 30 days apart, at most 48 per UTC day. Three failures in a row pause the bot.

Built on pi-durable: every step is written to storage

Conversation records, model turns, tool calls and state are committed before they are shown, so an interrupted process resumes from the last commit.

Input → Model turn → Tool call → process interrupted here → Commit result
↩ Reopen the same storage and continue from the last commit, not from the start

Checkpointed runs

A task saves a checkpoint after every step. If the process restarts or gets reclaimed, it continues from the last checkpoint.

Retries do not run twice

Re-sending the same request returns the stored result instead of executing again. Tool calls and approval buttons work the same way.

Open source

pi-durable is published under MIT, so you can read it. The butler, each task and each bot map to a separate Durable Object.

Deploy and back up from the app

Export your data to your Mac at any time. Close the app and the cloud service keeps receiving messages and running tasks.

Data backup ~/Documents/DeskWand 备份
deskwand-backup-bot-20261104-131500.zip38 MB✓
deskwand-backup-bot-20261104-071500.zip37 MB✓
deskwand-backup-bot-20261103-191500.zip36 MB✓
Back up now Restore this one Open folder Automatic: every 6 hours · keep 5
  • A backup is one local zip: memories, conversations, tasks, bots and R2 artifacts.
  • Automatic backups run every 1, 6 or 24 hours and keep the last 1, 5 or 10 files.
  • A snapshot is taken before an overwrite, so you can return to it if a restore fails.

Backup files are not encrypted, so treat them like any sensitive file. A restore only works on the same cloud version and replaces all existing data. During export or restore, messages pause for up to 10 minutes.

MCP support adds more tools

Add servers from the catalog in the app; there is no config to write by hand. Read tools run directly; write tools ask you first.

GitHub Notion Linear Sentry DeepWiki Amap or any other remote MCP server
Tool typeDefault
Read toolsRun directly.
Write toolsSend an approval request first. If you decline, the agent takes another route.
A single toolCan be set to skip approval, require approval, or be disabled.

Remote MCP only (Streamable HTTP / SSE); local stdio servers started with npx are not supported. The Worker handles OAuth and renews tokens. Tokens are not part of a backup, so a restored deployment asks you to authorize again.

Download DeskWand Bot

Install the app first, then deploy the cloud service from it.

  • macOSdeskwand-bot-0.1.8-arm64.dmg.dmgDownload
  • WindowsComing soon

You need a Cloudflare account. Telegram needs a bot token from BotFather; WeChat connects by scanning a QR code after deployment.