Repolode
cantino

cantino/mcfly

作業状況を考慮してニューラルネットワークで順位付けする、全画面型の検索にCtrl-Rを置き換えるRust製シェル履歴検索ツール。

スター
7,810
フォーク
203
未解決の Issue
136
最終コミット
2 か月前

これは何?

McFlyは、シェルの標準的なCtrl-Rによる履歴検索を、作業ディレクトリや最近実行したコマンドをもとに結果を順位付けする全画面検索に置き換えます。順位付けにはリアルタイムで動作する小規模なニューラルネットワークを使うため、探しているコマンドが上位に表示されます。

各コマンドの終了ステータス、タイムスタンプ、実行ディレクトリをSQLiteデータベースに記録しつつ、通常のシェル履歴ファイルもそのまま保持します。コマンドは両方の保存先から削除でき、dumpサブコマンドを使えば、期間や正規表現による任意のフィルターを指定して履歴をJSONまたはCSVでエクスポートできます。

Zsh、Bash 3以降、Fish、PowerShell 7以降に対応し、Homebrew、MacPorts、WinGet、Zinit、Cargoからインストールできます。ライトモード、Vimキーバインディング、あいまい検索、無視パターンなどの設定は環境変数で行います。

主な機能

  • 01Ctrl-Rを、小規模なニューラルネットワークで順位付けする全画面型の履歴検索に置き換えます。
  • 02作業ディレクトリ、直前のコマンド、実行頻度、実行時期、過去の終了ステータスを考慮します。
  • 03終了ステータス、タイムスタンプ、ディレクトリをSQLiteに保存しつつ、通常のシェル履歴ファイルも保持します。
  • 04McFlyのデータベースとシェル履歴ファイルの両方からコマンドを消去できます。
  • 05期間や正規表現でフィルターしながら、履歴をJSONまたはCSVでエクスポートできます。

ユースケース

  • 同じプロジェクトのディレクトリで以前に実行した、長いコマンドや複雑なコマンドを探す。
  • 終了ステータスを順位付けに利用し、過去に失敗したコマンドを再実行しないようにする。
  • 正規表現や日付でフィルターして、監査や分析のためにシェル履歴をエクスポートする。
  • 誤って入力した秘密情報をシェル履歴から消去する。

クイックスタート

  1. 1

    Homebrewでmcflyをインストールする

    brew install mcfly
  2. 2

    シェルの設定ファイルの末尾にinit行を追加する(Bashの例です。ZshとFishの例はREADMEにあります)

    eval "$(mcfly init bash)"
  3. 3

    シェルの設定を再読み込みするか、ターミナルを再起動する

    . ~/.bashrc

使う前に知っておきたいこと

  • メンテナーはプロジェクトの保守に割ける時間がないと述べており、共同メンテナーを募っています。
  • WinGetのインストールスクリプトはプロジェクトによって保守されていないため、正確性や安全性を保証できません。

トピック

よくある質問

mcfly とは?
作業状況を考慮してニューラルネットワークで順位付けする、全画面型の検索にCtrl-Rを置き換えるRust製シェル履歴検索ツール。 McFlyは、シェルの標準的なCtrl-Rによる履歴検索を、作業ディレクトリや最近実行したコマンドをもとに結果を順位付けする全画面検索に置き換えます。順位付けにはリアルタイムで動作する小規模なニューラルネットワークを使うため、探しているコマンドが上位に表示されます。
mcfly は無料で使えますか?ライセンスは?
mcfly は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
mcfly は今もメンテナンスされていますか?
半年以内に更新あり。mcfly の最終コミットは 2026年9月1日 です。
mcfly は何に使えますか?
同じプロジェクトのディレクトリで以前に実行した、長いコマンドや複雑なコマンドを探す。 終了ステータスを順位付けに利用し、過去に失敗したコマンドを再実行しないようにする。 正規表現や日付でフィルターして、監査や分析のためにシェル履歴をエクスポートする。 誤って入力した秘密情報をシェル履歴から消去する。
mcfly のインストール方法は?
Homebrewでmcflyをインストールする: brew install mcfly シェルの設定ファイルの末尾にinit行を追加する(Bashの例です。ZshとFishの例はREADMEにあります): eval "$(mcfly init bash)" シェルの設定を再読み込みするか、ターミナルを再起動する: . ~/.bashrc
mcfly はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/cantino/mcfly

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト