AppLedger について
AppLedger は、AIツールでアプリを作る開発者向けに、セキュリティスキャンの結果を平易な言葉で説明します。ホスト型とローカル型のスキャンに対応し、コーディングエージェント向けの修正依頼を作成して再検査できます。
主な機能
- 01Trivy と Opengrep によるアプリスキャン
- 02セキュリティ検出結果の平易な説明
- 03エージェント向け修正依頼の作成と再検査
- 04HTML、JSON、Markdown 形式で出力
- 05ホスト型とローカル型のスキャン
活用シーン
- 01アプリを共有する前に問題を確認
- 02検出結果をコーディングエージェントに渡して修正
- 03コードをアップロードせずローカルでスキャン
- 04定期検査を行い結果の概要を保存
MCP 対応
ローカル MCP サーバーを提供し、クライアントから AppLedger のアプリセキュリティ検査を実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx appledgerAPPLEDGER_MODEhosted (default): files Git would commit are sent to appledger.net, scanned and deleted. local: Trivy and Opengrep run on this machine.APPLEDGER_KEYシークレットOptional dashboard connection key (al_...). Without it, nothing goes to a dashboard; a hosted check returns a link that saves its result to a free account (the summary is kept up to 24 hours).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | |
| app_name | any | いいえ | |
| confirm_upload | boolean | いいえ | |
| save_to_dashboard | boolean | いいえ |
詳細
AppLedger による誠実なチェック
Claude Code、Codex、Cursor、Lovable などの AI ツールで作成したアプリについて、わかりやすい言葉で率直なセキュリティフィードバックを提供します。
AppLedger は、独立したスキャナーでアプリのフォルダーをチェックし、見つかった内容を日常的な言葉で説明します。何が問題なのか、なぜ重要なのか、どう対処すればよいのかを示します。また、アプリを作成した AI ツールにそのまま渡せる修正依頼を書き、再度チェックします。
チェック内容
| スキャナー | 検出するもの |
|---|---|
| Trivy | 漏えいしたパスワードやキー、既知のセキュリティ問題がある古いライブラリ、リスクの高いコンテナー設定 |
| Opengrep | 危険なコードパターン:SQL インジェクション、コマンドインジェクション、安全でないデータ読み込み、デバッグモードの切り忘れ |
| SonarQube(任意、ローカルモード) | コード品質と、セキュリティ上のホットスポットをさらに検出します。すでに SonarQube サーバーを実行している場合に利用できます |
実行するたびに、<your-app>/.appledger/ に次のファイルが生成されます。
report.html:スコア、現在アプリを利用できるユーザーの範囲(自分だけ、チーム全体、会社全体)、そしてすべての問題をわかりやすい言葉で記載したレポートfix-prompt.md:コーディングエージェントに渡せる、すぐに使える修正依頼findings.json:ツールやダッシュボード向けの同じ検出結果
2 つの実行方法
| モード | インストールするもの | コードの送信先 |
|---|---|---|
| ホステッド(デフォルト) | このパッケージのみ | Git がコミットするソースファイルを ZIP 形式にまとめ、appledger.net に HTTPS で送信してスキャンし、直後に削除します。シークレットファイルは送信されません。各フォルダーの初回アップロード前に確認を求められます |
ローカル(--local または APPLEDGER_MODE=local) | Trivy、Opengrep、Opengrep のルールも必要です | ファイルはコンピューター上にとどまります。接続キーを設定している場合、ダッシュボードには概要のみ送信されます(下記参照)。--no-dashboard を指定すると、概要も送信されません |
ホステッドモードでアップロードされるもの
- 送信されるもの: Git がコミットするファイル(
git ls-files。無視対象になっていない新しいファイルも含みます)。Git リポジトリの外では、.gitignoreの設定が引き続き適用されます。 - 送信されないもの:
.envおよび.env.*(.env.example、.env.sample、.env.templateを除く)、*.pem、*.key、*.p12、*.pfx、SSH キー、.npmrc、.pypirc、.netrc、*credentials*.json、service-account*.json、secrets.*、cert、certs、secrets、.ssh、.awsフォルダー、.claude/settings.local.json、Terraform の状態ファイル、パスワードファイル、Ansible Vault ファイル、Kubernetes/Helm のシークレットマニフェスト、証明書など(完全なリストはsrc/appledger/uploadpolicy.pyにあります)。安全策として、サーバー側でもこのようなファイルは破棄されます。 - 除外されるもの: 依存関係、ビルド出力、メディア、ドキュメント、データファイル(CSV、スプレッドシート、スライド、SQL、ログ、データダンプ)、および 1 MB を超えるファイル。
シークレットファイルが Git にコミットされている、または無視されていない場合、チェック結果ではファイル名によって問題として報告されます。ファイルの内容が読み取られたり送信されたりすることはありません。
アップロードせずに、送信されるもの、除外されるもの、その理由を正確に確認できます。
python -m appledger path/to/your-app --list-files
フォルダーの初回ホステッドチェックでは、確認を求められます。スクリプトや定期実行では、--yes を指定してください。コードが勤務先やクライアントの所有物である場合は、アップロードが許可されていることを確認するか、ローカルモードを使用してください。
インストール
Claude Code プラグイン(おすすめ:ガイド付きの check-my-app スキルを追加します):
claude plugin marketplace add contentasoftware/appledger
claude plugin install appledger@appledger
Claude Code デスクトップアプリでは、代わりにプラグイン設定でマーケットプレイス contentasoftware/appledger を追加します。新しいセッションを開始し、「自分のアプリは安全に共有できますか?」または「このアプリを AppLedger に追加して」と尋ねてください。
MCP サーバーのみ(uv が必要です):
claude mcp add appledger -- uvx --from appledger appledger-mcp
コマンドライン:
pip install appledger
python -m appledger path/to/your-app
トラブルシューティングを含むステップごとのガイド:https://appledger.net/docs/
バージョン 0.2.0(アップロードのプレビュー、同意、シークレットファイルの除外、定期実行)は PyPI でリリース予定です。それまでは、pip install appledger を実行すると 0.1.x がインストールされます。
会社ダッシュボード
appledger.netで無料アカウントを作成すると、チームのメンバーがチェックするすべてのアプリを、所有者、グレード、スコアの推移、利用できるユーザー、作成に使われたAIツールとともに1つの台帳に記録できます。「Connect a computer」で接続キーを作成し、各コンピューターに保存します。
python -m appledger --connect al_your_key
または、Claudeに「このキーでAppLedgerに接続して: al_…」と伝えます。キーは~/.appledger/keyに保存されます。APPLEDGER_KEYを設定すると保存済みのキーより優先され、--disconnectでキーが削除されます。
以降、チェックのたびにダッシュボードにも概要が保存されます。保存されるのは、アプリ名、スコア、グレード、問題の件数、検出された問題の一覧(レベルと短いタイトル、最大60件)、使用されたスキャナーです。コードは保存されません。
まだ接続していませんか? 0.2.3以降、キーのないコンピューターからホスト型チェックを実行すると、保存用リンクが表示されます。このリンクはreport.htmlにも表示されます。
Save this result to a free AppLedger ledger (link works for 24 hours): https://appledger.net/app/claim.php?t=...
リンクを開いて、無料アカウントを作成するかログインすると、チェック結果が台帳に追加されます。その後、ページにそのコンピューター用のキーが表示されます。リンクが使用されるまでは、サービスに保存されるのはチェックの概要(アプリ名、スコア、問題のレベルとタイトル。コードは保存されません)のみで、保存期間は最大24時間です。リンクは1回だけ使用できます。--no-dashboardを指定すると、この機能は無効になります。
ウェブアプリでAdd appを使ってアプリを追加することもできます。コードなしで登録するか、zipをアップロードしてブラウザー上でチェックできます(zipは同じ方法でスキャンされ、削除されます)。
定期チェック
python -m appledger path/to/your-app --schedule weekly --yes # or daily
python -m appledger --schedules # list
python -m appledger path/to/your-app --schedule off # stop
WindowsではWindowsタスクスケジューラを、macOSとLinuxではcronを使用します。ホスト型の定期チェックには、初回に--yesによる同意が必要です。代わりにローカルチェックをスケジュールするには、--localを追加してください。--quietを指定すると、チェックごとに1行だけ出力されます。
ローカルモードのセットアップ
- Trivy:Windowsでは
winget install AquaSecurity.Trivy、Macではbrew install trivy - Opengrep:リリースページからダウンロードし、PATHに追加します
- ルール:
git clone --depth 1 https://github.com/opengrep/opengrep-rules.git ~/.appledger/opengrep-rules - チェック:
python -m appledger --doctor
リポジトリ構成
| パス | 内容 |
|---|---|
src/appledger/scanner.py | スキャナー、平易な言葉への翻訳、レポート、修正リクエスト |
src/appledger/client.py | 送信するファイルを選び(.gitignoreを尊重)、ホスト型サービスに送信します |
src/appledger/uploadpolicy.py | アップロードされない秘密ファイルの全一覧。クライアントとサーバーで使用します |
src/appledger/service.py | サーバー側:アップロードを安全に展開してスキャンします |
src/appledger/server.py | プラグインが使用するローカルMCPサーバー |
plugin/ | check-my-appスキルを含むClaude Code / Codexプラグイン |
tests/mcp_smoke.py | エージェントと同様に、すべてのMCPツールを呼び出します |
ライセンス
MIT。スキャナーが使用するOpengrepコミュニティルールには独自のライセンス(Commons Clause)が適用されます。有料サービスで使用する前にご確認ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。