packages/core
Private. age (X25519, ML-KEM-768 + X25519, scrypt, ssh-ed25519), keys, the file format and validation, operations, status, file storage, identity sources, and the OS keychain.
Monorepo
One private core with all logic, bundled into two published packages that have no dependencies.
@msecrets/ui CLI + TUI ─┐
├─ core ─ node:crypto
@msecrets/ts-sdk runtime ─┘
packages/corePrivate. age (X25519, ML-KEM-768 + X25519, scrypt, ssh-ed25519), keys, the file format and validation, operations, status, file storage, identity sources, and the OS keychain.
@msecrets/ts-sdkRuntime: createClient turns an imported secrets file into typed values; injectEnv fills process.env. ESM, CommonJS, and type declarations.
@msecrets/uiThe msecrets binary: commands, the terminal UI, run, and git integration. A thin layer over core.
msecrets.json. Keys and identity sources come from the
caller, the environment, or the user’s own config, never from the repository.age, rage, and other tools.node:crypto; the terminal UI is plain ANSI. Packages are bundled with tsdown.packages/core src/crypto (age, bech32, ssh, bcrypt_pbkdf), keys, document, values, status,
operations, store, sources, keychain; test vectors and tests
packages/ts-sdk src/index.ts
packages/ui src/cli.ts, commands.ts, tui/, git.ts, spawn.ts
scripts verify-packages.ts: pack, install offline, and exercise the published packages
docs this site and the JSON schema