Repository navigation
Releases: CaoHaoran-Dev/RunProcess
Release list
RunProcess v3.5.0 Beta 1
⚠️ This is a pre-release (Beta) build.
It may contain bugs, unfinished features, or unexpected behavior that could affect your system or data.
Disclaimer
Use at your own risk. This software is provided "as is", without warranty of any kind, express or implied.
- Beta builds are intended for evaluation and testing purposes only. Do not use them in production or mission-critical environments.
- The developer is not liable for any data loss, system instability, or other damages resulting from the use of this pre-release software.
- Features may change, break, or be removed without notice.
- Please back up your important data before installing.
Installation Note
RunProcess is not notarized by Apple. On first launch, macOS may show a security warning. Go to System Settings → Privacy & Security and click Open Anyway.
Feedback
If you encounter any issues, please open an issue on GitHub.
⚠️ 这是预发布版本 (Beta)。
可能包含缺陷、未完成的功能,或可能影响系统或数据的意外行为。
免责声明
使用风险自负。 本软件按“现状”提供,不附带任何明示或暗示的担保。
- Beta 版本仅用于评估和测试目的。请勿在生产环境或关键任务中使用。
- 开发者不对因使用本预发布软件而导致的任何数据丢失、系统不稳定或其他损害承担责任。
- 功能可能随时更改、失效或被移除,恕不另行通知。
- 安装前请备份重要数据。
安装说明
RunProcess 未经过 Apple 公证。首次启动时 macOS 可能提示安全警告。请前往 系统设置 → 隐私与安全性,点击仍要打开。
反馈
如遇到问题,请在 GitHub 提交 Issue。
appcast-beta
update docs (#19) * Changed docs * Refactor output rendering, add truecolor ANSI, redesign Settings Output: - Replace SwiftUI Text + .textSelection with a custom NSTextView subclass (NonFocusableTextView) that never becomes first responder. Selecting text no longer steals keyboard focus from the input field. - Add full ANSI color support: 8/16/256 colors and 24-bit truecolor (38;2 / 48;2), plus bold, italic, underline, dim, reverse video. - Use SF Mono, disable soft wrapping, animate window width to fit the widest line (0.18s ease-in-out, capped at 1200pt). - Copy button now restores input focus after writing to the pasteboard. Settings: - Redesign to match macOS System Settings. - Sidebar uses outline SF Symbols in per-category colors. - Detail pane uses Form + Section with .formStyle(.grouped) on macOS 13+, falling back to plain Form on macOS 12. - Hero area with large colored icon, title, and subtitle per category. - Fixed 720pt width, adjustable height. Updates: - Move manual update check from Settings to the menu bar, bound to Cmd+U. - Sparkle's independent window now opens from a menu bar app by temporarily switching to .regular activation policy. Window: - Smooth width animation when output content width changes. i18n: - Add all new strings in en, zh-Hans, zh-Hant. * Add custom paths, run tools and apps by name - New Paths panel in Settings with two sections: Default Working Directory and Custom Paths. Users can add folders like /Applications or ~/bin, reorder them, and remove them. - Custom folders are appended to PATH, preserving the system PATH and any PATH set in ~/.zshrc. Homebrew tools like fastfetch are no longer lost. - Typing a .app name (e.g. keynote, Safari) launches it by name, case-insensitive. Command-line tools are left to zsh's PATH lookup. - README updated (en, zh-Hans, zh-Hant) for the Paths panel, configuration files, and the ⌘U shortcut. * Bump version to 3.4.0 * Update project.pbxproj * update docs
RunProcess v3.4.0
Added
- Custom Paths – New Settings → Paths panel. Add folders like
/Applicationsor~/bin, and their command-line tools and.appbundles can be run by name (fastfetch,keynote,Safari). Folders are appended to PATH, so your Homebrew install and~/.zshrcsettings are preserved. - Truecolor ANSI Output – Full 8/16/256-color and 24-bit truecolor support (
38;2/48;2), plus bold, italic, underline, dim, and reverse video. - Smooth Window Resize – The window width now animates (0.18s ease-in-out) to fit the widest output line, capped at 1200pt.
Changed
- Settings Redesign – Rebuilt to match macOS System Settings: colored outline icons in the sidebar, grouped sections via
Form, and a hero header per category. - Check for Updates – Moved from Settings to the menu bar, bound to ⌘U.
- Output Rendering – Replaced SwiftUI
Textwith a customNSTextViewsubclass. Selecting output text no longer steals keyboard focus from the input field. - Output Font – Switched to SF Mono. Soft wrapping is disabled; long lines scroll horizontally.
Fixed
- Focus Loss on Selection – Dragging to select text in the output area used to steal the keyboard focus. The input field stays focused now.
- Copy Output – The copy button restores input focus after writing to the pasteboard.
- Homebrew Tools After PATH Injection – Injecting custom paths no longer overwrites the PATH set in
~/.zshrc.fastfetch,node, and other Homebrew tools still resolve.
Migration
Nothing to migrate. Existing aliases.yml and history.yml continue to work. A new paths.yml is created on first use, empty by default.
Note
The app is not notarized by Apple. On first launch, right-click the app → Open → confirm.
Update packages are EdDSA-signed and verified before installation. Passwords and signing keys are never stored or transmitted.
新增
- 自定义路径 —— 设置新增「路径」面板。添加
/Applications、~/bin之类的文件夹,其中的命令行工具和.app可按名字运行(fastfetch、keynote、Safari)。文件夹追加到 PATH 末尾,Homebrew 和~/.zshrc的设置不受影响。 - 真彩色 ANSI 输出 —— 完整支持 8/16/256 色和 24 位真彩色(
38;2/48;2),以及粗体、斜体、下划线、暗淡、反显。 - 窗口宽度平滑动画 —— 窗口宽度自动适配最宽输出行,0.18 秒缓入缓出,上限 1200pt。
改进
- 设置界面重做 —— 对齐 macOS System Settings:侧边栏彩色线描图标、
Form分组卡片、每个分类顶部 hero 区。 - 检查更新 —— 从设置移到菜单栏,绑定 ⌘U。
- 输出渲染 —— 用自定义
NSTextView子类替代 SwiftUIText。框选输出文字不再抢走输入框焦点。 - 输出字体 —— 改用 SF Mono。关闭软换行,长行横向滚动。
修复
- 框选丢焦点 —— 之前拖选输出文字会让输入框失去键盘焦点,现在不会。
- 复制输出 —— 复制按钮在写入剪贴板后恢复输入框焦点。
- PATH 注入后 Homebrew 工具丢失 —— 注入自定义路径不再覆盖
~/.zshrc里的 PATH。fastfetch、node等 Homebrew 工具仍然可用。
迁移
无需迁移。现有的 aliases.yml 和 history.yml 继续有效。首次使用时会创建 paths.yml,默认为空。
说明
应用未公证。首次打开时右键点击应用 → 打开 → 确认。
更新包使用 EdDSA 签名,安装前会验证。密码和签名密钥不存储、不传输。
RunProcess v3.3.0
Added
- Automatic Updates – RunProcess now checks for updates in-app via Sparkle. Background checks, optional auto-download, and cryptographic signature verification of every update package.
- Check for Updates – New menu bar item under ⚡.
- Updates Settings – New Settings category showing the current version, a manual check button, and toggles for automatic checking and downloading.
Changed
- Build Number –
CFBundleVersionis now derived from the Git tag count: a plain integer, monotonically increasing, used by Sparkle for version comparison. - Info.plist – Added
SUFeedURLandSUPublicEDKeypointing to the appcast and the EdDSA public key.
Fixed
- Nothing in this release.
Migration
Nothing to migrate. Versions ≤ 3.2.1 do not include Sparkle and will not auto-update. Please download this version manually once; automatic updates work from the next release onward.
Note
The app is not notarized by Apple. On first launch, right-click the app → Open → confirm.
Update packages are EdDSA-signed and verified before installation. Passwords and signing keys are never stored or transmitted.
新增
- 自动更新 —— RunProcess 现在通过 Sparkle 在应用内检查更新。支持后台检查、可选的自动下载,以及每个更新包的加密签名验证。
- 检查更新 —— 菜单栏 ⚡ 下新增入口。
- 更新设置 —— 设置新增「更新」分类,显示当前版本、手动检查按钮,以及自动检查/下载开关。
改进
- 构建号 ——
CFBundleVersion改为从 Git tag 数量生成:纯数字、单调递增,供 Sparkle 比对版本。 - Info.plist —— 新增
SUFeedURL和SUPublicEDKey,指向 appcast 和 EdDSA 公钥。
修复
- 本版本无修复项。
迁移
无需迁移。≤ 3.2.1 的版本不含 Sparkle,不会自动更新。请手动下载本版本一次;从下一个版本起自动更新生效。
说明
应用未公证。首次打开时右键点击应用 → 打开 → 确认。
更新包使用 EdDSA 签名,安装前会验证。密码和签名密钥不存储、不传输。
RunProcess v3.2.1
Fixed
- Alias completion now inserts the expanded command instead of the alias name. The popup shows the full command as the main line and the alias as a subtitle, so you can see what will run before selecting.
Note
The app is not notarized by Apple. On first launch, right-click the app → Open → confirm.
修复
- 别名补全现在填入展开后的完整命令,而不是别名本身。补全项大标题显示完整命令,副标题显示别名,选中前就能看到会执行什么。
说明
应用未公证。首次打开时右键点击应用 → 打开 → 确认。
RunProcess v3.2.0
Added
- Aliases – Define short names like
gs→git status. Manage them in Settings → Aliases with add, edit, reorder, and delete. They rank first in the completion popup. - Alias Management UI – New Settings category with list view, inline controls, sheet editor, and name validation.
- ANSI Colors – Output from
git status,ls -G,grep --color, and others now renders with proper colors, including 256-color and true-color. - Color Settings – Toggle color rendering and pick a palette (Auto / Dark / Light). Existing output re-renders immediately when changed.
- In-app Help – Press ⌘/ or open from the menu bar. Sidebar-based help window styled like macOS Help Viewer.
- Full-text Help Search – Search matches both topic titles and their content, with snippets showing where the match was found.
- Startup Options – New Settings → Startup section: launch at login (macOS 13+) and hide window on launch.
Changed
- Storage Format – Aliases and history now use YAML (
aliases.yml,history.yml) instead of JSON. Easier to hand-edit with comments and multi-line strings. Existing data migrates automatically on first launch. - Path Escaping – Dragging files or using Tab completion now wraps paths in double quotes when needed (e.g.
"My File.txt") instead of backslash-escaping every space. - Settings Layout – Reorganized into categories: General, Appearance, Session, Working Directory, Sudo, Aliases, Startup.
- Unified Appearance – Frosted Glass / Liquid Glass / None now applies to the main window, Settings, Help, About, and the sudo password dialog.
- Path Handling – Quoted
.apppaths (e.g."/System/Applications/App Store.app") now trigger theopenprefix correctly. - Localization – Simplified and Traditional Chinese files re-saved as UTF-8 without BOM.
- Completion – Aliases appear before history and system commands in the popup.
- History Ranking – Uses frecency (frequency × recency) consistently for ↑/↓ navigation and search.
Fixed
- App window no longer closes immediately after launch
- Command timeout now actually terminates the full process group
- Session mode no longer crashes on reentrant queue access
- Settings and Help windows are reused instead of recreated on repeated menu clicks
- About window uses a standard title bar instead of a fully transparent one
- Adding a new alias no longer opens a blank sheet
Migration
Upgrading from 3.1.0 migrates your data automatically on first launch:
aliases.json→aliases.ymlhistory.json→history.yml
Your history and aliases are preserved. Old files are removed after a successful migration.
Note
The app is not notarized by Apple. On first launch, right-click the app → Open → confirm.
新增
- 别名 —— 定义
gs→git status之类的短名称。可在设置 → 别名里添加、编辑、排序、删除。补全里排最前。 - 别名管理界面 —— 设置新增分类,列表视图 + 悬停操作 + 弹窗编辑 + 名称校验。
- ANSI 颜色 ——
git status、ls -G、grep --color等的输出会带颜色显示,支持 256 色和真彩色。 - 颜色设置 —— 可开关颜色渲染,可选色板(自动 / 深色 / 浅色)。改动后已有输出立即重算。
- 应用内帮助 —— 按 ⌘/ 或从菜单栏打开。仿 macOS Help Viewer 的侧边栏式帮助窗口。
- 帮助全文搜索 —— 搜索同时匹配标题和内容,侧边栏显示命中片段。
- 启动选项 —— 设置新增"启动"分类:开机自启动(macOS 13+)、启动后隐藏窗口。
改进
- 存储格式 —— 别名和历史改用 YAML(
aliases.yml、history.yml),比 JSON 更适合手写:支持注释、多行字符串。旧数据首次启动自动迁移。 - 路径转义 —— 拖入文件或 Tab 补全时,含空格的路径用双引号包裹(如
"My File.txt"),不再给每个空格加反斜杠。 - 设置布局 —— 重新组织为分类侧边栏:通用、外观、会话、工作目录、Sudo、别名、启动。
- 统一外观 —— 毛玻璃 / 液态玻璃 / 无,现在应用到主窗口、设置、帮助、关于、sudo 密码框。
- 路径处理 —— 带引号的
.app路径(如"/System/Applications/App Store.app")现在能正确触发open前缀。 - 本地化 —— 简中和繁中文件重新保存为 UTF-8 无 BOM。
- 补全顺序 —— 别名排在历史命令和系统命令之前。
- 历史排序 —— ↑/↓ 导航和搜索统一用 frecency(频次 × 最近使用)排序。
修复
- 应用启动后窗口不再立即关闭
- 命令超时现在能真正杀掉整个进程组
- 会话模式不再因队列重入而崩溃
- 重复点击菜单时设置/帮助窗口被复用,不再重复创建
- 关于窗口改用标准标题栏,不再完全透明
- 新增别名时不再弹出空白窗口
迁移
从 3.1.0 升级的用户,数据在首次启动时自动迁移:
aliases.json→aliases.ymlhistory.json→history.yml
历史和别名不会丢失。迁移成功后旧文件会被删除。
说明
应用未公证。首次打开时右键点击应用 → 打开 → 确认。
RunProcess v3.1.0
New Features
- Command History Search – Press ⌘R to fuzzy-search the entire command history. Ranked by frecency (frequency × recency).
- Aliases – Define short names like
gs→git status. Aliases rank first in the completion popup. Editaliases.jsonin Application Support. - ANSI Colors – Output from
git status,ls -G,grep --coloris now rendered with proper colors. - In-app Help – Press ⌘/ or choose from the menu bar. Sidebar-based help window styled like macOS Help Viewer.
- Default Sudo – Optionally lock the main window's sudo toggle to "always on" in Settings.
- Sidebar Settings – Settings is now organized into categories (General, Appearance, Session, Working Directory, Sudo).
- Unified Appearance – Frosted Glass / Liquid Glass / None now applies to the main window, Settings, Help, About, and the sudo password dialog.
- Localization – English, Simplified Chinese, and Traditional Chinese are complete.
Bug Fixes
- Fixed command execution timeout not actually killing child processes
- Fixed a crash in session mode caused by reentrant
queue.syncinPersistentShell - Fixed compile error:
Processhas no memberspawnAttributes - Fixed the app window being too large on first launch
- Fixed Settings window being too small and cramped
- Fixed Frosted Glass not showing on auxiliary windows
- Fixed About window's title bar becoming fully transparent
- Fixed
CommandHistoryinstances not sharing state (now a singleton) - Fixed
SessionRegistrymemory leaks and fragile view-model lookup
Note
The app is not notarized by Apple. On first launch, right-click the app → Open → confirm.
新功能
- 命令历史搜索 —— 按 ⌘R 全文模糊搜索历史命令,按 frecency(频次 × 最近使用)排序。
- 别名 —— 定义
gs→git status之类的短名称,补全里排最前。编辑 Application Support 下的aliases.json。 - ANSI 颜色 ——
git status、ls -G、grep --color等的输出会带颜色显示。 - 应用内帮助 —— 按 ⌘/ 或从菜单栏打开。仿 macOS Help Viewer 的侧边栏式帮助窗口。
- 默认 Sudo —— 可在设置中把主界面的 sudo 开关锁定为"始终以 root 执行"。
- 分栏设置 —— 设置界面改为分类侧边栏(通用、外观、会话、工作目录、Sudo)。
- 统一外观 —— 毛玻璃 / 液态玻璃 / 无,现在应用到主窗口、设置、帮助、关于、sudo 密码框。
- 本地化 —— 英文、简体中文、繁体中文全部完成。
修复
- 修复命令超时没有真正杀掉子进程
- 修复会话模式下
PersistentShell队列重入导致的崩溃 - 修复编译错误:
Process没有spawnAttributes成员 - 修复应用首次打开时窗口过大
- 修复设置窗口过小、显得拥挤
- 修复辅助窗口毛玻璃不显示
- 修复关于窗口顶栏完全透明
- 修复
CommandHistory多实例状态不同步(改为单例) - 修复
SessionRegistry内存泄漏和脆弱的 view model 查找
说明
应用未公证。首次打开时右键点击应用 → 打开 → 确认。
RunProcess v3.0.0
New Features
- Session Mode – Optional persistent shell per window;
cd/exportpersist across commands. Only affects new windows - Multiple Windows – Each window is an independent session. New window via ⌘N or the menu bar
- Custom Working Directory – Configure the default directory for new windows. Falls back to home if invalid
- Three Appearance Modes – None, Frosted Glass, and Liquid Glass (macOS 26+). Unsupported options are hidden
- Hide on Deactivate – All windows hide when the app loses focus, matching Spotlight behavior
- Customizable Hotkey – Change the global show/hide shortcut in Settings
- Per-Window Sudo – Every sudo command prompts for a password. Password lives only in memory during execution
Bug Fixes
- Fixed input text rendering as pure black in dark mode
- Fixed sudo authorization being consumed after a single command
- Fixed naming conflict between the app's
Settingsenum and SwiftUI'sSettingsscene - Fixed settings and about windows being recreated on repeated menu clicks
- Fixed ⌘N and ⌘, not responding when a window is focused
Note
The app is not notarized by Apple. On first launch, right-click the app → Open → confirm.
新功能
- 会话模式 —— 每个窗口可选持久 shell,
cd/export跨命令生效。仅影响新窗口 - 多窗口 —— 每个窗口是独立会话。⌘N 或菜单栏新建
- 自定义工作目录 —— 可配置新窗口的默认目录,路径无效时回退到主目录
- 三种外观 —— 无、毛玻璃、液态玻璃(macOS 26+)。不支持的系统上选项会被隐藏
- 失焦隐藏 —— 应用失去焦点时所有窗口自动隐藏,行为类似 Spotlight
- 可自定义热键 —— 全局显示/隐藏快捷键可在设置中修改
- 单次 Sudo —— 每次 sudo 命令都弹密码框。密码仅在当次执行期间存在于内存
修复
- 修复深色模式下输入框文字为纯黑
- 修复 sudo 授权只能使用一次
- 修复
Settings枚举与 SwiftUISettings场景的命名冲突 - 修复重复点击菜单时设置/关于窗口被重复创建
- 修复窗口聚焦时 ⌘N、⌘, 无响应
说明
应用未公证。首次打开时右键点击应用 → 打开 → 确认。
RunProcess v2.2.0 - The Multi-line & i18n Update
New Features
- Multi-line Input: Added Shift+Enter support for multi-line command input; input field now supports mouse wheel scrolling with dynamic height up to 150px
- Auto open for .app: Automatically prepends open when detecting .app file paths (e.g., /Applications/Calculator.app → open "/Applications/Calculator.app")
- Global i18n Support: Full localization for English and Simplified Chinese; automatically adapts to system language preference
- Vertical Centering: Input field, icons, and buttons now perfectly vertically aligned with a fixed 44px height for cleaner UI
Bug Fixes
- Suggestion Panel Positioning: Fixed panel appearing at bottom-left corner; now correctly follows the input field
- CommandExecutor Crash: Resolved EXC_BAD_INSTRUCTION crash caused by thread race conditions and deadlocks
- Priority Inversion Warning: Eliminated QoS inversion warnings by unifying all async operations to .userInitiated priority
- Interactive Command Detection: Fixed false positives for piped commands (e.g., ls | less now executes correctly)
- TOCTOU Vulnerability: Replaced access() with stat() for secure file permission checking
- Sudo Password Detection: Improved error detection to avoid false positives with normal command output
Improvements
- Command Cache TTL: Reduced system command cache from 300s to 60s for faster new command discovery
- Output Size Limit: Added 10MB limit to prevent memory bloat from large outputs
- Status Bar Menu: Optimized with lazy loading for better performance
- SuggestionPanel: Cleaned up orphan window references and improved lifecycle management
- Error Messages: All error messages now fully localized and more user-friendly
Documentation
- Added formal English README with table of contents and anchor links
- Added complete Simplified Chinese README (Docs/zh-Hans/README.md)
- Updated Installation section with Releases download and build instructions
- Added notarization notice for first-time users
Tech Stack
- Swift + SwiftUI, 100% AI generated code (as always)
What's Next?
- More language support
- Command output copy-to-clipboard
- User-defined quick commands/bookmarks
Note
The app is not notarized by Apple. On first launch, right-click the app → Open → confirm to bypass Gatekeeper.
v2.1.0
🚀 新增
- 全局热键:
⌘⌥R一键显示/隐藏窗口,随时随地调用 - 浮动窗口:窗口改为浮动模式,悬浮在其它应用之上,体验类似 Spotlight
- 命令取消按钮:执行耗时命令时显示停止按钮,点击即可取消
- 清空输出按钮:输出区域右上角增加清空按钮,一键清除输出内容
- 候选列表图标美化:补全项图标由 Emoji 统一替换为 SF Symbol,视觉更统一
🐛 修复
- 历史导航逻辑:修复上下键翻历史时丢失当前输入内容的问题,现在按
↓到底可恢复原输入 - Sudo 密码安全:密码通过
standardInput传递,避免在进程列表中暴露明文 - Pipe 资源泄漏:命令执行完毕后正确关闭管道,避免文件描述符泄漏
- 历史查询并发安全:使用锁保护历史记录读写,避免多线程数据不一致
🧹 变更
- 菜单栏图标:仅显示 ⚡ 图标,更简洁
- 菜单项快捷键:"显示/隐藏窗口" 菜单项右侧显示
⌘⌥R - 底部提示精简:移除冗余图标,改为纯文字提示
- 窗口样式:显示红绿灯窗口控制(关闭/最小化/全屏),点击关闭仅隐藏窗口
- 依赖引入:新增
HotKey库用于全局热键注册(SPM)
📝 已知问题
- 交互式命令(如
vim、top)仍暂不支持
💻 系统要求
- macOS 12.4+
- Apple Silicon / Intel 均可
🔧 技术栈
- Swift 5 + SwiftUI
- HotKey (SPM)
- Process / Pipe / NSPanel
- NSVisualEffectView 毛玻璃
- 依然 100% AI 生成代码(人类提需求,AI 写代码)