当前版本Current release0.10.0

VibeWand

如意魔棒

One wand to command them all.

一个旋钮、手柄、遥控器,或者就用键盘,再加一句话,操作 Mac 上的各种 AI 工具。

A dial, a game controller, a remote or just the keyboard, plus a spoken sentence, for driving the AI tools on your Mac.

  • Codex
  • Claude
  • DeepSeek Harness
  • WorkBuddy
  • iTerm2
  • Safari
  • Chrome
  • 微信WeChat
  • 飞书Feishu

还有 iTerm2 里的 Claude Code、Codex、OpenCode,以及 Edge、Brave、Firefox、Opera、Vivaldi。

Also Claude Code, Codex and OpenCode in iTerm2, and Edge, Brave, Firefox, Opera and Vivaldi.

macOS 26 以上 · M 系列芯片 · 约 104 MB

macOS 26 or later · M-series Mac · about 104 MB

Read with a dial, edit and dictate with a controller, confirm with a remote / 用旋钮阅读、用手柄编辑与听写、用遥控器确认执行
示意图:用旋钮阅读,用手柄编辑与听写,用遥控器确认执行。
Illustration: read with a dial, edit and dictate with a controller, confirm with a remote.

为什么Why

Vibe coding 的大部分时间,
其实不在打字。

Most of vibe coding
is not typing.

读回复、翻会话、换模型、说一句话,然后等。这些事一只手就够了。VibeWand 把它们放到一个旋钮或手柄上,人可以靠在椅背上干活。

工具越来越多,每个都有自己的会话列表、模型菜单和快捷键。VibeWand 不替代其中任何一个,只把它们收到同一组动作后面:在哪个应用里都是同一个旋钮读、同一个键说、同一下切换,活儿还是你选的那个软件干。统一的是入口,不是功能。

You read a reply, flip between chats, change the model, say a sentence, and wait. One hand is enough for all of that. VibeWand puts it on a dial or a controller so you can lean back while you work.

The tools keep multiplying, and each has its own chat list, model menu and shortcuts. VibeWand replaces none of them. It puts them behind one set of motions: the same dial reads, the same button listens and the same press switches in every app, and the work is still done by the software you chose. What is unified is the way in, not the features.

能做什么What it does

读、说、切、改、令。

Read. Speak. Switch. Remap. Command.

01

读Read

转旋钮或推摇杆滚动对话。输入框里有字时,同一个动作改成移动光标。

Turn the dial or push a stick to scroll the conversation. Once the draft has text in it, the same motion moves the cursor instead.

02

说Speak

按住麦克风键说话,松开后文字出现在输入框里,不会替你发送。可以用自带的识别,它用你手里那个设备的麦克风录音:系统听写或你自己的语音 API,能填自己的词表;或者在本机运行的 SenseVoice,不用密钥也不用联网。也可以继续用 Typeless、豆包这类输入法。

Hold the microphone button and talk. When you let go, the text is in the composer, and nothing is sent for you. Use the built-in recognition, which records from the microphone of the device you are holding: macOS dictation or your own speech API, both of which take your own vocabulary, or SenseVoice running on this Mac with no key and no network. Or keep using an input method such as Typeless.

03

切Switch

按一下打开会话列表,转动选择,再按确认。长按调推理强度、换模型。双击切换 macOS 应用。

Press once for the chat list, turn to choose, press to confirm. Long-press for reasoning effort and models. Double-press to switch macOS apps.

04

改Remap

每个按键的单击、双击、长按都能在设置里重新分配,每种设备各存一套。

Every button's press, double press and long press can be reassigned in Settings, and each device keeps its own layout.

05

令Command

按住命令键说一句话,它替你找到、打开,或者在弹出的菜单里调好:

Hold the command key and say a sentence, and it finds it, opens it, or sets it in the menu that opens:

“切到 Codex 里讨论麦克风的那个会话”“打开 Runtime.swift 那个标签页”“强度调到最低”
“Switch to the Codex chat about the microphone”“Open the Runtime.swift tab”“Set the effort to the lowest”

