Trestle について
Trestle は、コミット前にソースコード内の認証情報を検出するローカルスキャナーです。コードを解析する検出機能に加え、CLI、エディター、Git フック、MCP に対応し、オフラインで動作します。
主な機能
- 01サービス別パターンとヒューリスティックで認証情報を検出
- 02コード解析で認証情報の文脈を判別
- 03CLI スキャンとファイル監視
- 04コミット前フックとエディター連携
- 05テレメトリーなしのオフラインスキャン
- 06認証情報の有効性を任意で確認
活用シーン
- 01変更をコミットする前にプロジェクトをスキャン
- 02新たな秘密情報が加わったファイルを監視
- 03LSP 対応エディターで検出結果を確認
- 04検出した認証情報が有効か任意で確認
MCP 対応
Trestle は `trestle mcp` で起動できる MCP サーバーを備え、AI アシスタントから利用できます。README には利用可能なツールの説明はありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
ソースコード向けのローカルシークレットスキャナーです。Trestle は、API キー、アクセストークン、 パスワード、秘密鍵、証明書を誤ってコミットする前に検出し、 マシンの外部に持ち出されないようにします。
これは Community エディションです。Apache-2.0 のオープンソースで、 trestlescan.com で配布されているバージョンのミラーです。
Trestle の機能
- 検出。 実際のサービス(OpenAI、 Anthropic、Stripe、AWS、GitHub、Google、Slack、Sentry など)で使われる数百種類の認証情報パターンに加え、 エントロピー、変数名、周辺のコードから見つけ出す未知のキーも検出します。
- コードを認識。 Trestle は単純な正規表現を実行するのではなくファイルを解析するため、 環境変数とビルド引数、ヘッダー、パラメーター、ソース内の定数を区別できます。
- あらゆる作業環境で実行。 コマンドラインスキャナー、ファイルウォッチャー、 pre-commit フック、LSP 対応エディター(Neovim、Helix、Zed、 JetBrains)向け言語サーバー、AI アシスタント(Claude Code、Cursor、Copilot、 Codex)向け MCP サーバー、ネイティブの VS Code 拡張機能を提供します。
- ローカルのみ。 マシン上だけで実行されます。ネットワーク通信、テレメトリー、 アカウント、登録は不要です。
- 静的バイナリ 1 つ。 ランタイムのインストールは不要で、マルチスレッドに対応し、
.gitignoreと独自のスキップルールを尊重します。
ソースからビルドする
必要なのは、最近の安定版 Rust ツールチェーンのみです。
cargo build --release
これにより 2 つのバイナリがビルドされます。ネットワークリクエストを行わない trestle と、
検出したシークレットが現在も有効か確認できる trestle-net です。
クイックスタート
任意のプロジェクトディレクトリで実行します。
trestle install # adds a pre-commit hook and AI instructions
trestle scan # scans the current directory
その他のコマンド:
trestle watchは、ファイルの変更に合わせてスキャンを続けます。trestle lspは言語サーバーを起動します。trestle mcpは MCP サーバーを起動します。trestle uninstallは、プロジェクトから連携機能を削除します。
シークレットが有効かどうかを確認する
デフォルトの trestle バイナリはネットワークリクエストを行いません。別途用意されている
trestle-net バイナリには、検出した各シークレットのプロバイダーに接続して、
認証情報が現在も有効か確認するオプションのチェック機能が追加されています。
trestle-net scan --validate
各検出結果には (active)、(inactive)、または (could not verify) のラベルが付きます。このチェックは trestle-net でのみ実行されるため、trestle バイナリは
完全にオフラインのままです。
詳しいドキュメントは trestlescan.com/documentation をご覧ください。
GitHub Action
公式の GitHub Action を使って、プッシュとプルリクエストのたびにスキャンできます。
name: Secret scan
on:
push:
pull_request:
jobs:
trestle:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: toro-guapo/trestle-action@v1
入力、出力、GitHub Security タブへの SARIF アップロード、対応ランナーについては toro-guapo/trestle-action をご覧ください。
Community と Pro
Trestle はオープンコアです。
- Community(このリポジトリ)は検出を行います。各検出結果について、場所と検出ルールを報告します。Apache-2.0 ライセンスです。
- Pro は修正ガイダンスを追加します。各検出結果について、ソースからシークレットを削除する手順、ローカルの
.envに残す内容、AWS、GitHub Actions、Vercel、Netlify、Kubernetes、 Doppler などのプラットフォームごとのローテーションガイドを提供します。商用ライセンスで配布されます。
Pro は trestlescan.com でご利用いただけます。
このリポジトリについて
これは読み取り専用のミラーで、Community のリリースごとに更新されます。開発は プライベートリポジトリで行われます。
GitHub での Issue とディスカッションを歓迎します。このミラーではプルリクエストを受け付けていません。 修正案やアイデアがある場合は、Issue を作成してください。
ライセンス
Apache License 2.0。詳しくは LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。