New GitHub & Cloudflare panels, token saver and usage dashboard

Your code. Your key.
Your approval.

VOID Workshop is a free, open-source desktop coding agent for Linux built on the Claude Agent SDK. It plans before it touches anything, shows a diff before every write, asks before every command, and stops at the budget you set. Bring your Claude plan, an API key or local Ollama models, and drive it from your phone with VOID Portal.

Agent-first, human-approved

Describe what you want in plain English. The agent does the legwork; you stay in charge of every change.

Pick a projectThe agent can only see that folder, plus directories you explicitly add.
Describe the taskPlain English. Follow-ups continue the same session.
Review the planRead-only exploration first. Nothing is edited until you approve.
Approve each actionA diff for every write; command, folder and reason for every command.
Inspect & keepAccept or reject each file, run tests, commit when you choose.

See exactly what will change

Every edit arrives as a unified diff before it's written. If the file changes on disk while you're deciding, the edit is refused, so your own work is never silently overwritten.

  • Proposed → applied → tested → committed: clear states for every file.
  • Per-file accept / reject restores the original content on reject.
  • Local Git checkpoints that never touch your branch or index.
  • Commits only when you click Commit. Never a push.
Approval dialog showing a unified diff for a proposed file change

Everything in one window

Plan, build, review and ship without leaving the app, and see exactly where your tokens go.

The mode picker: Ask before edits, Edit automatically, Auto and Plan mode

Four modes

Ask before edits, edit automatically, Auto inside the sandbox, or Plan mode: read-only, then a plan for you to approve. Shift+Tab cycles them, mid-task too.

GitHub panel showing a pull request and its conversation

GitHub panel

Sign in with a device code or a token, then browse pull requests, issues, workflow runs and releases, read the threads and comment. The token stays in your keyring.

Cloudflare panel listing Workers and Pages projects

Cloudflare panel

Paste an API token to see your Workers, Pages projects, R2 buckets, D1 databases and KV namespaces at a glance, read-only.

Token usage dashboard with daily usage for the last 30 days

Token saver and dashboard

On by default: compacts long sessions at 120k tokens and trims command output. The dashboard shows the last 30 days per model, and where the weight goes.

Built like the model is untrusted

Model output and repository content are treated as untrusted input. Approval is the first layer, not the only one.

⌘

Approval per action

Exact command, working directory, the agent's reason and what the command does (reads, writes, network, git, installs). Approvals are never remembered.

⛨

Bubblewrap sandbox

Agent commands can only write inside the project and can't reach the network unless you allow specific domains.

✕

Hard blocks

sudo, broad rm -rf, pushes, history rewrites, publishing, uploads, SSH, keyring access and attempts to touch the app's own config are refused outright.

⌖

Path canonicalisation

.., symlinks and ~ can't escape the project. SSH keys, cloud credentials, browser profiles and keyrings are always off limits.

⚿

Secrets stay secret

.env, private keys and credential files need explicit approval. Logs, history and the UI are redacted.

⏻

Never root, no telemetry

Refuses to run as root. No author server, proxy or analytics: the only destinations are the model provider you chose and, for VOID Portal, the relay you deployed yourself.

Your plan or your key. Honest numbers.

Use your Claude plan or an Anthropic Console API key stored in your desktop keyring, and switch with one click. VOID Workshop checks the credential source before sending a single request.

  • Per-task and daily limits (defaults: $1 and $3), plus turn and output-token caps.
  • Stops on credit exhaustion and never buys credits or switches billing.
  • Models come from the Models API for your key; none are hard-coded.
  • Pair it with a Console workspace spend limit for a hard cap.
Estimates, not a balance. Cost figures are estimated from the token usage the Agent SDK reports. Retries, caching, price changes and other usage in your organization all affect the real bill, and there's no API for an app to read your remaining credit. VOID Workshop says so in the status bar and links you to Console Billing.
The built-in code editor in the Nebula theme, syntax colours derived from the theme

A real editor, in your colours

Open any project file in the built-in CodeMirror editor, make a quick fix yourself, and hand the rest to the agent. Syntax highlighting is generated from your theme, so every theme, including the ones you make, gets matching colours.

  • Tabs, search and save, and a warning when the agent or another program changed the file on disk.
  • Multiple cursors, and undo history kept across project switches.
  • Sensitive files ask first before they open or save.

VOID Portal: your phone as a remote

The Android companion app. Start and queue tasks from anywhere, approve changes and commands (straight from the notification if you like), switch model, mode and account, and hear when a task is done, needs you, or the PC goes offline.

