01 The hardware

SofaNode. Your agent, on the desk.

A palm-sized round touchscreen that gives your coding agent a face. State at a glance, voice in, spoken replies out, approvals with a swipe — and it works with Claude Code, GitHub Copilot Chat and local models on your own GPU, because it drives VS Code itself rather than one vendor's agent.

Shipping now $99 · FREE SHIPPING · 6 MONTHS OF SOFACODE INCLUDED

02 What it is

The deck, made physical.

Your agent runs on your own machine, in VS Code. The SofaNode sits on the desk beside it and shows you what it is doing — and lets you answer without touching the keyboard. It is the same live deck the SofaCode app shows on a phone, as an object you can glance at.

State at a glance

The ring reads READY, WORKING, NEEDS YOU — with a live waveform while you talk. It follows whichever VS Code window has your keyboard, so it is always showing the session you are actually in.

Tap. Talk. Hold. Sent.

Tap to dictate straight into your editor, hold to submit. No wake word, no cloud assistant, no push-to-talk app to alt-tab into.

Replies out loud

Answers come back spoken through its speaker — pick the voice, or turn it off. Tap to interrupt mid-sentence, the way you would interrupt a person.

Approve with a swipe

A permission prompt lands as a card on the dial: swipe up to allow, down to deny. First answer wins across every device, so the phone stays in your pocket.

Chat & tasks on a circle

Swipe up for the live transcript, again for the session's task list — the running task pulses and reads brightest, finished ones tick off and dim. Scroll by turning the bezel like a watch dial.

Six machines, one dial

The rim scrubs the machine's VS Code windows; roll past either end and it switches machines. Desktop, laptop, the box in the closet — up to six, each with its own credentials.

03 Why it is different

One device. More than one agent.

Every other desk gadget for AI coding is welded to a single vendor: it speaks one company's API, so it works with one company's agent, and the day you switch you own a paperweight. The SofaNode does something simpler and far more durable — it drives VS Code. Whatever agent lives in your editor is an agent the Node can run — including models running on your own hardware, with no API key and no internet at all.

Shipping

Claude Code

Full support today: live transcript, permission prompts on the dial, session switching, task lists, spoken replies.

Shipping

GitHub Copilot Chat

Full support today, including the model picker — the Node can drive whichever model your Copilot subscription offers.

Shipping

Local models — your GPU

Run Llama, Qwen, DeepSeek, Mistral, Gemma or anything else in LM Studio and drive it from the Node, through our own LM-CODE extension. No API key, no token bill, no data leaving the building.

Planned

OpenAI Codex

Dedicated support is on the roadmap. The protocol and the device do not change for it — only the adapter on the VS Code side does.

By design

Whatever is next

New agents arrive as editor extensions now. Because the Node talks to the editor, adding one is a daemon update — not new hardware.

 SofaNodeSingle-vendor desk gadgets
Agents supported Claude Code + Copilot Chat + local models, Codex planned One, whichever the vendor sells
Runs models on your own hardware Yes — LM Studio, via our LM-CODE extension No — their cloud, their key, their bill
Where your code lives Your machine. Always. Usually the vendor's cloud
What it talks to VS Code on your LAN A hosted API
Works offline / air-gapped LAN Yes — with a local model, nothing leaves the room No
If you switch agents Same device, keeps working New device
Extra subscription for the hardware None — your SofaCode plan covers it Often a second subscription on top

The SofaNode needs an active SofaCode subscription — $5/month or $50/year, with a week free to try it — because the Node is a face for the app, not a replacement for it. What it does NOT need is a second subscription of its own: it counts as one of your paired devices on the plan you already have, however many machines and devices you pair. No account on our servers either — pairing is between your device and your machine.

04 Everything it does

The full list.

Push-to-talk dictation

Tap and speak; the text lands in the agent's prompt on your machine. Hold to submit. Speech is transcribed by your daemon, on your hardware.

Spoken replies, interruptible

Replies read aloud in a voice you choose. A tap stops it dead. Turn read-aloud on or off per session from the chat view.

Permission cards

Every tool approval your agent asks for can be answered on the Node — allow, deny, with the command visible. Answered once, everywhere.

Live transcript

The conversation, on the dial. Tap to jump to newest, hold to toggle reading aloud, turn the bezel to scroll back.

Task checklist

Watch the agent's plan tick off in real time — running task bold, done struck through. Swipe up twice from the deck.

Session switching

Swipe left for the sessions on the machine, the ones wanting you first — up to twelve in the list, five on screen as you scroll. Hold on one and the Node follows it — ring, transcript, tasks and spoken replies — and stays there until you go back to your keyboard. Turn the rim on the deck for a blind flick between windows, and roll past the end to switch machines.

Nothing gets missed while you listen to something else

Running several agents at once, only the session you're on is read aloud — the rest would be noise. When one of the others stops, whether it finished or it wants you, it holds its last reply and raises a dot. Swipe left, tap to hear it, tap again to clear. On a row with a dot, that's what a tap does; a hold still switches to it. Turn the voice off and the dots go with it — they're an offer to play something.

Follow-focus

Whichever VS Code window has your keyboard is the one the Node shows. Alt-tab and the device follows you — until you pick a session on the Node itself, which holds it there while you're away from the desk. Take the keyboard again and it goes back to following you.

QR pairing, no cable

First boot shows a QR. Scan it from the SofaCode app and every machine you have paired — remote domains included — lands on the Node at once, each with its own revocable token. No camera? Dial the 8-digit code instead.

Wi-Fi without a computer

Join a network from the device itself: pick the SSID, dial the password on a character wheel, or use the phone-based softAP portal. Timezone too.

Works away from home

With remote access on, the Node roams — wss with a pinned certificate and the same mutual-HMAC handshake as the apps. A token never crosses the internet in the clear.

Updates itself

Firmware checks for updates at boot and offers Check update in its own menu. Updates never wipe your pairing. A browser flasher is there for the first flash.

Chimes that mean something

A sound when the agent needs you, another when it finishes. Volume per-sound, or silent — it is a desk object, not an alarm clock.

Themes that match

EMBER, the warm amber palette, is matched between the app and the device, so the deck in your hand and the deck on your desk read as one product.

Real power management

Screen-sleep on a timer if you want it (it ships always-on); wake with the function button, or turn on wake-on-tap in the menu. Hold the function button to power down to microamp standby. Battery percent and charge state on the deck.

Your own models, your own GPU

Point VS Code at LM Studio with our LM-CODE extension and the Node drives models running on your own hardware — Llama, Qwen, DeepSeek, Mistral, Gemma, GLM and friends, with full tool-calling. Several machines' worth of models de-duplicate into one picker, and it fails over between servers. No API key, no per-token bill, and a setup that keeps working with the internet unplugged.

Nothing routed through us

There is no SofaCode server in the path. The Node talks to your daemon on your network. We could not read your code if we wanted to.

06 Specifications

What is inside.

ProcessorESP32-S3, dual-core Xtensa LX7 @ 240 MHz
Memory16 MB flash · 8 MB octal PSRAM
Display240 × 240 round IPS LCD, GC9A01
TouchCapacitive, CST816 — taps, holds, four-way swipes
InputRotating bezel dial · function button
AudioES8311 codec, microphone + speaker, full duplex
WirelessWi-Fi 802.11 b/g/n, 2.4 GHz
PowerUSB-C · internal LiPo · microamp deep-sleep standby
SecurityMutual-HMAC challenge-response on every link; per-device revocable tokens; pinned certificate for remote
UpdatesOver-the-air from the device menu, plus a Chrome-based web flasher
Works withClaude Code · GitHub Copilot Chat · local models via LM-CODE + LM Studio · Codex planned
RequiresAn active SofaCode subscription ($5/mo or $50/yr, one week free) · VS Code on Windows, macOS or Linux with the SofaCode extension + daemon
FirmwareOpen update channel — every unit gets every release
Warranty1 month against manufacturing defects

07 Setting it up

Powered on to paired, in about four minutes.

1 · Set up the machine side

Install the SofaCode extension in VS Code and run the daemon installer. One command; it is the same setup the phone app uses.

2 · Give the Node Wi-Fi

Power it on. Pick your network on the device and dial the password, or join its setup hotspot from a phone. Timezone at the same time.

3 · Scan the QR

The Node shows a code. Open the SofaCode app → Settings → Set up a SofaNode and scan it. Every machine you have paired lands on the device at once.

4 · Start talking

Tap the screen and speak. That is the whole loop — dictate, hold to submit, listen to the reply, swipe to approve.

No SofaCode account is created for the device, and the Node never talks to us — pairing binds it to your own machine. Full setup notes ship in-app on both Android and iOS.

08 Get one

SofaNode — $99, shipped free.

$99

FREE SHIPPING WORLDWIDE · 14-DAY RETURNS

Includes 6 months of SofaCode free — a 6-month subscription code ($30 value) arrives with your order confirmation, for Google Play or the App Store, your pick. One code per Node.

The Node runs on a SofaCode subscription — $5/mo or $50/yr after your free months, one week free either way. See plans

In stock

SofaNode × 1$99.00
ShippingFree
Total$99.00

Paid through PayPal — card or PayPal balance, no account needed for cards. We never see your card details. Orders are packed in small batches; you get tracking by email when yours goes out.

In the box

  • SofaNode, assembled and flashed with the current firmware
  • USB-C cable
  • Quick-start card — pairing in four steps
  • Firmware updates for the life of the device, over the air
  • 1-month warranty against manufacturing defects

Before you buy

  • You need an active SofaCode subscription — $5/month or $50/year after a one-week free trial. The Node is a face for the app; one plan covers every device and machine you pair, with nothing extra for the hardware.
  • You need VS Code on a machine you control, with the SofaCode extension and daemon (both free).
  • You need Claude Code or GitHub Copilot Chat — the Node drives your agent, it does not include one.
  • 2.4 GHz Wi-Fi. The Node is an ESP32 and does not join 5 GHz-only networks.

Are you an ambassador?

If someone sent you here, put their code in the box — it takes money off your order and credits them for the sale. Want a code of your own? It pays 10% of every sale it brings in, and your audience gets a discount with it — ask us and tell us where you post.

Ships worldwide from stock, free. Returns accepted within 14 days in original condition, and a 1-month warranty against manufacturing defects — see terms. Questions before ordering: get in touch.