拍板 Paiban

Paiban user manual

This manual covers everything: Banban (the device), Paiban Hub (desktop app), the Paiban mini program (WeChat) and the cloud relay. On first use, read sections 1–4 in order; look up the rest when you need it.

The Hub and the device show Chinese text for now; Chinese labels are given in quotes where you need to find them.


1. What Paiban is

AI agents such as Claude Code and Codex keep stopping to ask "may I run this command?" or "may I edit this file?". Paiban sends those questions to Banban on your desk: it lights up and looks at you expectantly; click to approve, tilt to deny. When the job is done it shows a happy face. You no longer have to watch the terminal.

Part What it is Where
Banban Small desk device: 1.47" screen, one button, motion sensor, an RGB light Waveshare ESP32-S3-LCD-1.47B + 3D-printed case
Paiban Hub Desktop app: receives events from each agent, forwards them to Banban and sends your decision back Windows (portable zip)
Paiban mini program WeChat mini program: account, Wi-Fi setup for Banban, reminders, ask a question, bind computers WeChat
Cloud relay Forwards messages when the computer and Banban are on different networks Azure, Hong Kong
Claude Code / Codex / Qwen / Kimi / Gemini
        │ hooks (local)
        ▼
   Paiban Hub (PC) ── LAN / cloud relay ──▶ Banban
                                             ▲ Bluetooth
                                     Paiban mini program

2. What you need

3. Installing

The latest versions are on the project site and under Releases.

3.1 Flash the firmware

First time, flash the full image paiban-firmware-v*-merged.bin (16 MB, includes the partition table):

pip install esptool
esptool.py --chip esp32s3 --baud 921600 write_flash 0x0 paiban-firmware-v0.5.1-merged.bin

To update later, flash -app.bin at 0x10000; Wi-Fi, reminders, settings and account binding are kept:

esptool.py --chip esp32s3 --baud 921600 write_flash 0x10000 paiban-firmware-v0.5.1-app.bin

If the computer does not see the board, hold BOOT while plugging in USB to enter download mode. Press RST or replug afterwards.

3.2 Install the Hub

  1. Download paiban-hub-v*-win-x64.zip and unzip it somewhere permanent (e.g. D:\paiban-apps\PaibanHub).
  2. Run PaibanHub.exe. If Windows says it protected your PC, choose "More info → Run anyway" (the app is not code-signed yet).
  3. The first run adds a Start menu shortcut and starts with Windows by default (can be turned off in Settings).

Updating: quit the Hub (tray icon → right-click → 退出 / Quit), overwrite the whole folder with the new version and start it again. Settings and login live in %APPDATA%\拍板 Hub and are kept.

3.3 Mini program

Until the mini program is published, import miniapp/ from the repo into WeChat DevTools and use "Preview" to open it on your phone. Accounts and the cloud relay need WeChat Cloud (see miniapp/README.en.md).

4. First-time setup

  1. Power Banban: the screen shows a setup QR code and the light breathes white.
  2. Wi-Fi from the mini program: "我的 → 添加设备" (Me → Add device), scan the code on Banban's screen (or pick BANBAN-xxxx from the list). Enter the Wi-Fi name and password and tap "测试连接" (Test) first: Banban really tries to connect and tells you whether the password is wrong, the network was not found, or the signal is too weak.
  3. Finding the computer: on the same Wi-Fi, the Hub broadcasts on the LAN every 2 seconds and Banban connects by itself; the dot in the top-left of its screen turns green.
  4. Not found? The router may isolate devices from each other (guest networks often do). In the mini program choose a manual computer address and enter the address shown on the Hub's overview page (e.g. 192.168.1.20:8765).
  5. Connect an agent: in the Hub, "接入 agent" (Connect agents) → "接入" (Connect) next to Claude Code or another client.
  6. Try it: on the Hub's overview page, "测试审批" (Test approval). Banban shows an approval; click to approve.

5. Connecting agents

One click on the Hub's "接入 agent" page. The Hub writes hooks into each client's config file, backs it up first, and "撤销" (Undo) removes only the lines Paiban wrote — your own configuration is untouched.

