SecurityNovember 11, 20256 min read

1Password vs Bitwarden vs Built-In Vaults for Developer Secrets

ConfigSync supports 4 secret providers. Here's how they compare and which one you should use for your workflow.

Four Providers, One Interface

ConfigSync separates the sync engine from the secret storage backend. You use the same configsync push and configsync pull commands regardless of where secrets are stored. The provider determines where encrypted data lives and how it is managed. This means you can switch providers without changing your workflow.

The four providers are: the built-in encrypted vault, OS keychain integration, 1Password, and Bitwarden. Each has different strengths depending on whether you work solo, on a team, or need to meet specific compliance requirements.

Built-In Vault: The Default Choice

The built-in vault is what you get out of the box. Secrets are encrypted locally with AES-256-GCM and stored as encrypted blobs in ConfigSync's cloud storage (Cloudflare R2). No external dependencies, no additional accounts, no CLI tools to install.

Built-in vault (default)
# Nothing to configure — it's the default $ configsync push Encrypting with built-in vault (AES-256-GCM)... Pushed to ConfigSync cloud vault. # Your master password derives the encryption key. # The server stores only encrypted blobs.

Best for: solo developers, simple setups, anyone who wants zero-knowledge encryption without managing external tools. The built-in vault is the fastest path from install to syncing. It requires no setup beyond choosing a master password.

OS Keychain: System-Level Integration

The OS keychain provider stores secrets in your operating system's native credential manager: macOS Keychain, GNOME Keyring on Linux, or Windows Credential Manager. Secrets are protected by your OS login password and the platform's hardware-backed security (Secure Enclave on macOS, TPM on Windows).

Configure OS keychain
# Switch to OS keychain $ configsync config set secrets.provider keychain # Secrets are stored in your OS credential manager $ configsync push --filter env Stored 5 secrets in macOS Keychain. # On Linux $ configsync push --filter env Stored 5 secrets in GNOME Keyring.

Best for: developers who want secrets tied to their OS account, or teams with policies requiring hardware-backed key storage. The downside is that keychain contents do not sync across machines automatically — you need iCloud Keychain (macOS) or a manual export for cross-device access.

1Password: Team-Ready Secret Management

The 1Password provider uses the op CLI to read and write secrets directly to your 1Password vault. This is ideal for teams that already use 1Password — secrets are shared through 1Password's existing team infrastructure, with access controls, audit logs, and cross-device sync handled by 1Password.

Configure 1Password
# Install the 1Password CLI $ brew install 1password-cli # Configure ConfigSync to use 1Password $ configsync config set secrets.provider 1password $ configsync config set secrets.1password.vault "Development" # Push stores secrets in your 1Password vault $ configsync push --filter env Authenticated with 1Password... Stored 8 env variables in vault "Development". # Team members with vault access can pull $ configsync pull --filter env Pulled 8 env variables from vault "Development".

Best for: teams already using 1Password, organizations that need audit trails for secret access, and setups where multiple people need access to shared development secrets. 1Password's vault sharing means new team members get access to secrets as soon as they are added to the vault.

Bitwarden: Open-Source and Self-Hostable

The Bitwarden provider works through the bw CLI. Bitwarden offers the same core functionality as 1Password with one key differentiator: it is open source and can be self-hosted using Vaultwarden or Bitwarden's official self-hosted option.

Configure Bitwarden
# Install the Bitwarden CLI $ npm install -g @bitwarden/cli # Configure ConfigSync to use Bitwarden $ configsync config set secrets.provider bitwarden # For self-hosted instances $ configsync config set secrets.bitwarden.server "https://vault.company.com" # Push and pull work the same way $ configsync push --filter env Authenticated with Bitwarden... Stored 8 env variables in Bitwarden vault.

Best for: teams that prefer open-source tools, organizations with data residency requirements that mandate self-hosting, and developers who already use Bitwarden personally. Self-hosting means your secrets never leave infrastructure you control.

Side-by-Side Comparison

FeatureBuilt-in VaultOS Keychain1PasswordBitwarden
EncryptionAES-256-GCMOS-managedAES-256-GCMAES-256-CBC
Cross-device syncYes (cloud)LimitedYes (1P account)Yes (BW account)
Team sharingNoNoYes (shared vaults)Yes (organizations)
Self-hostableNoN/ANoYes (Vaultwarden)
External dependencyNoneNoneop CLIbw CLI
CostFree (ConfigSync)Free$4/user/monthFree / $3/user/month
Setup complexityNoneMinimalModerateModerate
Audit logsPush/pull historyOS logsFull audit trailFull audit trail

How to Switch Providers

Switching providers is a single command. Your existing synced data is re-encrypted and migrated to the new provider:

Switch providers
# Check your current provider $ configsync config get secrets.provider builtin # Switch to 1Password $ configsync config set secrets.provider 1password $ configsync config set secrets.1password.vault "Development" # Re-push to migrate secrets to the new provider $ configsync push Migrating secrets to 1Password... ✓ 12 secrets migrated to vault "Development". # Switch back anytime $ configsync config set secrets.provider builtin
Switching providers does not affect your sync workflow. The same push, pull, and inject commands work identically regardless of which provider is active. Only the storage backend changes.

Which Provider Should You Use?

Start with the built-in vault. It works immediately, requires no external tools, and provides zero-knowledge encryption. If you later need team sharing, switch to 1Password or Bitwarden. If you need hardware-backed storage for a specific machine, add OS keychain for that machine only.

The beauty of ConfigSync's provider architecture is that you are never locked in. Your workflow stays the same; only the storage backend changes.

Ready to try ConfigSync?

Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.