OmniVault¶
OmniVault is a unified Go library for secret management across multiple providers. It provides a single interface for accessing secrets from password managers, cloud secret managers, enterprise vaults, and local storage.
Features¶
- Unified Interface - Single API for all secret storage backends
- Extensible Architecture - Add custom providers as separate Go modules without modifying the core library
- URI-Based Resolution - Reference secrets using URIs like
op://vault/item/fieldoraws-sm://secret-name - Built-in Providers - Environment variables, file-based, and in-memory storage included
- Zero External Dependencies - Core library has no external dependencies beyond the standard library
- CLI Tool - Command-line interface with encrypted local storage and daemon architecture
- Secure Local Storage - AES-256-GCM encryption with Argon2id key derivation
Two Ways to Use OmniVault¶
As a Go Library¶
Import OmniVault into your Go application to access secrets from multiple providers:
import "github.com/agentplexus/omnivault"
client, _ := omnivault.NewClient(omnivault.Config{
Provider: omnivault.ProviderEnv,
})
secret, _ := client.Get(ctx, "API_KEY")
fmt.Println(secret.Value)
Get started with the library →
As a CLI Tool¶
Use the omnivault command-line tool for secure local secret management:
omnivault daemon start
omnivault init
omnivault set database/password
omnivault get database/password
Quick Links¶
| Section | Description |
|---|---|
| Installation | Install the library or CLI |
| Library Quick Start | Get started with the Go library |
| CLI Quick Start | Get started with the CLI |
| Providers | Available secret providers |
| Security | CLI security model |
| Changelog | Release history |
License¶
MIT License - see LICENSE for details.