The registry is a local-first, OCI-distributable system for managing agent configurations, secrets, and parameters. It is backed by TinyDB for local persistence and ORAS for OCI artifact distribution.
$ALQUIMIA_REGISTRY_DIR/ (default: /tmp/.alquimia)
├── metadata.json # All agentspace metadata
│ └── dist.json # Agents, secrets, parameters (TinyDB)
└── history/ # Persisted local sessions
from alquimia.registry.registry import AlquimiaRegistry
registry = AlquimiaRegistry ()
registry. load ( { " agentspace_id " : " default " } )
# registry.current_agentspace is now set
Method Description create(metadata)Create a new agentspace load(selector)Load an agentspace by selector save(data)Update agentspace metadata destroy()Delete the agentspace and all data list_repos()List all agentspaces query_repos(filters)Filter agentspaces by TinyDB predicates
Method Description add_agent(spec)Upsert an agent specification get_agent(assistant_id)Get a single agent by ID list_agents()List all agents in the current agentspace query_agents(selector)Filter agents by TinyDB predicates delete_agents(filters)Delete agents matching filters
Method Description add_secret(secret)Register a secret definition list_secrets()List all secrets query_secrets(filters)Filter secrets delete_secrets(filters)Delete secrets matching filters
Method Description add_parameters(param_def)Register parameter definitions list_parameters()List all parameters query_parameters(filters)Filter parameters delete_parameters(filters)Delete parameters matching filters
Method Description push(tag, **annotations)Publish agentspace to OCI registry pull(source_repo_id)Fetch agentspace from OCI registry delete_manifest(tag)Remove a published manifest
Secrets are referenced in agent specs with $secretRef markers:
{ "api_key" : { "$secretRef" : " OPENAI_API_KEY " } }
key: str # The secret key name
scope: str # "global", "shared", or "local"
description: str | None = None
Resolver ALQUIMIA_REGISTRY_SECRET_RESOLVERBackend EnvSecretResolverenv (default)Environment variables VaultSecretResolvervaultHashiCorp Vault KV v2
Scope Key pattern Example global{KEY}OPENAI_API_KEYshared{realm}_{KEY}abc123_OPENAI_API_KEYlocal{realm}_{assistant_id}_{KEY}abc123_mybot_OPENAI_API_KEY
Agent configurations are distributed as OCI artifacts:
Artifact type: application/vnd.alquimia.registry.v1
Layer media type: application/vnd.alquimia.registry.dist.v1+json
alquimia registry publish --agentspace-id default --tag v1.0.0
alquimia registry fetch --agentspace-id default --source ghcr.io/myorg/my-agents:v1.0.0
Variable Default Description ALQUIMIA_REGISTRY_DIR/tmp/.alquimiaLocal registry storage directory ALQUIMIA_LOCAL_SESSIONS_DIR$ALQUIMIA_REGISTRY_DIR/historySession persistence directory ALQUIMIA_REGISTRY_SECRET_RESOLVERenvSecret resolver backend ALQUIMIA_OCI_REGISTRY_DEFAULTghcr.ioDefault OCI registry ORAS_PLAIN_HTTPfalseUse plain HTTP for ORAS ORAS_INSECUREfalseSkip TLS verification VAULT_ADDR— Vault server URL VAULT_TOKEN— Vault authentication token VAULT_MOUNT_POINTsecretVault KV v2 mount point
Alquimia-ai/alquimia-core — src/alquimia/registry/registry.py, src/alquimia/registry/repo.py, src/alquimia/registry/secret.py