Version: v0.6.94 — current development version
Qx is a background-resident productivity launcher inspired by Raycast. Press a global hotkey, search apps, files, clipboard history, and plugins — run what you need, then hide again.
Built with Tauri 2 · React · Rust. Runs on macOS and Windows.
Installing · Building from source · Features · Documentation · Repository layout · Plugins · 中文 · License
Main Search:
RSS Reader:
V2EX Plugin:
brew tap mcxen/qx
brew install --cask qx
brew upgrade --cask qx # laterPrebuilt packages are published on GitHub Releases and the CNB domestic mirror:
| Platform | Package |
|---|---|
| macOS Apple Silicon | .dmg → open Read Me, drag Qx to Applications · install.sh can remove quarantine |
| macOS (updater) | .app.zip → unzip into /Applications · first open: right-click → Open |
| Windows x64 | NSIS installer · WebView2 required |
Qx stays in the menu bar / system tray after setup until you summon it.
The macOS DMG includes a Read Me and an executable install.sh. The
normal path is to drag Qx.app onto the Applications shortcut. If Gatekeeper
still blocks the first launch, run bash install.sh from the mounted DMG; it
copies Qx to /Applications (or ~/Applications) and removes only the
com.apple.quarantine attribute. The equivalent manual command is:
xattr -dr com.apple.quarantine /Applications/Qx.appDefault hotkey (macOS): ⌥ Space — press again to hide.
Navigate with ↑ ↓ Enter · actions with ⌘K / Ctrl+K · leave with Esc.
Qx is maintained as an open-source project. If it saves you time, a small sponsorship helps cover signing, hosting, and continued development; there is never any pressure to contribute.
Requirements
-
Node.js ≥ 20
-
Rust (stable toolchain via
rustup) -
macOS 14+, or Windows 10/11 with MSVC + WebView2
git clone https://github.com/mcxen/qx.git
cd qx
npm install
npm run tauri dev # build + launch the desktop appnpx tsc --noEmit
npm run build
npm run check # architecture, docs, i18n, shell, island gates
cd src-tauri && cargo fmt --check && cargo check
# macOS arm64 app bundle
npm run tauri build -- --target aarch64-apple-darwin --bundles appArchitecture rules, Esc protocol, and UI conventions:
AGENTS.md.
| Area | What you get |
|---|---|
| Launcher | Apps, files, commands, aliases · fuzzy search · calculator |
| Clipboard | Text / image / file history · pin · paste at cursor |
| Capture | Screenshot & region record (MP4/MOV) · annotate · GIF |
| RSS | Feeds, folders, OPML, inline reading |
| QxAI | Streaming chat · OpenRouter / DeepSeek / custom BYOK |
| Plugins | Sandboxed runtime · zip import · marketplace · Workbench UI |
Also built in: weather · V2EX · macros · OCR · text tools · Home Dashboard · floating island · themes & shortcuts.
| Doc | Audience |
|---|---|
docs/README.md |
Contributor index (architecture, IPC, shell) |
public/doc/README.md |
Author / operator docs index |
public/doc/plugin-development-guide.md |
Plugin authors — start here |
public/doc/plugin-cli-protocol.md |
context.cli contract (local tools) |
docs/plugin-storage.md |
Plugin package vs durable data |
public/doc/release-workflow.md |
Tag & publish flow |
UI_SPEC.md |
UI tokens, shell layout, scrollbars |
AGENTS.md |
Working rules for humans and coding agents |
| Path | Contents |
|---|---|
src/ |
React shell and built-in modules (clipboard, RSS, capture, settings, …) |
src/plugin/ |
Plugin registry, runtime iframe, RPC, host ports |
src-tauri/ |
Rust core: marketplace, clipboard, capture, CLI / file / HTTP ports |
qx-plugins/ |
First-party marketplace plugins (Brew, Unsplash, Sysinfo, …) |
public/doc/ |
User- and author-facing guides |
docs/ |
Internal architecture for contributors |
scripts/ |
Checks, Raycast converter, packaging helpers |
AGENTS.md |
Agent / contributor working rules |
Install from Settings → Extensions (browse the marketplace, or Import a
.qx-plugin / .zip package).
Author a plugin under ~/.qx/plugins/<id>/ (manifest.json + index.js), or
publish to mcxen/qx-plugins.
# Convert a Raycast extension tree (optional)
node scripts/convert-raycast-extension.mjs /path/to/extension --out /tmp/qx-out --packagePrefer host ports over OS details: context.cli, context.http,
context.storage, with permissions declared in the manifest. See the
plugin development guide.
Marketplace examples: Brew (macOS CLI), Unsplash, Qx Bing Wallpaper, QxHeihe, QxCoolapk, QxWeibo, Sysinfo, QxGH, Calendar, V2EX.
Source-available — see LICENSE
(Qx Source-Available License v1.0).
-
Personal / non-commercial: view, study, modify, run
-
Commercial use, redistribution, or SaaS: written permission required
Raycast · Tauri · Geist · Everything (Windows file index)
Qx 是后台常驻的效率启动器(灵感来自 Raycast): 全局快捷键唤起 → 搜索 → 执行 → 再按同一快捷键收起。
技术栈:Tauri 2 · React · Rust,支持 macOS 与 Windows。
brew tap mcxen/qx
brew install --cask qx
brew upgrade --cask qx # 升级预编译包发布于 GitHub Releases,国内用户也可以从 CNB 国内镜像下载:
| 平台 | 包 |
|---|---|
| macOS Apple Silicon | .dmg → 打开 Read Me,将 Qx 拖到“应用程序” · install.sh 可移除隔离标记 |
| macOS(更新器) | .app.zip → 解压到 /Applications · 首次打开:右键 → 打开 |
| Windows x64 | NSIS 安装包 · 需 WebView2 |
安装后常驻菜单栏 / 托盘,按快捷键唤起。
macOS DMG 内含 Read Me 和可执行的 install.sh。通常将 Qx.app 拖到
“应用程序”快捷方式即可;如果首次启动仍被 Gatekeeper 拦截,请在挂载的 DMG
目录中运行 bash install.sh。脚本会把 Qx 安装到 /Applications(没有写入
权限时使用 ~/Applications),并且只移除 com.apple.quarantine 隔离标记。
也可以手动执行:
xattr -dr com.apple.quarantine /Applications/Qx.app默认快捷键(macOS): ⌥ Space(再次按下隐藏)。
导航:↑ ↓ Enter · 操作:⌘K / Ctrl+K · 返回:Esc。
Qx 由个人以开源方式持续维护。如果它对你有帮助,欢迎按能力赞助,用于 签名、服务器和持续开发;不赞助也完全不影响使用。
环境要求
-
Node.js ≥ 20
-
Rust(
rustup安装的 stable 工具链) -
macOS 14+,或 Windows 10/11(MSVC + WebView2)
git clone https://github.com/mcxen/qx.git
cd qx
npm install
npm run tauri dev # 构建并启动桌面应用npx tsc --noEmit
npm run build
npm run check # 架构 / 文档 / i18n / Shell / Island 门禁
cd src-tauri && cargo fmt --check && cargo check
# macOS arm64 应用包
npm run tauri build -- --target aarch64-apple-darwin --bundles app架构约定、Esc 协议与 UI 规范见 AGENTS.md。
| 模块 | 说明 |
|---|---|
| 启动器 | 应用、文件、命令、别名 · 模糊搜索 · 计算器 |
| 剪贴板 | 文本 / 图片 / 文件历史 · 置顶 · 光标处粘贴 |
| 截图与录屏 | 区域 / 窗口 · 标注 · MP4/MOV · 可转 GIF |
| RSS | 订阅、文件夹、OPML、应用内阅读 |
| QxAI | 流式对话 · OpenRouter / DeepSeek / 自定义 BYOK |
| 插件 | 沙盒运行时 · 压缩包 Import · 市场 · Workbench UI |
另含:天气 · V2EX · 宏 · OCR · 文本工具 · 主页 Dashboard · 悬浮灵动岛 · 主题与快捷键。
| 文档 | 读者 |
|---|---|
docs/README.md |
贡献者索引(架构、IPC、Shell) |
public/doc/README.md |
作者 / 运维文档索引 |
public/doc/plugin-development-guide.md |
插件作者总手册 |
public/doc/plugin-cli-protocol.md |
context.cli 协议 |
docs/plugin-storage.md |
插件包与持久数据分离 |
public/doc/release-workflow.md |
打 tag 发版流程 |
UI_SPEC.md |
UI 规范与滚动条等 |
AGENTS.md |
人与编码 Agent 的工作规范 |
| 路径 | 内容 |
|---|---|
src/ |
React 壳与内置模块(剪贴板、RSS、截图、设置等) |
src/plugin/ |
插件注册、iframe 运行时、RPC、宿主端口 |
src-tauri/ |
Rust 核心:市场、剪贴板、截图、CLI / 文件 / HTTP 等 |
qx-plugins/ |
第一方市场插件(Brew、Unsplash、Sysinfo 等) |
public/doc/ |
面向用户 / 插件作者的文档 |
docs/ |
贡献者架构文档 |
scripts/ |
检查脚本、Raycast 转换器等 |
AGENTS.md |
Agent / 贡献者工作规范 |
在 设置 → 扩展 中安装:市场 Browse,或 Import 本地 .qx-plugin / .zip。
开发目录:~/.qx/plugins/<id>/(manifest.json + index.js);也可发布到
mcxen/qx-plugins。
# 可选:转换 Raycast 扩展
node scripts/convert-raycast-extension.mjs /path/to/extension --out /tmp/qx-out --package业务只依赖宿主端口(context.cli / http / storage 等)与 manifest
权限,不要直接绑 OS 细节。详见
插件开发手册。
市场示例:Brew(macOS)、Unsplash、Bing 壁纸、QxHeihe 小黑盒、 QxCoolapk 酷安、QxWeibo 微博、Sysinfo、QxGH、日历、V2EX 等。
源码可用协议 — 见 LICENSE
(Qx Source-Available License v1.0)。
-
个人 / 非商业: 查看、学习、修改、运行
-
商业使用、再分发或 SaaS: 需书面许可
Raycast · Tauri · Geist · Everything(Windows 文件索引)