
apm v11.1.0
ローカルファーストで多機能なパスワードマネージャー
なぜAPMなのか?
- 高速で覚えやすい — コマンドやフラグを暗記する必要はありません。APMは必要な情報をプロンプトで尋ねます。最大限の速度を求めるパワーユーザー向けにCLIフラグも用意されています。
- ゼロ知識 — マスターパスワードが保存されることはありません。Argon2idを使用して3つの独立した32バイトの鍵を導出します。あなた以外の誰もVaultを復号できません。
- 二重暗号化 — AES-256-GCMまたはXChaCha20-Poly1305を選択できます。AEAD認証に加えてHMAC-SHA256による二重層の完全性保護を提供します。
- ポータブル — Vaultファイル1つ、バイナリ1つ。Vaultをどこへでも持ち運べます。
- オプションのクラウド — Google Drive、GitHub、Dropboxへ同期できます。完全にオプトイン方式で、APMの利用にアカウントは不要です。
- AI対応 — スコープ付きトークンを備えたネイティブMCPサーバーにより、Claude、Cursor、その他MCP互換のエージェントがVaultに安全にアクセスできます。
- チーム対応 —
pm-teamでは完全なRBAC、部門、承認ワークフロー、共有Vaultを利用できます。
クイックスタート
go build -o pm .
pm setup # initialize vault and choose security profile
pm unlock # start a session
pm add # add a secret (interactive)
pm get github # fuzzy search and retrieve
pm lock # end session
チームエディション:
cd team
go build -o pm-team .
シークレットタイプ
APM は、検証済みフィールドとタイプ固有の表示ロジックを備えた 25 種類の構造化シークレットタイプ をサポートしています:
| # | タイプ | # | タイプ |
|---|---|---|---|
| 1 | パスワード | 14 | Docker レジストリ |
| 2 | TOTP | 15 | CI/CD シークレット |
| 3 | 政府発行 ID | 16 | セキュアノート |
| 4 | 医療記録 | 17 | リカバリーコード |
| 5 | 旅行情報 | 18 | 証明書 |
| 6 | 連絡先 | 19 | バンキング |
| 7 | Wi-Fi | 20 | ドキュメント |
| 8 | API キー | 21 | ソフトウェアライセンス |
| 9 | トークン | 22 | 法的契約書 |
| 10 | SSH キー | 23 | 写真 |
| 11 | SSH 設定 | 24 | 音声 |
| 12 | クラウド認証情報 | 25 | 動画 |
| 13 | Kubernetes |
機能
セキュリティ
- ゼロ知識 Argon2id 鍵導出 — マスターパスワードは保存されません
- デュアル AEAD 暗号: AES-256-GCM と XChaCha20-Poly1305
- HMAC-SHA256 による二層の完全性チェック
- 4 つの調整可能なセキュリティプロファイル:
standard、hardened、paranoid、legacy - Watchtower (
pm watchtower): 弱い、使い回された、古い、漏洩した (オプトイン、k-匿名)、露出したパスワード、期限切れ項目、未設定の二要素認証とパスキー、リスクのあるキーとセットアップチェックを評価する 0〜100 のセキュリティスコア、さらに項目ごとの信頼スコアとアクティビティレビュー - 誤ったパスワードには増加する待機時間が課されます (永久的なロックは行いません)。CLI、アプリ、拡張機能で共有されます
- 改ざん検知可能な監査ログを Vault の外部に保存
Vault
- 単一の暗号化された Vault ファイル — あらゆるデバイス間でポータブル
- 論理的な区分けのためのスペース (フォルダのようなもの)
- インタラクティブなブラウザとキーボードナビゲーションを備えたあいまい検索
- メタデータインスペクター: 作成日、最終アクセス、アクセス回数、信頼スコア
TOTP
- インタラクティブなリストでのライブカウントダウンタイマー
- 永続的なカスタム並び順
- 直接コピー:
pm totp github - 2FA コードを自動注入するための自動入力デーモン連携
クラウド同期
- Google Drive (OAuth2 PKCE)、GitHub (PAT)、Dropbox (OAuth2 PKCE)
- エンドツーエンド暗号化 — プロバイダーが平文を見ることはありません
- プロバイダーごとにエントリをフィルタリングする
.apmignore - 競合解決: 上書き、ローカルを保持、またはキャンセル
- バックグラウンド自動同期
セッション
- 設定可能な有効期限と非アクティブタイムアウトを備えた明示的なロック解除/ロック
- 自動化および AI エージェントアクセス用の委任された一時セッション
MCP サーバー
- ネイティブな Model Context Protocol サーバー
- スコープ付き権限トークン:
read、secrets、write、admin - 書き込み操作はデスクトップアプリでの承認を待ちます。アシスタントが自身の変更を承認することはできません
- Claude Desktop、Cursor、Windsurf、および任意の MCP クライアントで動作します
リカバリー
| 要素 | コマンド |
|---|---|
| メール OTP | pm auth email |
| リカバリーキー | pm auth recover |
| クォーラムシェア (Shamir) | pm auth quorum-setup |
| WebAuthn パスキー | pm auth passkey register |
| ワンタイムリカバリーコード | pm auth codes generate |
インポート / エクスポート
| 形式 | インポート | エクスポート |
|---|---|---|
| JSON | pm import json | pm export json |
| CSV | pm import csv | pm export csv |
| TXT | pm import txt | pm export txt |
ポリシーエンジン
name: corporate-standard
password_policy:
min_length: 14
require_uppercase: true
require_numbers: true
require_symbols: true
rotation_policy:
rotate_every_days: 90
notify_before_days: 14
pm policy load ./policies/
Team Edition(pm-team)
- 複数のロールを備えた RBAC
- 暗号化ドメインを分離した部門
- 機密エントリに対する承認ワークフロー
- 複数ユーザーでの認証情報共有のための共有 Vault
ブラウザ拡張機能
APM ブラウザ拡張機能は、ログイン情報の入力、該当サイトでのワンタイムコードの提供、新しいログイン情報の保存、およびパスキーの作成と使用を行います。マスターパスワードやパスキーの秘密鍵を参照することは一切ありません。拡張機能は、APM がお使いのマシン上の 127.0.0.1:41417 で提供する小さなブリッジと通信します(別のポートを使用するには APM_BRIDGE_PORT を設定してください)。
Vault にアクセスする 3 つの方法
- デスクトップアプリを使用する場合: アプリが開いている間、ブリッジが動作します。ペアリング要求とブラウザのロック解除はアプリ内に表示されます。
- CLI のみで、リンク済みの場合(推奨):
pm extension linkを一度実行します。これによりpmが各 Chromium 系ブラウザ(Chrome、Edge、Brave、Arc、Vivaldi、Chromium)にネイティブメッセージングホストとして登録され、以降はアプリが閉じていてもブラウザが自動的にpmを起動します。 - CLI のみで、ターミナルから実行する場合:
pm extension serveを実行して開いたままにします。デスクトップアプリが提供するのと同じ API を提供し、ロック解除、ロック、ペアリング要求が発生するたびに表示します。
pm extension link # once per computer; confirm the code the extension shows
pm extension serve # unlocks with your CLI session, or asks for the master password
pm extension serve --locked # starts locked; unlock from the extension
pm extension serve --idle 5m # locks after 5 minutes without browser activity (default 15m, 0 turns it off)
pm extension serve は、保管庫がロック解除またはロックされているときに1行出力します。停止するには Ctrl+C を押します。保管庫の鍵はメモリから破棄されます。ポートが使用中の場合、プロセスは終了し、APM アプリがすでに拡張機能を提供している可能性があることを通知します。
ブラウザのペアリング
- 拡張機能で「接続」を選択します。拡張機能は6文字のコード(例:
K7M-2QX)を表示します。 - APM が同じコードを表示していることを確認します。デスクトップアプリはダイアログを開き、
pm extension linkまたはpm extension serveはターミナルで確認を求めます(例:Connect Chrome on macOS? Code K7M-2QX [y/N])。 - 承認します。拡張機能はトークンを受け取り、ペアリングが完了します。
リクエストは2分後に期限切れとなり、同時に待機できるのは1件のみです。pm extension serve はターミナルで実行されていない場合、リクエストを自動的に拒否します。代わりに手動でペアリングするには、pm extension token --show を実行し、トークンを拡張機能の手動ペアリングフィールドに貼り付けます。
コマンド
| コマンド | 動作 |
|---|---|
pm extension link [--browser chrome,edge] [--no-wait] | デスクトップアプリが閉じているときに、ブラウザが拡張機能のために pm を起動できるようにする |
pm extension unlink | ブラウザが pm を起動するのを停止する。ペアリングは維持される |
pm extension status [--port N] | リンクされているブラウザ、現在拡張機能を提供しているもの、保管庫のロック状態とアイテム数、トークンのフィンガープリントを表示する |
pm extension serve [--port N] [--locked] [--idle 15m] | Ctrl+C までこのターミナルから拡張機能を提供する |
pm extension token [--show] | ペアリングトークンを出力する。--show が指定されない限りマスクされる |
pm extension rotate | ペアリングトークンを置き換える。ペアリング済みのすべてのブラウザは再ペアリングが必要。実行中のブリッジは次のリクエストで新しいトークンを取得する |
pm totp link <entry> <domain> | ワンタイムコードをサイトにリンクし、拡張機能がそのサイトで提供できるようにする |
pm totp unlink <entry> [domain] | ワンタイムコードのサイトリンクを削除する |
pm get はログインが持つパスキーとそれにリンクされたワンタイムコードを表示し、pm totp は各コードのリンクされたサイトを表示します。
ブリッジがプライベートに保たれる仕組み
127.0.0.1のみで待ち受け、127.0.0.1またはlocalhost宛てのリクエストにのみ応答します。これにより DNS リバインディングを防ぎます。Originがウェブページであるリクエストはすべて拒否します。CORS ヘッダーを付与するのはchrome-extension://、moz-extension://、safari-web-extension://のオリジンのみです。- ペアリング以外のすべての呼び出しにはペアリングトークンが必要です。トークンは APM 設定ディレクトリの
bridge_tokenに保存され、定数時間で比較されます。 - 一覧および詳細の呼び出しには秘密の値が含まれません。拡張機能は表示または入力時に一度に1つのフィールドを要求し、APM はそのアクセスを記録します。
- パスキーは APM 内で作成および署名されます。拡張機能はサイトのオリジンとクライアントデータのハッシュを送信し、APM は署名前にそのサイトがそのリライングパーティを使用できることを確認します。
1つのログインに複数のウェブサイト
ログインはメインアドレスを website に、その他を urls に保持し、デスクトップアプリでは「その他のウェブサイト」として表示されます。拡張機能は、いずれかに一致するページでそのログインを提供します。デフォルトでは、一致とは同じ登録可能ドメインを指すため、accounts.google.com と mail.google.com はどちらも google.com に一致します。
- ポップアップから、現在のサイトをログインに追加したり、ウェブサイトを追加・削除したり、複数のウェブサイトを持つ新しいログインを保存したりできます。
- 保存されていないサイトでログインを入力すると、拡張機能は最初に確認します。「入力して記憶」を選択すると、入力してそのサイトをログインに追加します。
pm totp link <entry> <domain>はワンタイムコードに対して同じことを行います。