APM — это быстрый CLI-менеджер паролей с нулевым разглашением, написанный на Go и Rust. Он хранит **более 25 структурированных типов секретов** в одном зашифрованном хранилище — от паролей и TOTP-кодов до SSH-ключей, медицинских записей, фотографий и бинарных файлов. Из этого репозитория поставляются два бинарника: `pm` для личного использования и `pm-team` для общих организационных хранилищ.
Почему APM?
- Быстрый и простой в освоении — не нужно запоминать команды или флаги. APM сам запросит всё необходимое. Для опытных пользователей, которым нужна максимальная скорость, также доступны флаги CLI.
- Нулевое разглашение — ваш мастер-пароль никогда не сохраняется. Три отдельных 32-байтовых ключа выводятся с помощью Argon2id. Никто, кроме вас, не может расшифровать ваше хранилище.
- Двойное шифрование — выберите AES-256-GCM или XChaCha20-Poly1305. Двухуровневая целостность через HMAC-SHA256 поверх аутентификации AEAD.
- Портативность — один файл хранилища, один бинарник. Берите хранилище куда угодно.
- Опциональное облако — синхронизация с Google Drive, GitHub или Dropbox. Полностью по желанию; для использования APM аккаунт не требуется.
- Готовность к ИИ — нативный MCP-сервер с токенами с ограниченной областью действия, чтобы Claude, Cursor или любой совместимый с MCP агент мог безопасно обращаться к вашему хранилищу.
- Готовность к командной работе — полный RBAC, отделы, рабочие процессы согласования и общие хранилища в
pm-team.
Быстрый старт
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 | | |
Возможности
Безопасность
- Zero-knowledge вывод ключа Argon2id — мастер-пароль никогда не сохраняется
- Двойные AEAD-шифры: AES-256-GCM и XChaCha20-Poly1305
- Двухуровневая проверка целостности HMAC-SHA256
- Четыре настраиваемых профиля безопасности:
standard, hardened, paranoid, legacy
- Watchtower (
pm watchtower): оценка безопасности от 0 до 100 с выявлением слабых, повторно используемых, старых, скомпрометированных (по желанию, k-анонимно) и раскрытых паролей, истекающих элементов, отсутствующей двухфакторной аутентификации и passkey, рискованных ключей и проверок настройки, а также оценки доверия для каждого элемента и обзор активности
- Неверные пароли добавляют растущую задержку (но никогда не постоянную блокировку), общую для CLI, приложения и расширения
- Журнал аудита с защитой от подделки, хранящийся вне хранилища
Хранилище
- Единый зашифрованный файл хранилища — переносимый на любое устройство
- Пространства для логического разделения (как папки)
- Нечёткий поиск с интерактивным браузером и навигацией с клавиатуры
- Инспектор метаданных: дата создания, последний доступ, количество обращений, оценка доверия
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
Восстановление
| Фактор | Команда |
|---|
| Email OTP | pm auth email |
| Ключ восстановления | pm auth recover |
| Кворумные доли (Shamir) | pm auth quorum-setup |
| Passkey 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 с несколькими ролями
- Отделы с изолированными доменами шифрования
- Рабочие процессы утверждения для конфиденциальных записей
- Общие хранилища для совместного использования учётных данных несколькими пользователями
Расширение для браузера
Расширение APM для браузера заполняет логины, предлагает одноразовые коды на сайтах, к которым они относятся, сохраняет новые логины, а также создаёт и использует ключи доступа (passkeys). Оно никогда не видит ваш мастер-пароль или закрытый ключ passkey. Оно взаимодействует с небольшим мостом, который APM запускает на вашей собственной машине по адресу 127.0.0.1:41417 (задайте APM_BRIDGE_PORT, чтобы использовать другой порт).
Три способа доступа к хранилищу
- С настольным приложением: мост работает, пока приложение открыто. Запросы на сопряжение и разблокировки из браузера отображаются в приложении.
- Только с CLI, связанный режим (рекомендуется): выполните
pm extension link один раз. Это регистрирует pm как хост нативного обмена сообщениями в каждом браузере на базе Chromium (Chrome, Edge, Brave, Arc, Vivaldi, Chromium), и с этого момента браузер сам запускает pm, когда приложение закрыто.
- Только с CLI, из терминала: выполните
pm extension serve и оставьте его открытым. Он предоставляет тот же API, что и настольное приложение, и показывает каждый запрос на разблокировку, блокировку и сопряжение по мере их возникновения.