Shared configuration library for the Asgard ecosystem.
Heimdall provides a typed, validated configuration store that Odin, Muninn, and Huginn import directly. Configuration lives in a local SQLite database with schema validation, change history, and a CLI for manual management.
import "github.com/asgardehs/heimdall"
h, err := heimdall.Open(logger)
defer h.Close()
// Read config
entry, err := h.Get("muninn", "vault_path")
fmt.Println(entry.Value)
// Write config (validated against schema)
err = h.Set("ai", "provider", "anthropic")
// List all keys in a namespace
entries, err := h.List("odin")
// Reset to default
err = h.Reset("odin", "theme")heimdall config get muninn vault_path
heimdall config set ai provider anthropic
heimdall config list odin
heimdall config reset odin themeSecrets (like ai.api_key) are masked in CLI output.
See the Wiki for full documentation:
- Quick Start — setup and first use
- Go API — library reference
- CLI Reference — command line usage
- Configuration Keys — namespaces, types, and defaults
# Library — just import it
go get github.com/asgardehs/heimdall
# CLI
go build -o heimdall ./cmd/heimdallNo CGO required. Uses pure Go SQLite (modernc.org/sqlite).
GPLv3 — see LICENSE.
In Norse mythology, Heimdall is the watchful guardian of the Bifrost bridge, keeper of the horn Gjallarhorn. He sees all, hears all, and ensures the boundaries of Asgard are maintained. Here, Heimdall guards the shared configuration that binds the ecosystem together.
Part of the Asgard EHS Family