Open
Conversation
🦋 Changeset detectedLatest commit: 653c7b1 The changes in this PR will be included in the next version bump. This PR includes changesets to release 18 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
9fe515d to
d89302e
Compare
@varlock/ci-env-info
varlock
@varlock/astro-integration
@varlock/cloudflare-integration
@varlock/expo-integration
@varlock/nextjs-integration
@varlock/vite-integration
@varlock/1password-plugin
@varlock/aws-secrets-plugin
@varlock/azure-key-vault-plugin
@varlock/bitwarden-plugin
@varlock/dashlane-plugin
@varlock/google-secret-manager-plugin
@varlock/hashicorp-vault-plugin
@varlock/infisical-plugin
@varlock/keepass-plugin
@varlock/pass-plugin
@varlock/passbolt-plugin
@varlock/proton-pass-plugin
commit: |
5fb2d57 to
48f4feb
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
7de0e68 to
10d20b2
Compare
10d20b2 to
17081fd
Compare
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
varlock-website | 653c7b1 | Commit Preview URL Branch Preview URL |
Apr 09 2026, 07:13 AM |
17081fd to
f4767ee
Compare
f4767ee to
653c7b1
Compare
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
Adds built-in device-local encryption to varlock via a new
varlock()resolver function and native platform binaries. Encrypted secrets can be stored directly in.envfiles and are automatically decrypted at load time — no external secret manager required.Encryption backends
The best available backend is selected automatically at runtime:
~/.varlock/directoryAll backends use the same ECIES wire format (P-256 ECDH + HKDF-SHA256 + AES-256-GCM), so encrypted payloads are portable across implementations.
On macOS, the Secure Enclave provides hardware-backed keys that cannot be extracted, with optional biometric gating via Touch ID. On Windows, DPAPI protects keys scoped to the current user with optional Windows Hello biometric verification. On Linux, keys are sealed to the TPM2 chip when available. A daemon process manages biometric sessions and IPC on all native platforms.
New CLI commands
varlock encrypt— Encrypt values interactively or in bulk (--file .env.localencrypts all@sensitiveplaintext values in-place)varlock reveal— Securely view/copy decrypted sensitive values (uses alternate screen buffer to avoid scrollback capture,--copyfor clipboard with auto-clear)varlock lock— Invalidate the biometric session, requiring re-authentication for next decryptThe
varlock()resolverTwo modes:
varlock("local:<ciphertext>")— decrypts an encrypted payload at load timevarlock(prompt)— prompts for a secret on first load, encrypts it, and writes the encrypted value back to the source fileNew packages
@varlock/encryption-binary-swift— macOS Secure Enclave binary (Swift, universal arm64+x86_64)@varlock/encryption-binary-rust— Windows/Linux encryption binary (Rust, cross-compiled for x64/arm64)Local encryption library (
src/lib/local-encrypt/)index.ts— Public API:encryptValue,decryptValue,ensureKey,getBackendInfo,lockSessioncrypto.ts— Pure JS ECIES implementation (wire-compatible with native binaries)file-backend.ts— File-based key storage fallbackdaemon-client.ts— IPC client for native binary daemons (Unix sockets / named pipes)binary-resolver.ts— Platform-specific binary discovery (SEA sibling → npm bundled → dev fallback)builtin-resolver.ts— Thevarlock()resolver registrationCI/CD
build-native-macos.yaml,build-native-rust.yaml,notarize-native-macos.yaml,binary-release.yamltest.yamlandrelease.yamlto include native binary build stepsDocumentation
encrypt,reveal,lockcommandsvarlock()resolver docsencryptandrevealcommand overviewsTest plan
bun run test— unit tests pass (includescrypto.test.tsandfile-backend.test.ts)varlock encrypt— interactive single-value encryption worksvarlock encrypt --file .env.local— batch file encryption worksvarlock reveal— interactive picker shows sensitive values in alt screenvarlock reveal KEY --copy— clipboard copy + auto-clear worksvarlock lock— invalidates biometric session on macOSvarlock(prompt)— prompts for value and writes back encrypted payloadvarlock("local:...")— decrypts values duringvarlock load/varlock run