
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
vaultsync-cli
Advanced tools
Zero-disk secrets delivery — CLI for pushing secrets and managing machines
Run apps with secrets — without ever storing
.envfiles on your server. Think: dotenv + Vault + SSH identity — without the complexity.
VaultSync CLI lets you securely deliver secrets to your applications by encrypting them locally and injecting them into processes at runtime. Plaintext never leaves your machine and is never written to disk on the server.
vaultsync secrets push --file .env
vaultsync run --label API --env prod -- node app.js
No .env files on your server. No secrets on disk.
Developer machine VaultSync Server VPS Agent
───────────────── ──────────────── ─────────
vaultsync secrets push ───────► stores AES ciphertext
vaultsync grant ───────► stores RSA-wrapped AES key
│
▼
vaultsync run ──► decrypts in RAM ──► injects into process env
.env file locally with AES-256-GCMVaultSync uses two binaries:
🖥️ Local machine (your laptop/dev box)
vaultsync-cli → push secrets, manage machines, admin🖧 VPS (your server)
vaultsync agent → fetch secrets and inject at runtimeThe CLI is for your local machine. The agent is what runs on your VPS. Do not install the CLI on your VPS.
Install the CLI on your local machine:
npm install -g vaultsync-cli
Requires Node.js 18+
🖥️ = local machine 🖧 = VPS
export VAULTSYNC_SERVER=https://your-vault-server.com
Add to your shell profile (~/.bashrc, ~/.zshrc) so it persists.
vaultsync init
Prompts for your server URL and API key, tests the connection, and optionally creates a .vaultsync.yml project config.
Ask your server owner for an invite code (if the server requires one):
# Private server (invite required)
vaultsync register --invite inv_<code> --name yourname
# Open server (no invite needed)
vaultsync register --name yourname
Your account is created and you are automatically logged in. Save the API key — it is only shown once.
Lost your key? Ask the server owner to run
vaultsync admin user reset-key --id <your-id>— a new key is issued and the old one revoked immediately.
vaultsync secrets push --label API-Backend --env Production --file .env
Or with a .vaultsync.yml project config (see below):
vaultsync secrets push --file .env
vaultsync machine create --name production-01
Returns a one-time enrollment token (OTET) that expires in 15 minutes.
# Install the agent (run once)
curl -fsSL https://cdn.jsdelivr.net/gh/KingVics/vaultsync-releases@main/install.sh | sudo bash
# Enroll with the token from step 5
sudo vaultsync enroll <OTET>
sudois required — the agent stores its identity key in/etc/vaultsync/.
vaultsync grant --machine production-01 --label API-Backend --env Production
Re-run after every
secrets pushto restore machine access to the new version.
sudo vaultsync run --label API-Backend --env Production -- node dist/index.js
Secrets are injected into environment variables and never written to disk.
.vaultsync.yml)Add a .vaultsync.yml in your project root to set default label and env:
# .vaultsync.yml
label: "API-Backend"
env: "Production"
Commands that use project config: secrets push, secrets pull, secrets diff.
Add
.vaultsync.ymlto.gitignoreif the label/env names are sensitive.
vaultsync init # interactive setup wizard
vaultsync verify # check server connection + auth
vaultsync doctor # diagnose common issues
vaultsync completion bash # print bash completion script
vaultsync completion zsh # print zsh completion script
Enable shell completion:
# bash
echo 'source <(vaultsync completion bash)' >> ~/.bashrc
# zsh
echo 'source <(vaultsync completion zsh)' >> ~/.zshrc
vaultsync register --name <username> [--invite <code>]
vaultsync login --key <apiKey>
# Push (encrypts locally before upload)
vaultsync secrets push --label <l> --env <e> --file .env
# List (shows ⚠ warning for secrets older than 90 days)
vaultsync secrets list
# Download and decrypt a secret to a local file
vaultsync secrets pull --id <blobId> [--out .env.local]
# Show what changed between the last two versions
vaultsync secrets diff --label <l> --env <e>
# Delete
vaultsync secrets delete --id <blobId>
vaultsync machine create --name <name> # create + one-time enrollment token
vaultsync machine list # list machines and status
vaultsync machine revoke --id <id> # block access without deleting
vaultsync machine delete --id <id> # permanently remove
vaultsync grant --machine <name> --label <label> --env <environment>
Re-run after every
secrets push.
vaultsync audit
vaultsync audit --action SECRET_FETCHED
vaultsync audit --limit 100
Requires the master API key (vps_ad...).
# User management
vaultsync admin user create --name <name>
vaultsync admin user list
vaultsync admin user deactivate --id <id>
vaultsync admin user activate --id <id>
vaultsync admin user reset-key --id <id> # issue new key, revoke old
vaultsync admin user delete --id <id> [--yes]
# Invite codes
vaultsync admin invite create [--expires-hours 24]
vaultsync admin invite list
vaultsync admin invite delete --id <id>
Docker:
CMD ["vaultsync", "run", "--label", "API", "--env", "Production", "--", "node", "dist/index.js"]
GitHub Actions:
- name: Run tests with secrets
run: vaultsync run --label API --env CI -- npm test
env:
VAULTSYNC_SERVER: ${{ secrets.VAULT_SERVER }}
.env files on serversVaultSync is a lightweight self-hosted alternative to HashiCorp Vault, Doppler, and Infisical — with no SaaS subscriptions and no plaintext secrets stored anywhere.
secrets management, dotenv alternative, environment variables, nodejs secrets, vps deployment, encryption cli, zero trust security, self-hosted vault, aes-256, rsa-4096
MIT
FAQs
Zero-disk secrets delivery — CLI for pushing secrets and managing machines
We found that vaultsync-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.