Client Config file Approvals Notes
Claude Code ~/.claude/settings.json Full: approve / deny on Banban takes effect; "hand back" asks in the terminal as usual Background runs (claude -p) have no prompt: set PAIBAN_HEADLESS_APPROVE=1 before starting and edits and commands go to Banban for approval
Codex ~/.codex/hooks.json Full After connecting, type /hooks in Codex once and trust Paiban's hooks
Qwen Code ~/.qwen/settings.json Full
Kimi Code ~/.kimi-code/config.toml Block only: deny on Banban stops the step; after approving, Kimi's own prompt may still appear Works best with --yolo. Read-only commands do not bother you
Gemini CLI ~/.gemini/settings.json Block only Same as Kimi

Other programs can use the Hub too:

# send a notification
curl -X POST http://127.0.0.1:8765/notify -d '{"title":"Backup done","body":"12 GB","agent":"nightly"}'
# ask for approval and wait: allow / deny / defer (defer = handed back or timed out)
curl -X POST http://127.0.0.1:8765/approve -d '{"agent":"deploy","summary":"Ship to production","detail":"v2.3.1","timeout":120}'

6. Using Banban

6.1 One button plus motion

The screen is used sideways with the USB port on the right. BOOT is the only button.

Screen Click Double-click Long press Gesture
Clock / Agents / Info Next page Previous page Do not disturb (Info page: setup QR) Face down = do not disturb; Banban reacts to taps, shakes and being picked up (see 6.7)
Play mode New trick Back to clock Back to clock Tilt to roll, shake to make it dizzy, tap three times for heart eyes
Approval Approve Deny Hand back to computer Level first, then tilt right about 20° and hold 1 s = approve, left = deny
Confirm account binding Accept Reject — Right = accept, left = reject
Reminder Done — Snooze 10 min Shake = snooze
Notification Dismiss / next Clear all — —
Answer Next page Close — —

After 60 s without input the screen dims (Banban gets sleepy); approvals and reminders wake it. On battery it saves more: dim after 30 s, screen off after 3 min; a button press, pick-up, tap or approval wakes it at once (see 6.8).

How tilt-to-approve avoids accidents: after an approval appears, Banban must first rest level and still for a moment before tilting counts; you then tilt it (about 20° by default) and hold steadily for 1 s (any wobble, or a recent shake or tap, restarts the timer); only left/right tilt counts, not tipping forward/back (e.g. picking it up to read); after one decision it must return to level before tilting works again. In the mini program, "设置 → 倾斜灵敏度" (tilt sensitivity) offers sensitive (15°, 0.8 s), medium (20°, 1 s) and stiff (28°, 1.3 s); you can also switch tilt off and use the button only.

6.2 Four pages

6.3 Faces and lights

Face Meaning Light
Blank stare, occasional blink Idle faint teal
Squinting and nodding An agent is working breathing blue
Big hopeful eyes Waiting for your approval fast amber
Sweating Approval about to time out fast amber
Happy Task done green
Tears Error breathing red
Sulking You denied —
Asleep Do not disturb / dimmed off
Grey eyes with a question mark Cannot find the computer —
— Reminder ringing breathing purple

6.4 Approvals

6.5 Notifications, reminders, ask a question

6.6 Do not disturb

Long press BOOT on the clock page, lay Banban face down, or switch it on in the mini program. The light stays off and notifications do not pop up; approvals still show (otherwise the agent would hang).

6.7 Banban's mood

Banban has moods, so its idle face is no longer the same all day:

The mini program's home page shows Banban's current mood. Needs firmware 0.7 and Hub 0.4 or later.

6.8 Power saving (battery)

Mini program "设置 → 省电" (Settings → Power saving) has three choices: save on battery (default), always save, never save.

Plugged into a computer Saving
Dim 60 s idle 30 s idle; CPU down to 80 MHz, 10 frames/s
Screen off never 3 min idle: backlight off, display asleep, light off, deeper Wi-Fi power save (messages arrive a few hundred ms later)
Wakes on button, tap, shake, pick-up; approvals, reminders, notifications, answers same

Below 3 % battery for 2 minutes Banban goes into deep sleep to protect the battery; after charging, press BOOT to wake it.

7. Paiban Hub

Closing the window minimizes it to the tray (or quits, if you change that in Settings). The tray icon reflects the state — not running, waiting for a device, device online, approval waiting; hover for details, right-click for a test notification or to quit.

7.1 Overview ("概览")

