
apm v11.2.0
Локальный менеджер паролей для всех
Почему APM?
- Быстро и легко учиться — не нужно запоминать команды или флаги. APM сам запросит всё, что ему нужно. Для опытных пользователей, желающих максимальной скорости, также доступны CLI-флаги.
- Zero-knowledge — ваш мастер-пароль никогда не хранится. Три отдельных 32-байтовых ключа выводятся с помощью Argon2id. Никто, кроме вас, не сможет расшифровать ваше хранилище.
- Двойное шифрование — выберите AES-256-GCM или XChaCha20-Poly1305. Двухуровневая целостность благодаря HMAC-SHA256 поверх аутентификации AEAD.
- Портативность — один файл хранилища, один бинарный файл. Берите хранилище куда угодно.
- Опциональное облако — синхронизация с Google Drive, GitHub или Dropbox. Полностью по желанию; для использования APM аккаунт не требуется.
- Расширяемость — система плагинов на основе манифеста со 100+ детализированными разрешениями, хуками жизненного цикла и маркетплейсом плагинов.
- Готовность к ИИ — встроенный 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 Registry |
| 2 | TOTP | 15 | CI/CD-секрет |
| 3 | Удостоверение личности | 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
- Четыре настраиваемых профиля безопасности:
standard,hardened,paranoid,legacy - Оценка доверия для каждого секрета (0–100) на основе возраста, доступа и уровня привилегий
- Журнал аудита с защитой от подделки, хранящийся вне хранилища
Хранилище
- Единый зашифрованный файл хранилища — переносится на любое устройство
- Пространства для логического разделения (как папки)
- Нечёткий поиск с интерактивным обзором и навигацией с клавиатуры
- Инспектор метаданных: дата создания, последний доступ, количество обращений, оценка доверия
TOTP
- Живые таймеры обратного отсчёта в интерактивном списке
- Постоянная пользовательская сортировка
- Прямое копирование:
pm totp github - Интеграция с фоновым процессом автозаполнения для автоматической подстановки 2FA-кодов
Облачная синхронизация
- Google Drive (OAuth2 PKCE), GitHub (PAT), Dropbox (OAuth2 PKCE)
- Сквозное шифрование — провайдеры никогда не видят открытый текст
.apmignoreдля фильтрации записей по провайдеру- Разрешение конфликтов: перезаписать, оставить локальную версию или отменить
- Фоновая автоматическая синхронизация
Сеансы
- Явная разблокировка/блокировка с настраиваемым сроком действия и тайм-аутом бездействия
- Делегированные эфемерные сеансы для автоматизации и доступа ИИ-агентов
MCP-сервер
- Встроенный сервер Model Context Protocol
- Токены разрешений с областью действия:
read,secrets,write,admin - Защитные механизмы транзакций для операций записи: предпросмотр → подтверждение → квитанция
- Работает с Claude Desktop, Cursor, Windsurf и любым MCP-клиентом
Плагины
- Система плагинов на основе манифеста
- 100+ детализированных разрешений для хранилища, сети, системы, криптографии, интерфейса и облака
- Система хуков для событий жизненного цикла хранилища
- Маркетплейс плагинов через облачных провайдеров
Восстановление
| Фактор | Команда |
|---|---|
| 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/
Командная версия (pm-team)
- RBAC с несколькими ролями
- Отделы с изолированными доменами шифрования
- Процессы согласования для чувствительных записей
- Общие хранилища для совместного использования учётных данных несколькими пользователями
Профили безопасности
| Профиль | Память Argon2 | Итерации | Параллелизм | Применение |
|---|---|---|---|---|
standard | 64 MB | 3 | 2 | Большинство машин |
hardened | 256 MB | 5 | 4 | Рабочие станции (≥8 ГБ ОЗУ) |
paranoid | 512 MB | 6 | 4 | Серверы (≥16 ГБ ОЗУ) |
legacy | PBKDF2 | 600,000 | 1 | Обратная совместимость |
APM автоматически определяет количество ядер процессора и объём ОЗУ, чтобы рекомендовать оптимальный профиль во время pm setup.
Статус разработки и история
(Заметка от владельца) По состоянию на 30 марта 2026 года я работаю над GUI для APM. Изначально это было CLI-приложение. В issue #38 всё объяснено подробно. В целом, я хочу, чтобы APM охватил ещё более широкую аудиторию. Я оставлю GUI отдельно в репозитории apm-gui или создам организацию и перенесу оба репозитория туда.
Я начинал APM как сугубо личный проект. Всё началось случайным вечером, когда я захотел создать собственный менеджер паролей. Меня достал Zoho Password, потому что я использовал его для TOTP. Он был невероятно медленным и едва функционировал, а свои токены я хранил в открытых файлах, что небезопасно.
На данный момент я НЕ планирую забрасывать или закрывать проект. Он останется работоспособным в течение долгого времени. Я стараюсь делать его лучше каждый день и пользуюсь им каждый день. Иногда репозиторий может быть неактивен — именно тогда я тестирую и экспериментирую с приложением.
Структура релизов
| Уровень | Стабильный? | Безопасно для хранилища? | Назначение |
|---|---|---|---|
| Canary | ❌ | ❌ | Самая ранняя предварительная версия функций — может повредить хранилища |
| Alpha | ❌ | ✅ | Нестабильные функции, целостность хранилища сохраняется |
| Beta | ✅ | ✅ | Полностью протестированные функции, осторожный выпуск |
| Stable | ✅ | ✅ | Релизы, готовые к продакшену |
Всегда делайте резервную копию хранилища перед тем, как пробовать Canary-релизы. P.S. Для некоторых релизов некоторые уровни могут не выпускаться — в зависимости от того, насколько быстро и легко их можно опубликовать, не создавая лишних уровней.
Документация
Полная документация: aaravmaloo.github.io/apm
- Установка
- Первые шаги
- Справочник по CLI
- Архитектура
- Шифрование
- Командная версия
- Интеграция с MCP
- Участие в разработке
Вклад в разработку
Вклад приветствуется. Рекомендации см. в CONTRIBUTING.md.
Лицензия
Лицензия GPL-3.0 © Aarav Maloo