ターミナルでコマンドを打ち間違えるのはプログラマーの日常だ。「command not found」の表示を見て、↑キーで履歴を遡って手動で修正する。そんな繰り返し作業は、とっくに自動化されるべきだった。

pay-respects は Rust で書かれたコマンド提案ツール。直前に間違えたコマンドを自動検出し、最も可能性の高い正しいバージョンを提示する。

プロジェクト概要

属性内容
GitHubiffse/pay-respects
Stars592
言語Rust
特徴ゼロコンフィグ、マルチシェル対応、拡張可能なルール
最終更新数時間前

解決する問題

従来のコマンド修正ツール(thefuck など)にはいくつかの痛みがある:

  1. 起動が遅い:Python 製なので、コールドスタートで遅延を感じる
  2. 依存が重い:Python 環境が必要で、最小限のシステムにはない
  3. ルールがハードコード:カスタムルールの追加が面倒

pay-respects は Rust で書き直されたことで、コールドスタートがほぼ感じられない。バイナリ単体で動作し、ランタイム依存がない。

主要機能

マルチシェル対応

Bash、Zsh、Fish、Nushell をネイティブサポート。追加設定不要。

スマートマッチング

単純な文字列置換ではなく、エラータイプを分析:

  • スペルミス(gti statusgit status
  • 権限不足(自動的に sudo を追加)
  • パッケージマネージャー関連(apt isntallapt install
  • パス関連(ファイルパスの自動補完)

拡張可能なルールシステム

TOML でルールを記述。正規表現マッチングと条件分岐に対応。社内 CLI ツール用の修正ルールも数行の設定で追加できる。

軽量

インストールパッケージは 5MB 未満。メモリ消費も無視できるレベル。

クイックスタート

# cargo でインストール
cargo install pay-respects

# またはビルド済みバイナリをダウンロード
curl -fsSL https://pay-respects.iffse.dev/install.sh | sh

シェル設定に1行追加(zsh の例):

eval "$(pay-respects zsh)"

有効化後、コマンドを間違えたら Ctrl+G(または設定したショートカット)を押すと提案が表示される:

$ gti status
gti: command not found
$ [Ctrl+G]
> git status

類似ツール比較

ツールStars言語起動速度特徴
thefuck90k+Python遅めエコシステムが成熟、ルールが豊富
pay-respects592Rust極速軽量、拡張可能

thefuck のエコステムは確かに成熟している。しかし Python の起動遅延にうんざりしているなら、pay-respects はクリーンな代替案になる。

ユースケース

  • よく打ち間違える人
  • リソース制限のある環境(コンテナ、組み込み)で働く開発者
  • 内部ツールに修正ルールを追加したいチーム
  • 起動速度にこだわる人

制限事項

  • thefuck ほどルールが豊富ではない(だが急速に増加中)
  • 一部の複雑なエラーパターンは未対応
  • ショートカットキーの手動設定が必要

まとめ

pay-respects は thefuck の全機能を置き換えようとしない。より速く、より軽いコアソリューションを提供する。日常のコマンドミスの 90% に対しては十分に機能する。git、docker、kubectl、npm などの一般的なコマンドを主に使うなら、標準ルールで事足りる。

属性内容
リポジトリhttps://github.com/iffse/pay-respects
ライセンスAGPL-3.0
言語Rust
開発者@iffse