Pult owns every serial console on your Mac — routers, dev boards, SBCs — and records everything they print. Claude Code, Codex and other agents read freely and type under your rules. Anything risky waits for your yes.
Connects in one click
You, at the keyboard. And the agents you work with. Pult sits between them and every board on your bench, so neither ever fights the other — or the port.
A daemon owns each port, so a hung screen can't hold it. Pult follows your adapter across replugs, frees ports other programs grabbed, and records every byte with its time.
Agents get the console as tools: read, search, wait for a prompt, run one command and get exactly its output. They learn each device's boot, prompts and flash layout from its history.
Reading is free. Anything else asks you first, right in the menu bar. Commands that can brick a board are refused outright. Freeze every agent with one switch.
An agent's command runs only when you aren't mid-line, and only if your rules say so.
dmesg, logread, cat /proc/mtd, printenv.mtd write, sysupgrade, saveenv, sf erase.
Type a command and see whether it would run, ask you, or be refused — right now, on that port, for that agent, and why.

Pult reads each console's history — bootloader, kernel, prompts, login, flash partitions, what ran and what was refused — and writes it up as a skill your agents load on their own.

Every console is recorded with receive times. Find the panic from Tuesday, with the lines around it — and see every agent action, every answer you gave, every port that came and went.

Nothing listens on a network until you switch it on — and one switch turns it all off.
esptool borrows a port while Pult keeps recording.
“The 5 GHz Wi-Fi on our test router keeps dropping clients.” Claude reads the console, finds radar hits on a DFS channel, asks before it changes anything, checks the fix, and leaves a note for the next agent. A real Claude Code session and the real Pult app; the router is a simulated OpenWrt board, so you can see every step.
A small Rust daemon does the work; the app and the pult command are two ways to talk to it.
$ pult exec router 'cat /proc/mtd' # one command, exactly its output [router · done · 83 ms] dev: size erasesize name mtd0: 00100000 00020000 "BL2" mtd1: 00080000 00020000 "u-boot-env" mtd4: 04000000 00020000 "ubi" $ PULT_AGENT=claude pult exec router 'mtd erase u-boot-env' [router · denied · denied by pack linux-destructive rule 1] # exit 3, instantly $ pult wait pi 'login: $' # blocks until the board gets there, across reboots $ pult attach router # your terminal, shared live — Ctrl-T for Pult's keys $ pult agents ✓ Claude Code connected as claude, with the pult-console skill ✓ Codex connected as codex, with the pult-console skill · Cursor not connected — pult agents connect cursor
FTDI, CP210x, CH34x, PL2303, ESP32 USB-Serial-JTAG, RP2040, ST-LINK, CDC-ACM. Pult tells look-alike adapters apart by serial number or USB socket.
U-Boot, Linux shells and logins, BusyBox, OpenWrt, Zephyr, NuttX, MicroPython. U-Boot input is typed one character at a time, so nothing gets dropped.
One TOML config that keeps your comments, recordings on disk, a journal you can read. Reset and bootloader sequences for ESP32, Arduino and RP2040.
Pult runs entirely on your Mac. It never phones home; this site sets no cookies.
Who wrote what, which rule decided, what you allowed and refused — searchable, per port.
One click and no agent writes anywhere until you thaw. Take the console back from any agent at any moment.
Signed with an Apple Developer ID and checked by Apple. The agent socket offers no admin verbs at all.
Yes. Pult 1.0 is free to download and use — no account, no trial, no limits.
No. Pult is a better screen on its own: ports that never get stuck, every console recorded and searchable, a console window per board, and the pult command for scripts. Agents are there when you want them.
Anything that speaks MCP. Pult connects Claude Code, Codex, Claude Desktop, Cursor, VS Code, Windsurf, Gemini CLI, opencode and Zed in one click, and agents without MCP can use the pult command from their shell.
Not through Pult. Commands that write flash or erase the bootloader environment are refused in every console context, whatever an agent's trust. Everything that isn't plainly read-only asks you first unless you decide otherwise.
At a login prompt the agent asks for the secret; you type it in Pult and it goes straight to the device. The agent never sees it, and it isn't recorded.
macOS 14 Sonoma or later, on Apple silicon and Intel. The app lives in the menu bar; its daemon starts at login.
Free for macOS. Two minutes from download to an agent reading your boot log.