Repolode
cantino

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. 1

    使用 Homebrew 安装 mcfly

    brew install mcfly
  2. 2

    将初始化命令添加到 shell 配置文件末尾(此处为 Bash,Zsh 和 Fish 的版本见 README)

    eval "$(mcfly init bash)"
  3. 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 数据每日更新。

相关项目