模型由你选:DeepSeek、OpenAI、Anthropic、本机模型或任何兼容的地址,配好就能用;也可以作为插件跑在你自己装的 DeepSeek Harness 上,在那里看每段对话、配模型。

The model is yours to choose: DeepSeek, OpenAI, Anthropic, a local model or any compatible address. It works as soon as one is set up, and can instead run as a plugin of a DeepSeek Harness you installed yourself, where each conversation can be read and models are set up.

VibeWand 0.8.1 演示模式下的真实悬浮面板与语音条截图 Actual VibeWand 0.8.1 overlay and speech bar in Demo mode
VibeWand 0.8.1 实际运行窗口截图,使用演示模式。
Actual VibeWand 0.8.1 window, captured in Demo mode.

每个键现在做什么,
面板上写着。

What each button does right now is on screen.

屏幕上有个悬浮面板,告诉你当前每个键会做什么。嫌占地方可以收成一条,展开和收起的按钮始终在同一个位置。

A floating overlay shows what each button will do right now. It collapses into a thin bar when you want it out of the way, and the button that expands and collapses it never moves.

支持的设备Devices

旋钮、手柄、遥控器,
或者就用键盘。

A dial, a controller, a remote,
or just the keyboard.

VibeKey

VibeKey

接入方式Connection
USB 接收器,内置协议USB receiver, built-in protocol
实测设备Tested with
Ulanzi VibeKey(AU05)Ulanzi VibeKey (AU05)

手柄Controller

接入方式Connection
USB 或蓝牙,macOS 自动识别USB or Bluetooth, detected by macOS
实测设备Tested with
Sony DualSense(PS5 手柄)Sony DualSense (PS5)

遥控器Remote

接入方式Connection
需要导入 HID 配置Needs an imported HID profile
实测设备Tested with
小米蓝牙遥控器 2 ProXiaomi Bluetooth Remote 2 Pro

没有设备也行。键盘上六组组合键各代表一个按键,任何键都能按一下录下来,自定义键盘的扩展键也行;实体的自定义键盘还没有试过。

No device needed. On the keyboard six key combinations stand for the buttons, and any key, a custom keyboard's extra keys included, is recorded by pressing it; a physical custom keyboard has not been tried.

几个设备可以同时连着。在哪个上面按键,面板和按键布局就跟到哪个,不用进设置切换。蓝牙手柄闲置十来分钟会自己关机,设置里有个“保持手柄唤醒”的开关。

Several devices can stay connected at once. Press a button on one and the overlay and button layout follow it; there is nothing to switch in Settings. A Bluetooth controller powers itself off after about ten idle minutes, so Settings has a “Keep the controller awake” switch.

VibeWand 是独立项目,与 Ulanzi、Sony、小米及其他设备厂商没有隶属、合作、赞助或背书关系。产品名称与商标归各自所有者。设备图为示意渲染,不是产品照片。

VibeWand is an independent project. It is not affiliated with, sponsored by or endorsed by Ulanzi, Sony, Xiaomi or any other device maker. Product names and trademarks belong to their owners. Device images are illustrative renders, not product photographs.

支持的应用Apps

同一组动作,
用在每个应用里。

One set of motions,
in every app.

程序Program 滚动阅读Scroll 切换会话Switch chats 换模型Change model 调推理强度Set effort 听写Dictate
Codex
✓✓✓✓✓
Claude
✓✓✓✓✓
DeepSeek Harness
✓✓✓✓✓
WorkBuddy
✓✓任务tasks✓—✓
Claude Code · Codex · OpenCode在 iTerm2 里in iTerm2
✓✓✓✓仅 CodexCodex only✓
浏览器BrowsersSafari、Chrome、Edge、Brave、Firefox、Opera、VivaldiSafari, Chrome, Edge, Brave, Firefox, Opera, Vivaldi
✓✓标签页tabs——✓
微信 · 飞书 / LarkWeChat · Feishu / Lark
✓✓聊天chats——✓