7.2 Connect agents ("接入 agent")

See section 5. Each card shows whether the command was found, the config file, the approval capability and notes; "打开位置" (Show) opens the config file in Explorer.

7.3 Account ("账号")

Log in / out of the cloud relay and manage the account's devices — see section 9.

7.4 Activity ("动态")

The last 500 events: agent events, approvals, devices connecting and leaving, errors, filterable by approvals / devices / problems.

7.5 Settings ("设置")

Setting Default Meaning
Cloud relay on Only when logged in; off = LAN only
Relay server official address Rarely changed; changing it requires logging in again
Port 8765 Used by agent hooks and Banban; after changing, rewrite each client
Approval time 90 s 15–570 s; then handed back to the computer
Send Kimi / Gemini actions for approval on Off = notifications only
Approve on the computer when no device is online off On = the Hub window shows the approval when Banban is offline
System notifications on Windows notification for approvals when the window is in the background
Default agent for questions Claude Code Used when none is picked in the mini program; if it is not installed, the first installed one
Command per agent claude -p, codex exec --skip-git-repo-check -, gemini, qwen, kimi --print Used by "ask a question"; the question goes to stdin, the answer is read from stdout
Appearance follow system light / dark
Start with Windows on Starts in the tray
Close to tray on

8. Mini program

Page What it does
设备 (Device) Current Banban's status, pending approvals (approve on the phone too), agent list, latest notifications; demo buttons (see Banban react without a computer); play mode; switch between devices
提醒 (Reminders) Add / edit / delete reminders, written to Banban
问一句 (Ask) Ask the agent, with history
我的 (Me) WeChat login, avatar and nickname, device list (rename, switch, remove), computers & cloud relay, usage stats
Settings (Me → device settings) Brightness, rotate 180°, time zone, play mode, tilt to approve, invert tilt, face-down DND, DND, calibrate "upright", Wi-Fi, cloud relay, re-detect pins, reboot, factory reset

The mini program talks to Banban over Bluetooth, so the phone needs to be nearby (about 10 m).

9. Different networks: the cloud relay

Work laptop + Banban at home, a laptop on a phone hotspot, the future 4G model — all use the cloud relay. Full steps and the security model are in the cloud relay guide. In short:

  1. Log in the computer (once per computer): Hub "账号 → 登录" shows a QR code; scan it with the mini program under "我的 → 电脑与云端中转 → 扫码绑定电脑".
  2. Bind Banban (once per device): "绑定到账号" on the Hub's Account page, or in the mini program after Wi-Fi setup; confirm on Banban.
  3. From then on it picks the route by itself: LAN on the same Wi-Fi, the relay otherwise, never asking twice.
  4. Log out / unbind: Hub "账号 → 登出"; the phone can unbind computers and devices remotely.

The relay runs several replicas: when it is updated, connections move to another replica within a second or two, Banban does not show a disconnect, and approvals sent meanwhile are delivered afterwards.

10. Updating, resetting, migrating

11. Troubleshooting

Banban keeps saying "正在找拍板 Hub" (looking for the Hub) - Is the Hub running (icon in the tray)? - Same Wi-Fi? Guest networks and AP isolation block the broadcast → enter the Hub address manually. - The first time, Windows Firewall asks whether PaibanHub may use the network: allow "Private networks".

The agent asks me, but Banban does nothing - Does "接入 agent" show the client as connected? Codex needs /hooks trust once. - Is Banban in do-not-disturb? (Approvals still show, but the light stays off.) - Does the Hub's activity page show the event? If not, click "重新写入" (Rewrite).

Wi-Fi test says the network was not found: Banban only supports 2.4 GHz; give the 2.4 GHz band its own name on dual-band routers.

Tilt works the wrong way round: mini program "设置 → 倾斜方向反过来" (invert tilt), or "校准正放" (calibrate).

"Ask" says the command failed: does that agent's command in Hub settings run in a terminal? e.g. echo hi | claude -p.

"Ask" stays at "thinking" or says not logged in: the command-line Claude Code / Codex must be logged in once in a terminal; the desktop app's login does not carry over.

Battery shows "未检测到" (not detected): normal without a battery; with one, use "重新识别引脚" (re-detect pins).

Cloud relay issues: see the cloud relay guide · FAQ.

12. Data and privacy