cantino/mcfly
用 Rust 编写的 shell 历史搜索工具,替换 Ctrl-R,结合工作目录与上下文智能排序结果。
- Star
- 7,810
- Fork
- 203
- 未关闭 Issue
- 136
- 最近提交
- 2个月前
这是什么?
McFly 用全屏的反向历史搜索替换 shell 默认的 Ctrl-R,排序时会结合当前工作目录和最近执行过的命令。排序由一个在运行时工作的小型神经网络完成,目标是让你想执行的命令尽量排在前面。
它会把每条命令的退出状态、时间戳和执行目录记录到 SQLite 数据库中,同时保留原有的 shell 历史文件,不想用时可以随时停止。命令可以从两处同时删除,`dump` 子命令则支持按时间和正则过滤后以 JSON 或 CSV 导出。
支持 Zsh、Bash 3+、Fish 和 PowerShell 7+,可通过 Homebrew、MacPorts、WinGet、Zinit 或 Cargo 安装。亮色模式、Vim 键位、模糊匹配和忽略规则等可通过环境变量配置。
核心功能
- 01用全屏历史搜索替换 Ctrl-R,结果由小型神经网络排序。
- 02排序综合考虑工作目录、前置命令、执行频率、最近运行时间和历史退出状态。
- 03在 SQLite 中记录退出状态、时间和目录,同时保留原始 shell 历史文件。
- 04可同时从 McFly 数据库和 shell 历史文件中删除某条命令。
- 05支持以 JSON 或 CSV 导出历史,并可按时间和正则过滤。
适用场景
- 在同一个项目目录中快速找回之前执行过的复杂命令。
- 借助退出状态排序,避免重复执行过去失败的命令。
- 按正则和日期过滤后导出 shell 历史,用于审计或分析。
- 从 shell 历史中清除误输入的敏感信息。
快速上手
- 1
使用 Homebrew 安装 mcfly
brew install mcfly - 2
将初始化命令添加到 shell 配置文件末尾(此处为 Bash,Zsh 和 Fish 的版本见 README)
eval "$(mcfly init bash)" - 3
重新加载 shell 配置或重启终端
. ~/.bashrc
使用前须知
- 维护者表示没有足够时间维护该项目,正在寻找共同维护者。
- 项目方不维护 WinGet 安装脚本,也不保证其准确性和安全性。
标签
常见问题
- mcfly 是什么?
- 用 Rust 编写的 shell 历史搜索工具,替换 Ctrl-R,结合工作目录与上下文智能排序结果。 McFly 用全屏的反向历史搜索替换 shell 默认的 Ctrl-R,排序时会结合当前工作目录和最近执行过的命令。排序由一个在运行时工作的小型神经网络完成,目标是让你想执行的命令尽量排在前面。
- mcfly 可以免费使用吗?用的什么许可证?
- mcfly 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- mcfly 还在维护吗?
- 半年内有更新。mcfly 最近一次提交是在 2026年9月1日。
- mcfly 适合用来做什么?
- 在同一个项目目录中快速找回之前执行过的复杂命令。 借助退出状态排序,避免重复执行过去失败的命令。 按正则和日期过滤后导出 shell 历史,用于审计或分析。 从 shell 历史中清除误输入的敏感信息。
- mcfly 怎么安装和运行?
- 使用 Homebrew 安装 mcfly: brew install mcfly 将初始化命令添加到 shell 配置文件末尾(此处为 Bash,Zsh 和 Fish 的版本见 README): eval "$(mcfly init bash)" 重新加载 shell 配置或重启终端: . ~/.bashrc
- 在哪里获取 mcfly?
- 源代码和安装说明在 GitHub 上:https://github.com/cantino/mcfly
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个符合 POSIX 标准的 bash 脚本,用于在用户和 shell 级别安装并切换多个 Node.js 版本。
9.6万1.1万ShellMIT更新于 12天前
通用命令行模糊查找工具,可过滤任意输入列表,并为 Shell 脚本提供交互式终端选择界面。
8.4万5336GoMIT更新于 昨天
Warp 是一款从终端演化而来的智能体开发环境,内置编码智能体,也可接入你自己的 CLI 智能体。
6.6万5685RustAGPL-3.0更新于 昨天
一个更智能的 cd 命令,记住常用目录,几个按键即可跳转,支持主流 shell。
4万935RustMIT更新于 4天前