不在表里的应用也有三件事能用:听写跟着键盘焦点走,松开后文字就在输入框里;双击切换 macOS 应用;手柄触摸板移动指针和点击。想让别的应用也响应切换会话和换模型这两个键,在设置里添加它并指定快捷键。每个应用的适配都能在设置里单独关掉。

Three things work in apps that are not in the table. Dictation follows the keyboard focus, and the text is in the field when you release. A double press switches macOS apps. The controller's touchpad moves the pointer and clicks. To make another app answer the chat and model buttons, add it in Settings and assign the shortcuts. Each app's support can be turned off in Settings.

浏览器里没有模型可换,同一个键改为跳到地址栏。微信的聊天控件读不到,会话键只是打开它自己的搜索,选择结果还没有在真实应用里验证过。应用的名称和图标是各自所有者的商标,这里只用来说明兼容性;VibeWand 与它们没有隶属、赞助或背书关系。

A browser has no model to change, so the same button jumps to the address bar. WeChat's chat controls cannot be read, so the chat button only opens WeChat's own search, and choosing a result there has not been verified in the real app. App names and icons are trademarks of their owners, shown only to indicate compatibility; VibeWand is not affiliated with, sponsored by or endorsed by them.

Computer use

默认不截图,从不点坐标。

No screenshots by default. Never a coordinate click.

VibeWand 干的是 computer use 这类事:看懂前台应用的界面,替你操作它。它读的是 macOS 辅助功能给出的控件结构,和读屏软件拿到的是同一份。动作要么来自你按的键,要么来自你说的一句话。

What VibeWand does is computer use: it works out what the front app is showing and operates it for you. It reads the control structure that macOS Accessibility provides, the same one a screen reader gets. An action starts either from a button you press or from a sentence you say.

按键驱动Driven by buttons

已发布Released
谁决定做什么Who decides
你按的键和当前场景,规则固定,不经过模型。
The button and the current context, by fixed rules; no model is involved.
看什么What it looks at
前台是哪个应用;焦点在不在输入框、草稿空不空;会话、模型、强度列表开没开、有哪些候选;输入法候选和未知弹窗。
Which app is in front; whether focus is in a field and whether the draft is empty; whether a chat, model or effort list is open and what it offers; input-method candidates and unknown dialogs.
做什么What it does
按下按钮、调滑块;发快捷键和方向键;在对话区滚动;把指针停到候选上或点击;写入或粘贴文字;切换应用。
Presses buttons and adjusts sliders; sends shortcuts and arrow keys; scrolls the conversation; parks the pointer on a candidate or clicks it; writes or pastes text; switches apps.
作用范围Reach
上表里的应用和你加的规则。
The apps in the table above and the rules you added.

一句话驱动(命令模式)Driven by a sentence (command mode)

已随 0.9.0 发布,配好模型后可用Ships in 0.9.0; usable once a model is set up
谁决定做什么Who decides
你配置的模型,从 13 个工具里选。窗口截图,以及插件模式下 Harness 自己的工具,要你打开才有。
The model you configured, choosing among 13 tools. A picture of the window and, in plugin mode, the harness's own tools are added only if you turn them on.
看什么What it looks at
应用、窗口和会话的标题;前台窗口里控件的类型、名称和状态;应用播报的状态行。
App, window and chat titles; the kind, name and state of the controls in the front window; the status line an app announces.
做什么What it does
查找并打开会话;打开应用自带的搜索并填词;切应用、打开文件或网址;按控件、发快捷键、选菜单项、往输入框里写字。
Finds and opens chats; opens an app's own search and types the keywords; switches apps, opens a file or URL; presses a control, sends a shortcut, chooses a menu item, types into a field.
作用范围Reach
任何读得到控件的应用,一次一个。
Any app whose controls can be read, one at a time.

不替你发送Nothing is sent for you

文字停在输入框里,回车由你按。命令模式默认只在删除、发送、提交、支付这类操作前问你;可以改成每一步都问,或者完全不问。

Text stays in the field, and Return is yours to press. By default command mode asks only before deleting, sending, submitting or paying; you can have it ask at every step, or not at all.

动作只发给按键那一刻的目标Actions go only to the target you pressed for

