Skip to content

OmniVault

Build Status Go Report Card GoDoc License

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/field or aws-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

Get started with the CLI →

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.