Secrets-LE について
Secrets-LEは、ソースコードや設定、テキストファイル内のハードコードされた認証情報を検出し、エディターでプレースホルダーに置き換えられます。パターンベースで複数種のキーやトークンを調べ、結果では値をマスクするため、ローカル確認やCIでの検査に使えます。
主な機能
- 01キー、トークン、パスワード、秘密鍵の検出
- 02ファイル別・位置別の結果表示
- 03結果内の認証情報をマスク
- 04編集中のファイル内でのサニタイズ
- 05CLIとMCPインターフェース
活用シーン
- 01コミット前のワークスペース検査
- 02CIでのリポジトリスキャン
- 03開いているファイルの秘密情報の特定と除去
MCP 対応
MCPサーバーはstdio経由でdetect_secretsを提供します。入力テキストを解析して検出種別、確度、キー名、位置を返しますが、秘密情報の値は返さず、ファイル読み取りやネットワーク接続も行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| content | string | はい | スキャンするテキスト。 |
| maxResults | integer | いいえ | 返される指摘数の上限(デフォルトは 500)。meta.truncated は省略された結果があるかどうかを示します。 |
| sensitivity | enum | いいえ | 報告する検出結果の範囲:"low" はすべての一致を報告し、"medium"(デフォルト)は信頼度の低い結果を除外し、"high" は信頼度の高い結果のみを残します。low | medium | high |
| includeTokens | boolean | いいえ | トークン検出器を含めます。 |
| includeApiKeys | boolean | いいえ | API キー検出器を含めます。 |
| includePasswords | boolean | いいえ | パスワード検出器を含めます。 |
| includePrivateKeys | boolean | いいえ | 秘密鍵検出器を含めます。 |
詳細
Secrets-LE:手間のかからないシークレット検出
ワークスペース内のハードコードされた認証情報を見つけ、その場で秘匿化します
API キー、トークン、パスワード、秘密鍵 — すべてローカルで処理され、マシンの外に出ることはありません
役に立ちましたか? 開発者に見つけてもらうには、スターや評価が役立ちます — ★ GitHub · ★ Open VSX · ★ Marketplace
機能
ワークスペースを開いて Secrets-LE: Detect Secrets を実行すると、検出されたすべてのシークレットが結果ドキュメントに表示されます。ファイルごとにまとめられ、値そのものを指す行・列の位置も示されます。Secrets-LE: Sanitize Secrets を実行すると、アクティブなファイル内のシークレットがプレースホルダーに置き換えられます。VS Code と、Cursor や VSCodium などの VS Code ベースのエディターで動作します(Open VSX からインストールできます)。
検出は各ファイルの全文に対する正規表現ベースのため、コード、設定ファイル、.env ファイル、YAML、JSON、ログなど、あらゆるテキスト形式で動作します。これはコミット前の安全対策であり、完全な検出を保証するものではありません。パターンに基づくスキャナーでは、シークレットを見逃したり、シークレットではないものを検出したりする可能性があります。結果を確認してください。
インストール
| 場所 | 利用できる機能 | インストール |
|---|---|---|
| VS Code | エディター内での検出と、その場での秘匿化 | Marketplace |
| Cursor、VSCodium、Windsurf | 同じ拡張機能 | Open VSX |
| ターミナルまたは CI のステップ | 終了コードを返し、ツリー全体に対して同じ処理を実行 | cargo install secrets-le · crates.io |
| Node 経由のターミナル | Rust 版とバイト単位で同一のコマンドライン | npx secrets-le · npm |
| Node 経由の任意の MCP エージェント | stdio 経由の detect_secrets | npx secrets-le-mcp · npm |
AI エージェントから使用する
同じエンジンがMCPサーバーとしても動作するため、コマンドを実行する代わりに、エージェントから直接呼び出せます。
| エディター | 方法 |
|---|---|
| VS Code 1.101+ | インストール不要 — 拡張機能がエージェントモードに detect_secrets を登録します |
| Claude Code | claude mcp add secrets-le -- npx -y secrets-le-mcp |
| Cursor、Windsurf、その他の環境 | npx secrets-le-mcp を指定します |
detect_secrets(content, sensitivity?, includeApiKeys?, includePasswords?, includeTokens?, includePrivateKeys?, maxResults?)
検出結果ごとに、種類、信頼度、キー名、1 始まりの位置を報告します。値が返されることはありません — プレビューは切り詰められ、長さが注記されます。また、コンテキスト行ではシークレットがマスクされるため、検出された認証情報が見つかったマシンの外に出ることなく、検出箇所を特定できます。
サーバーはコンテンツを受け取ってデータを返します。ファイルの読み取りや、独自のネットワークリクエストは行いません。npm では secrets-le-mcp として、MCP レジストリでは io.github.nolindnaidoo/secrets-le として公開されています。
手動で設定する — MCP 設定ファイルがある任意のホスト
ほとんどのホストは JSON 設定を読み込みます。次のエントリを追加してください。
{
"mcpServers": {
"secrets-le": {
"command": "npx",
"args": ["-y", "secrets-le-mcp"]
}
}
}
-y は初回実行時のインストール確認を省略します。リリースを追跡せず特定のバージョンを使いたい場合は、バージョンを固定してください — [email protected]。
起動のたびに npx を使いたくない場合は、一度インストールしてバイナリを指定してください。
npm install -g secrets-le-mcp
{
"mcpServers": {
"secrets-le": { "command": "secrets-le-mcp" }
}
}
stdio 経由で MCP と通信します。環境変数、API キー、独自の設定は不要です。何かに組み込む前に確認するには、次を実行してください。
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx -y secrets-le-mcp
ツールの一覧が出力されて終了します — detect_secrets が表示されれば、サーバーは正常に動作しています。
Detect はディスクからファイルを読み取り、ファイルごとにまとめたレポートを1つ作成します。
- ワークスペース全体:コマンドパレットから
Secrets-LE: Detect Secretsを実行します。 - 1つのフォルダー:エクスプローラーでフォルダーを右クリックし、
Detect Secrets in Folderを選択するか、Secrets-LE: Detect Secrets in Folderを実行してフォルダーを選択します。
# Secrets Detection Results
⚠️ Found 2 potential secret(s):
## 📄 .env (1 secret(s))
### PASSWORD (1)
- Line 1, Column 19
Key: database_password
Type: Password
Confidence: high
Value: hunter2… (14 chars)
Context: DATABASE_PASSWORD=hunter2… (14 chars)
## 📄 src/config.ts (1 secret(s))
### API-KEY (1)
- Line 1, Column 17
Key: apikey
Type: Generic API key
Confidence: high
Value: sk_demo_… (40 chars)
Context: const apiKey = "sk_demo_… (40 chars)";
---
# Warnings
- Not read: dependency folders, build output, caches and lockfiles; images, fonts, archives and other binary files; 1 file(s) ignored by .gitignore. The `secrets-le.workspace.*` settings change this.
スキャンで読み取る内容。 ファイルはディスクから読み取るため、保存されていない編集内容は確認されません。安全上のサイズ制限を超えるファイルや、UTF-8 テキストではないファイルは読み取られません。ファイル数が10,000件、または検出されたシークレット数が10,000件に達すると、スキャンを停止します。レポートの末尾には、対象から除外された各項目を示す行が表示されます。
.gitignore で除外されていても、.env ファイルは読み取られます。 プロジェクトでシークレットを保存する場所であり、このツールを実行して確認する対象だからです。デフォルトでは scanAlwaysInclude に **/.env と **/.env.* が設定されています。空にすると、.gitignore の設定に従って除外されます。
スキップされたファイルがあるスキャンは、安全が確認されたことを意味しません。 依存関係のフォルダーや、.gitignore で除外された別のファイル、バイナリファイル内のシークレットは報告されません。すべてを検査するには、3つのスイッチをオフにしてください。
スキップされる対象と変更方法。 デフォルトでは3つのスイッチがオンになっており、それぞれを設定で個別にオフにできます。
| スイッチ | スキップする対象 |
|---|---|
scanUseDefaultExcludes | 依存関係のフォルダー、ビルド出力、ツールのキャッシュ、ロックファイル。全リストは以下を参照してください |
scanRespectGitignore | プロジェクトの .gitignore ファイルで除外されるもの |
scanSkipBinaryFiles | 画像、フォント、アーカイブなどのテキストではないファイル |
スイッチをオフにせずに結果を調整できるリストが2つあります。さらに除外するには、scanExcludes にパターンを追加します。スイッチによってスキップされる対象を読み取るには、scanAlwaysInclude に追加します。
{
// Also skip the test fixtures.
"secrets-le.workspace.scanExcludes": ["**/fixtures/**"],
// Keep reading .env files, and read the vendored code as well.
"secrets-le.workspace.scanAlwaysInclude": ["**/.env", "**/.env.*", "**/vendor/**"]
}
Secrets-LE: Open Settings を実行すると、これらすべての設定が設定エディターで開きます。
組み込みリスト
場所を問わず除外されるフォルダー:
.git、.hg、.svn、node_modules、bower_components、jspm_packages、.pnpm-store、.yarn、vendor、site-packages、Pods、Carthage、dist、build、out、target、_build、_site、dist-newstyle、zig-out、storybook-static、cdk.out、DerivedData、CMakeFiles、.next、.nuxt、.output、.svelte-kit、.angular、.astro、.docusaurus、.vuepress、.expo、.turbo、.parcel-cache、.cache、.sass-cache、.jekyll-cache、.dart_tool、.pub-cache、.gradle、.kotlin、.cxx、.externalNativeBuild、captures、ephemeral、.symlinks、.swiftpm、.build、.bundle、.stack-work、.zig-cache、.godot、elm-stuff、.vercel、.netlify、.serverless、.aws-sam、.terraform、.venv、venv、__pycache__、.tox、.nox、.mypy_cache、.pytest_cache、.ruff_cache、.ipynb_checkpoints、.eggs、coverage、htmlcov、.nyc_output、.vscode-test、.idea、.vs、xcuserdata、*.egg-info
場所を問わず除外されるファイル:
*.min.js、*.min.css、*.map、*.snap、*.lock、package-lock.json、pnpm-lock.yaml、npm-shrinkwrap.json、go.sum、*.pbxproj、*.iml、local.properties、output-metadata.json、.flutter-plugins、.flutter-plugins-dependencies、.packages、Generated.xcconfig、flutter_export_environment.sh、GeneratedPluginRegistrant.*、fastlane/report.xml、fastlane/test_output/**、doc/api/**
多くのプロジェクトで通常のフォルダーとして使われているため、リストに含まれていないもの:bin、obj、tmp、logs、public、generated。これらを生成するプロジェクトでは、Git の対象外に設定されており、スキャンでは .gitignore が読み取られます。
問題パネルでの表示。 secrets-le.workspace.scanProblemsEnabled をオンにすると、各シークレットが該当行の警告としても表示されます。スキャンを実行するたびに、前回の結果は置き換えられます。メッセージにはシークレットの種類が示されますが、値は表示されません。
スキャンの動作を決める設定は、設定にあります。
CLI
同じ検出機能は、ターミナルや CI のステップからも実行できます。Rust 製の CLI は
crate/ にあり、拡張機能と同じパターンテーブル
— crate/signatures/patterns.toml —
を共有しているため、認証情報に該当するものの定義が両者で食い違うことはありません。
同じコマンドラインツールは、Rust がなく Node がある環境向けに secrets-le として npm でも配布されており、CI では 3 つのオペレーティングシステムで、クレートとバイト単位で同一であることを検証しています。
secrets-le . # scan a tree
secrets-le --sensitivity high . # only high-confidence findings
secrets-le --no-ignore --hidden . # reach .env and everything git ignores
secrets-le mcp # the same detection over MCP on stdio
npm(secrets-le)または crates.io(secrets-le)からインストールできます。どちらも同じ secrets-le コマンドをインストールします。
npm install -g secrets-le # or run it once: npx secrets-le
cargo install secrets-le
終了コードが結果を示します。0 は検出なし・1 は検出あり・2 は質問の形式が不正です。そのため、secrets-le . はそのまま CI のステップとして使えます。
認証情報を出力することはありません。 スキャナーの出力は CI ログに記録されます。CI ログはアーカイブされ、誰でも読める状態になることが多く、秘密情報の有効期限が切れた後も残ります。検出した内容を出力するスキャナーは、コミットよりも広く秘密情報を漏えいさせるおそれがあります。プレビューは最大 8 文字、かつ値の長さの半分までに制限され、コンテキスト行もマスキングされます。どちらの制限も変更するフラグはありません。検出した内容を修正できるのは拡張機能側であり、バイナリは報告のみを行います。
検出対象
34 種類のパターンを crate/signatures/patterns.toml に収録しています。これは両方のフロントエンドが読み込む共通のテーブルです。
| カテゴリ | 種類 |
|---|---|
| 発行元が特定されているもの | Anthropic sk-ant-、OpenAI sk-/sk-proj-、xAI xai-、Groq gsk_、Hugging Face hf_、Replicate r8_、GitHub ghp_/gho_/ghu_/ghs_/ghr_/github_pat_、GitLab、Slack xox?- と webhook URL、Discord webhook URL、Stripe sk_/rk_ のライブキーとテストキー、whsec_ webhook シークレット、Google AIza… と OAuth クライアントシークレット GOCSPX-、Linear lin_api_、DigitalOcean dop_v1_/doo_v1_/dor_v1_、Doppler dp.pt./dp.st.、SendGrid、Mailgun、Sentry、npm、PyPI、Docker Hub、HashiCorp Vault、Terraform Cloud、Supabase、Shopify、Square、Azure SAS |
| クラウド認証情報 | AWS アクセスキー ID(AKIA…。キー名は不要)、AWS シークレットアクセスキー、Azure アカウントキー、GCP/Google Cloud キー |
| トークン | 汎用トークン、ベアラートークン、アクセストークン/リフレッシュトークン、OAuth トークン、JWT(キー形式または eyJ… 形式の単独値) |
| パスワード | password/passwd/pwd の値。DATABASE_PASSWORD など複合キーも含みます |
| 秘密鍵 | RSA/EC、OpenSSH、PGP の複数行 PEM ブロック |
| 接続データ | user:pass@ 認証情報を埋め込んだデータベース URL、接続文字列、セッション ID、Cookie |
キー名を使うパターンは、引用符付きと引用符なしのどちらにも対応しているため、JSON("apiKey": "…")、YAML(api_key: …)、環境変数(API_KEY=…)、コード(apiKey = '…')のいずれも検出されます。
意図的に検出しないもの:テンプレートのプレースホルダー(${VAR}、{{var}}、<your-key>、xxxxxxxx)、バージョン番号やホスト名など、ドット区切りに見えるだけのもの(1.2.3 は JWT ではありません)、GCP プロジェクト ID(認証情報ではなく識別子)、認証情報が埋め込まれていないデータベース URL。
既知の制限事項:検出はパターンに基づくため、難読化された秘密情報、分割された秘密情報、一般的でない名前の秘密情報は見逃します。ヘッダーが標準的な base64 JSON(eyJ…)ではない JWT も見逃します。認識可能なキー名やプレフィックスがない高エントロピー文字列は報告されません。
コマンド
| コマンド | 説明 |
|---|---|
Secrets-LE: Detect Secrets | ワークスペースをスキャンし、結果ドキュメントを開きます |
Secrets-LE: Detect Secrets in Folder | 1 つのフォルダーを対象に同じ処理を行います。エクスプローラーでフォルダーを右クリックした場合も利用できます |
Secrets-LE: Sanitize Secrets | アクティブなファイル内で検出されたシークレットを置き換えます(先に確認を求めます) |
Secrets-LE: Open Settings | Secrets-LE の設定を開きます |
Secrets-LE: Help | 組み込みのドキュメント |
デフォルトでは、どのコマンドにもキーが割り当てられていません。エディターの キーボード ショートカット で、任意のコマンドに割り当ててください。
設定
| 設定 | デフォルト | 説明 |
|---|---|---|
secrets-le.detection.sensitivity | medium | low はすべてを報告し、medium は信頼度の低い一致を除外し、high は信頼度の高い一致のみを保持します |
secrets-le.detection.includeApiKeys | true | API キーとクラウド認証情報を検出します |
secrets-le.detection.includePasswords | true | パスワードを検出します |
secrets-le.detection.includeTokens | true | トークンと JWT を検出します |
secrets-le.detection.includePrivateKeys | true | PEM 秘密鍵ブロックを検出します |
secrets-le.sanitization.replaceWith | ***REDACTED*** | サニタイズ時に使用する置換テキスト |
secrets-le.workspace.scanPatterns | ["**/*"] | フォルダーまたはワークスペースのスキャンで読み取るファイル |
secrets-le.workspace.scanUseDefaultExcludes | true | 依存関係フォルダー、ビルド出力、キャッシュ、ロックファイルをスキップします |
secrets-le.workspace.scanRespectGitignore | true | プロジェクトの .gitignore ファイルで除外されるものをスキップします |
secrets-le.workspace.scanSkipBinaryFiles | true | 画像、フォント、アーカイブなどのテキスト以外のファイルをスキップします |
secrets-le.workspace.scanExcludes | [] | glob パターンで追加のファイルをスキップします |
secrets-le.workspace.scanAlwaysInclude | ["**/.env", "**/.env.*"] | 上記 3 つの設定のいずれかでスキップされる場合でも読み取るファイル |
secrets-le.workspace.scanMaxFiles | 10000 | 1 回のスキャンで読み取るファイルの最大数 |
secrets-le.workspace.scanMaxResults | 10000 | 読み取りを停止するまでに 1 回のスキャンで一覧表示するシークレットの最大数 |
secrets-le.workspace.scanProblemsEnabled | false | スキャンで検出されたシークレットを「問題」パネルにも表示します |
secrets-le.safety.enabled | true | 非常に大きなファイルに対するガードレール |
secrets-le.safety.fileSizeWarnBytes | 1000000 | このサイズを超えるファイルをスキップ、または処理を拒否します |
secrets-le.dedupeEnabled | false | 結果内で、値と種類が同一の検出項目をまとめます |
secrets-le.showPositions | true | 検出された各シークレットの行と列を表示します |
secrets-le.copyToClipboardEnabled | false | 結果をクリップボードにもコピーします |
secrets-le.clipboardIncludesPositions | true | コピーに行と列を含めます |
secrets-le.openResultsSideBySide | true | 現在のエディターの横に結果を開きます |
secrets-le.notificationsLevel | important | all = すべての通知、important = 警告とエラー、silent = エラーのみ |
secrets-le.statusBar.enabled | true | ステータスバー項目を表示します |
secrets-le.telemetryEnabled | false | ローカルのみのイベントログ(「プライバシー」を参照) |
言語
英語以外に 12 言語に対応しています。
ドイツ語 · スペイン語 · フランス語 · インドネシア語 · イタリア語 · 日本語 · 韓国語 · ポルトガル語(ブラジル) · ロシア語 · ウクライナ語 · ベトナム語 · 中国語(簡体字)
どちらの部分も翻訳されています。マニフェスト(コマンドのタイトル、設定名と説明)と、拡張機能の実行中に表示されるすべての項目(通知、ステータスバー、クイックピック、プロンプト)が対象です。拡張機能は VS Code の表示言語に従うため、エディターに設定されている言語がそのまま適用されます。独自の設定はありません。
プライバシーとセキュリティ
- ネットワークアクセスはありません。 拡張機能がデータを外部に送信することはありません。
telemetryEnabled設定は、確認できるローカルの出力チャンネル(Secrets-LE Telemetry)にイベントを書き込むだけです。 - MCP サーバーがシークレットを返すことはありません。 出力は、呼び出したモデルに渡されるため、プレビューは切り詰められ、長さが注記されます。また、周辺のコンテキスト行はマスクされます。これはレポートと同じ
utils/maskヘルパーを使用します。これを無効にする引数はなく、値が応答に現れた場合はバンドルゲートがビルドを失敗させます。ツールから意図的に情報を漏えいさせ、ゲートが検知することを確認して検証しています。 - エラー通知では、表示前にホームディレクトリと認証情報の形式に一致する断片を秘匿します。
- サニタイズでは、ファイルを編集する前に必ず確認を求めます。編集は通常の元に戻せるドキュメント編集です。
- 評価プロンプトは最大2回だけ表示されます。 3回目の使用が成功すると、拡張機能は評価してもらえるかを一度尋ねます。Later を選択するか、プロンプトを閉じた場合は、20回目にもう一度だけ尋ねます。Don't Ask Again を選ぶと、以後表示されません。
notificationsLevelを自分でimportantまたはsilentに設定すると、評価プロンプトは無効になります。回数は VS Code の拡張機能ストレージに保存され、外部に送信されることはありません。Rate を選ぶと、インストール元の一覧(VS Code Marketplace または Open VSX)がブラウザーで開きます。
ドキュメント
| 内容 | 場所 |
|---|---|
| ツールが応答できる内容 — 範囲、出力契約、拒否、対象外 | crate/SPEC.md |
| 拡張機能の構築方法と仕組み — アーキテクチャ、不変条件、ツールチェーン、リリース | AGENTS.md |
| CLI の構築方法と仕組み | crate/AGENTS.md |
| 変更内容 | CHANGELOG.md · crate/CHANGELOG.md |
| このツールのページと、ほかの15個 | letools.dev/tools/secrets-le |
パフォーマンス
| 入力 | サイズ | 検出数 | 時間 | 速度 | スキャン速度 |
|---|---|---|---|---|---|
| 認証情報を含むソース | 1.97 MB | 40,000 | 132.32 ms | 302,301/sec | 14.9 MB/s |
| クリーンなソース | 1.92 MB | 0 | 70.88 ms | — | 27.2 MB/s |
| Env ファイル | 0.60 MB | 0 | 21.88 ms | — | 27.4 MB/s |
Apple M5 Pro、24 GB RAM、Node 24.3.0 で、ウォームアップ後に7回実行した中央値です。入力はチェックインせず、scripts/benchmark.ts で生成するため、上記のサイズは実際に測定した値と正確に一致します。bun run benchmark で再現できます。
これらはマシン固有の値であり、CI では保証されません。ビルドをブロックするベンチマークから分かるのは、ランナーの負荷状況だけです。
テスト
| 指標 | カバレッジ |
|---|---|
| ステートメント | 86.89% |
| 分岐 | 78.60% |
| 関数 | 86.45% |
| 行 | 88.49% |
24ファイルにわたる412件のテストケースに加え、実際の VS Code 拡張機能ホストで実行する統合テストスイートと、ビルドした .vsix をクリーンなプロファイルにインストールするエンドツーエンドテストがあります。
実行結果(coverage/coverage-summary.json と coverage/test-results.json)から scripts/coverage-readme.js で生成されます。このセクションに差異があると CI は失敗します。bun run test:coverage で再現でき、ケース数は vitest が出力する値です。
LE ファミリーのその他のツール
あらゆるモデルが直面する作業に対応する、単機能ツールが16個あります。それぞれに Rust CLI と MCP サーバーが付属します。詳細はこちら:letools.dev
取り出す
- String-LE — コードベース内のすべての文字列を抽出し、人が読めるようにします
- Numbers-LE — コードベース内のすべてのハードコードされた数値を抽出し、人が確認できるようにします
- Units-LE — 単位付きの数量をすべて抽出して正規化し、曖昧なものは名前を示して対象外にします
- Dates-LE — すべての日付とタイムスタンプ、およびそれぞれが解決される正確な時点を抽出します
- IDs-LE — UUID、ULID、NanoID、ObjectId、Snowflakeをすべて抽出し、内部に含まれる時刻をデコードします
- IPs-LE — IPアドレス、CIDRブロック、MACアドレスをすべて抽出し、正規化してスコープ別に分類します
- URLs-LE — コードベース内のすべてのURLを、プロトコルと正確な位置情報とともに抽出します
- Paths-LE — コードベース内のすべてのファイルパスを抽出し、現在も何かを指しているかどうかを示します
- Colors-LE — コードベース内のすべての色を抽出し、パレットにない色を示します
チェックする
- Regex-LE — コードベース内のすべての正規表現を検出し、壊滅的なバックトラッキングを引き起こす可能性があるものを報告します
- Versions-LE — リポジトリ内のマニフェスト間で、同じ依存関係のバージョン制約が異なる箇所を検出します
- i18n-LE — プロジェクトで使用している i18n ライブラリを特定し、そのライブラリのルールに基づいてカタログを監査します
- Scrape-LE — スクレイパーを書く前にページをスクレイピングできるか確認し、判定できない場合はその旨を示します
保護する
- Secrets-LE — コードベース内のハードコードされた認証情報を検出し、レポートに表示することはありません
- EnvSync-LE — ディレクトリツリー内の dotenv ファイルを比較し、どのファイルにどのキーがないかを示します
- Unicode-LE — 意味を隠す Unicode を検出します。双方向制御文字、不可視文字、ホモグリフ、混在スクリプトが対象です
それぞれが独立しています。共有クレートも、公開されたコアもありません。2つのツールが同じ答えにたどり着くとすれば、それはその答えが2度正しかったからです。
お問い合わせ — nolindnaidoo.com · GitHub · LinkedIn
nolindnaidoo によるその他のプロジェクト
Rust — pixelcoords と pixelactions は一連のループを構成します。pixelcoords が 場所 に答え、pixelactions がそこで 操作 します。それぞれ独自のツールと独自の方針を持ち、LE ファミリーには属しません。
- pixelcoords — 画面を固定し、領域を指定して、ピクセル単位で正確な座標と切り抜きを取得します pixelcoords.dev · crates.io · docs.rs
- pixelactions — 人が検証した座標を受け取り、操作を実行して、反映されたことを確認します pixelactions.dev · crates.io · docs.rs
ライセンス
MIT © nolindnaidoo
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。