Repository navigation
v10.0.0-stable
v10.0.0 Changelog
High-level summary
v9.1 delivered a stable CLI password manager with core vault, cloud sync, and TOTP workflows. v10 (Next) shifts the product from “secure storage” toward “secure automation and writing workflows.” The headline change is the introduction of system-level autocomplete/autofill with a Windows daemon, which turns APM into an active assistant that can detect contexts and offer smart completions rather than only storing secrets. Around that, v10 adds a richer note-taking ecosystem based on vocabulary indexing and ranking, a more capable recovery and identity verification stack in the auth area, a first-class .apmignore system for controlling what is uploaded to cloud providers, and runtime permission controls for plugins (PACs). These are not isolated changes; they connect, for example, by making sure automation never leaks excluded data, and by enforcing least-privilege when automation is extended via plugins.
Autocomplete introduction (system autofill)
The biggest functional leap from v9.1 to v10 is that APM now runs an autofill daemon on Windows. Instead of relying on browser extensions, the daemon works at the OS level and listens for a global hotkey (default CTRL+SHIFT+L). When it detects a credential-like context in the active window, it can show popup hints that a match is available. On hotkey press, it resolves the best entry and injects the sequence securely without using the clipboard. This is a shift from v9.1’s “vault is passive until queried” model to “vault is context-aware and proactive.”
Key elements introduced in v10:
- A Windows daemon started via
pm autofill start, with manualstopandstatuscommands. - A global hotkey engine with a default binding but configurable on startup.
- A background context watcher that attempts to infer when a login form is active, enabling “autocomplete available” hints.
- A secure, local-only IPC model (loopback + token) so that the daemon never exposes decrypted secrets to the network.
- The ability to link TOTP entries to domains for smarter OTP matching during autofill flows.
In short, v10 brings APM closer to the behavior users expect from modern password managers, but it does it with APM’s existing security posture and local-first approach.
Autocomplete daemon control and UX
v10 also introduces daemon control commands under pm autocomplete, which separate “daemon lifecycle” from “notes vocabulary.” This avoids confusion and makes the mental model clearer: autocomplete can mean system autofill, while vocab refers to notes indexing. The new command group covers autostart on login, manual start/stop, status checks, and a window subcommand that toggles popup hints. This gives users control over the UX without disabling the core engine. You can keep the daemon enabled for hotkey autofill while disabling popups if you prefer a quiet workflow.
The UX improvements include:
- WPF popup hints with intentional styling, fade-in/out animation, and auto-dismiss behavior.
- Support for disable/enable of the popup hints without turning off the daemon itself.
- Clear status output for autostart state, daemon status, hotkey binding, and profile count.
From a product standpoint, this is more than a feature toggle; it’s a full operational surface that makes the daemon safe to use in daily workflows and transparent enough for advanced users to manage.
Auth improvements
v10’s auth improvements expand the recovery and identity verification model so that a lost master password is no longer a single point of failure. The recovery flow now includes multi-step identity verification with time-limited secure tokens, and extends recovery with optional factors that provide additional resilience and security. This is a significant evolution beyond v9.1’s more basic recovery behaviors.
Key enhancements:
- A formal recovery flow with email verification tokens that are stored hashed (not in plaintext) and expire after a short window.
- Support for recovery keys that unlock the DEK (Data Encryption Key) when paired with verified identity.
- Optional recovery passkeys using WebAuthn to add a local, user-controlled factor.
- Optional one-time recovery codes as a backup factor for users who want printable or offline recovery options.
- Support for quorum recovery flows with trustee shares, allowing threshold-based recovery in higher-assurance setups.
These additions emphasize that recovery should be both secure and practical. v10’s recovery architecture keeps APM’s zero-knowledge guarantees intact while adding a layered, modern identity verification model.
Note-taking improvements
v10 puts real focus on notes as first-class data, not just secondary text attached to entries. The CLI and internal data model now support a “vocabulary-driven” notes experience. That means APM can index and rank words from secure notes, use aliases to normalize terminology, and offer autocomplete suggestions that evolve based on usage. The result is faster searching, more consistent naming, and a smoother writing flow inside the vault.
The improvements cover:
- Vocabulary indexing that can be enabled or disabled independently of the system autofill daemon.
- Commands to view vocab, create aliases, list aliases, remove aliases, adjust ranking, and reindex on demand.
- Automatic reindexing when notes change, keeping the vocabulary current without manual intervention.
- Storage of the vocabulary in compressed form inside the vault to reduce footprint while preserving functionality.
This feature set is more than convenience. It makes APM a better notes tool for long-lived knowledge, especially for users who store secure documentation, server notes, recovery steps, or procedural guides in the vault.
.apmignore support
v10 introduces .apmignore as a first-class control surface for cloud sync. Where v9.1 assumed “everything in the vault is eligible for upload,” v10 allows precise control over what gets serialized to the cloud on a per-space, per-entry, or per-provider basis. This is a practical privacy tool for users who want to keep certain data local, keep vault size lean, or separate personal data from work data when syncing to different providers.
Highlights of .apmignore:
- Ignore whole spaces by name or pattern.
- Ignore entries by
space:type:namewith wildcard support. - Apply provider-specific ignore rules to selectively exclude data from one cloud provider while still syncing it to another.
- Separate vocabulary filtering via the
[vocab]section and theignore:vocabflag, which strips the compressed vocabulary from uploads. - Clear rule syntax with a dedicated guide and example file so teams can standardize usage.
This feature directly answers a common complaint about cloud sync: “I want the vault to sync, but not all of it, and not everywhere.” v10 finally makes that possible without splitting into multiple vaults.
Vocabulary for writing better notes
While related to note-taking improvements, vocabulary deserves its own callout because it changes how users interact with secure notes. v9.1 effectively treated notes as free text; v10 adds a vocabulary engine that learns from your notes and can help standardize terms. Users can create aliases (e.g., normalize “k8s” and “kubernetes”), adjust rank for frequently used terms, and remove words that should not appear in suggestions. This turns the notes system into something closer to a specialized writing tool, with the added safety of being embedded inside a zero-knowledge vault.
This vocabulary model also aligns with .apmignore, because it acknowledges that vocab can be sensitive on its own. The option to strip or filter vocabulary during cloud upload gives users more control over metadata leakage and keeps the sync payload lean when desired.
Plugin Access Control (PACs)
v10 makes plugin permissions explicit and enforceable at runtime. Plugins in APM are manifest-driven (plugin.json) and can declare the permissions they need. v9.1 already had the notion of plugin declarations, but v10 strengthens the runtime controls so users can view and toggle permissions at a per-plugin level. This is the “PACs” change: a practical permission gate that enforces least privilege and lets users revoke specific capabilities without uninstalling the plugin entirely.
What v10 adds here:
- A permission model where each plugin declares required permissions, such as
vault.read,vault.write,system.exec, ornetwork.outbound. - A runtime permissions engine that checks each plugin action against the current allowed set.
- A CLI surface to inspect and toggle permission overrides (
pm plugins access), enabling fine-grained control. - Persistence of permission overrides in the vault, so policy stays consistent across devices and sessions.
This brings plugins closer to a security-first extension model, rather than a “trust everything you install” approach.
Auth, notes, and automation now fit together
The theme across these changes is coordination between features. The autofill daemon only runs with a valid unlocked session and is integrated with the vault’s lock state. The notes vocabulary is stored inside the encrypted vault and can be stripped from cloud uploads via .apmignore. Plugin permissions are enforced at runtime rather than at install time, so automation doesn’t bypass the security model. Recovery improvements reinforce the expectation that users can regain access without violating zero-knowledge guarantees. All of these are substantial changes in how APM “behaves,” not just how it “stores.”
TL;DR
- Introduced Windows system autofill with a background daemon, global hotkey, and intelligent context matching, plus TOTP linking for smarter OTP autofill.
- Added
pm autocompletecontrols for autostart, manual daemon lifecycle, status visibility, and popup hint toggling. - Expanded auth recovery with secure email token flow, recovery keys, optional WebAuthn passkeys, optional one-time recovery codes, and quorum recovery support.
- Upgraded secure notes with vocabulary indexing, alias management, ranking, and on-demand reindexing for faster, more consistent writing workflows.
- Added
.apmignoreto filter cloud uploads by space, entry, provider, and vocabulary, enabling precise control over sync privacy. - Implemented Plugin Access Control (PACs) with runtime permission enforcement and per-plugin permission toggles.
These changes collectively define v10 as a more proactive, user-controlled, and security-focused upgrade over v9.1.
Roadmap for the future:
- Imrpove plugins to switch to a go sdk version
- Try to get APM listed as a MCP server on big github repos
- Try and get publicity to expand userbase for APM
- Next version will mainly focus on UX improvements, hence will be labelled as v10.0.1 and will improve APM.