应用、窗口或焦点变了,动作作废。

If the app, window or focus has changed since you pressed, the action is dropped.

读结构,不读内容Structure is read, content is not

输入框只知道空不空;不读会话正文和文档,不截屏(除非你为命令模式打开窗口截图),不往密码框里写字。终端没有控件,只读光标旁的几行来找提示符,归约成状态就丢弃。

A field is known only as empty or not. Conversation text and documents are not read, no screenshot is taken unless you turn on the window picture for command mode, and nothing is typed into a password field. A terminal has no controls, so only the few rows next to the cursor are read to find the prompt, reduced to a state and dropped.

默认没有命令行和文件读写No shell and no file access by default

配置不执行脚本,模型够不到工具表以外的东西。插件模式下你可以把 Harness 自己的工具交给它,其中有命令行和文件,由 Harness 的沙箱按你选的权限档位管着。

Configuration runs no scripts, and the model cannot reach anything outside its tool list. In plugin mode you can hand it the harness's own tools, a shell and files among them; the harness's sandbox holds them at the permission mode you chose.

安装Install

三步开始用。

Three steps to start.

下载Download

需要 macOS 26 以上和 M 系列芯片。解压后把 VibeWand.app 拖进“应用程序”并打开。第一次打开会出现引导,带你走完权限、设备、语音输入和命令模式,每一步都可以跳过。

Requires macOS 26 or later on an M-series Mac. Unzip, drag VibeWand.app into Applications and open it. The first launch shows a guide that walks you through permission, your device, voice input and command mode; every step can be skipped.

这个版本是临时签名,没有做 Apple 公证。首次打开如果被 macOS 阻止,在“系统设置 → 隐私与安全性”里允许,见 Apple 的说明。

This build is ad-hoc signed and not notarized by Apple. If macOS blocks the first launch, allow it under System Settings → Privacy & Security; see Apple's guide.

手动做的话By hand

  1. 在“系统设置 → 隐私与安全性 → 辅助功能”里允许 VibeWand。没有这个权限它既看不到输入框也发不了按键。
  2. 接上设备。VibeKey 需要先退出 Ulanzi Studio,两者不能同时占用接收器。
  3. 没有设备也可以先看看:“设置 → 开发者 → 演示模式”。
  1. Allow VibeWand under System Settings → Privacy & Security → Accessibility. Without it, the app can neither see the composer nor send keys.
  2. Connect your device. For the VibeKey, quit Ulanzi Studio first; the two cannot share the receiver.
  3. No device yet? Try Settings → Developer → Demo mode.

隐私Privacy

没有服务器,不需要账号。

No server. No account.

设备输入和配置都在本机处理。听写用外置输入法时,它只替你按住 Fn;用内置识别时,录音只留在内存里,系统听写能离线就离线,SenseVoice 始终在本机识别,语音 API 模式会把录音发到你自己填的地址。密钥存在 macOS 钥匙串里,导出配置不会带上。听写的文字只写进输入框,发不发由你决定。

命令模式默认开启,但在你配好模型之前什么都不做,也不联系任何服务。配好以后,你说出的命令、应用和会话的标题,以及操作界面时前台窗口控件上的文字,会发给你自己选的模型服务;输入框和文档的内容不会,除非你打开窗口截图:那张图上是窗口当时的样子。每条命令的过程记录在本机,14 天后删除。

Device input and configuration stay on your Mac. With an external input method VibeWand only holds Fn for you. With built-in recognition, audio stays in memory; macOS dictation runs on device when it can, SenseVoice always does, and API mode sends audio to the endpoint you entered. Keys live in the macOS Keychain and are never part of an exported configuration. Dictated text goes into the field and no further; sending it is up to you.

Command mode is on by default, and until you set up a model it does nothing and contacts no service. After that, the words of your commands, the titles of apps and chats, and the labels of controls in the front window while the interface is operated are sent to the model service you chose yourself. The contents of fields and documents are not, unless you turn on the window picture, which shows the model the window as it is. What each command did is recorded on your Mac and deleted after 14 days.