phone ──wss──► your relay ◄──wss── PC
└──── end-to-end encrypted, AES-256-GCM ────┘

VOID Portal home screen: PC online, active tasks and a pending approval
PC status, tasks, what needs you
Approving a file change with its diff on the phone
Approve with the full diff
A task conversation in VOID Portal
Follow and reply to a task
VOID Portal settings and theme picker
PC settings and themes

Run your own relay in five minutes

There is no shared relay: everyone deploys their own on a free Cloudflare account, so your traffic never passes through anyone else's server. The free Workers tier is plenty for one person.

Cloudflare accountSign up free and pick a workers.dev subdomain.
Deploy the Workerwrangler deploy from remote/relay.
Check itThe smoke test runs 18 checks against your relay.
Point Workshop at itSettings → VOID Portal (phone) → Relay.
Pair your phonePair a phone, then scan the QR code in the app.
# from your clone of the repository
$ cd remote/relay
$ npm install
$ npx wrangler login     # authorise wrangler in the browser, once
$ npx wrangler deploy    # → https://void-relay.<your-subdomain>.workers.dev
$ node test/smoke.mjs wss://void-relay.<your-subdomain>.workers.dev

# optional: in-app updates for VOID Portal (or delete the [[r2_buckets]] block in wrangler.toml)
$ npx wrangler r2 bucket create void-portal-updates

Then enter wss://void-relay.<your-subdomain>.workers.dev in Settings → VOID Portal (phone) → Relay. Lost a pairing code or a phone? Unpair the device in the same place and its key stops working. The full guide is in remote/README.md.

Make it yours

Seven built-in themes, a live colour editor with contrast warnings, and JSON import/export so you can share themes.

Click a theme to try it on this page.

Theme editor in the settings dialog

Install on Linux

Builds from source in a few minutes and installs for your user only. No root, no system files.

# 1. dependencies (Node.js ≥ 22.13, Rust ≥ 1.80)
#    Arch Linux
$ sudo pacman -S --needed base-devel nodejs npm rust git webkit2gtk-4.1 gtk3 libsoup3 \
    librsvg libayatana-appindicator openssl libsecret bubblewrap socat ripgrep
#    Debian / Ubuntu 24.04+ (plus Node.js 22 and Rust from nodejs.org / rustup.rs)
$ sudo apt install build-essential git libwebkit2gtk-4.1-dev libgtk-3-dev libsoup-3.0-dev \
    librsvg2-dev libayatana-appindicator3-dev libssl-dev libsecret-1-dev bubblewrap socat ripgrep

# 2. build and install to ~/.local
$ git clone https://github.com/M4S4T0-V01D/void-workshop.git
$ cd void-workshop
$ ./scripts/build.sh
$ ./scripts/install.sh

# 3. launch, then Settings → Sign-in & API key: sign in with Claude, paste a key, or pick Ollama
$ void-workshop
VOID Portalcd remote/android && ./gradlew :app:assembleRelease (JDK 17), install the APK on your phone, then pair it with your relay
Updategit pull && ./scripts/build.sh && ./scripts/install.sh
Uninstall./scripts/uninstall.sh (add --purge to delete history, settings and the stored key)
GuidesClaude plan · API key setup · Ollama · Billing & limits · Security model

Questions

The short answers. The guides in the repository have the long ones.

Is it free?

VOID Workshop and VOID Portal are free and open source (MIT). You pay only for the model you use: your Claude plan, Anthropic API usage on your own Console account, or nothing with local Ollama models. The relay fits in Cloudflare's free tier.

Does my code or my key go anywhere?

Only to the model provider you chose. There is no telemetry and no author server. Keys stay in your desktop keyring, and VOID Portal traffic is end-to-end encrypted through the relay you deploy yourself.

How is it different from Claude Code?

It runs the same Claude Agent SDK in a desktop window built around review: a diff before every write, an approval for every command, per-file accept and reject, a sandbox, spending limits, and a phone remote.

Which systems does it run on?

Linux (developed on Arch, works on Debian/Ubuntu and others with WebKitGTK 4.1). VOID Portal needs Android 8 or newer.

Can I use someone else's relay?

Don't: deploy your own. It takes a few minutes, it's free, and it keeps your traffic and availability in your hands.

Can I use the apps in my language?

Yes. VOID Workshop and VOID Portal speak the same 13 languages as this site. Both ask on first start; change it later under Settings → Appearance & language on the PC and Settings → Language on the phone. Translations live in src/i18n/locales and remote/android/app/src/main/assets/i18n, and fixes are welcome.