Skip to main content
Version: 1.0.0

Environment variables

Every variable is optional — the default pipeline is fully local and needs none of them.

Pre-1.0 GRAPHIFY_* names are still read everywhere as a fallback; an ASTRIA_* variable always takes precedence. Set the new names, then remove the old ones.

LLM semantic enrichment​

Activates the enrich_with_semantics() pipeline stage (docs, papers, images → concept nodes). See Semantic enrichment for behavior.

VariablePurpose
ASTRIA_LLM_BACKENDSelects the backend explicitly: claude, openai, or gemini
ASTRIA_LLM_API_KEYAPI key — Anthropic Claude by default, or the OpenAI-compatible provider when ASTRIA_LLM_BASE_URL is set
ASTRIA_LLM_BASE_URLEndpoint for any OpenAI-compatible provider (OpenAI, DeepSeek, Ollama, LM Studio, custom)
ASTRIA_LLM_MODELOverrides the default model for the selected backend
ASTRIA_LLM_CONCURRENCYSize of the parallel LLM worker pool
ASTRIA_LLM_PROVIDERLegacy alias: if set together with ASTRIA_LLM_BASE_URL, forces the OpenAI-compatible backend
OPENAI_API_KEYFallback key for the OpenAI-compatible backend
OPENAI_BASE_URLFallback base URL for the OpenAI-compatible backend when ASTRIA_LLM_BASE_URL is unset
GEMINI_API_KEY / GOOGLE_API_KEYKey for the Gemini backend

Without a backend configured, builds stay fully offline and deterministic. Per-run overrides without env vars: astria run . --backend openai --model gpt-4o-mini.

Keys are sent in request headers (the Gemini key never goes in the URL, where it would leak into logs and history). When ASTRIA_LLM_BASE_URL points at a plain-http endpoint that is not local (localhost, 127.0.0.1, [::1] — Ollama/LM Studio setups are silent), a warning is printed because the API key travels unencrypted.

Local embeddings​

VariablePurpose
ASTRIA_EMBED_CACHE_DIROverrides where the embedding model is cached (default ~/.astria-embed-cache; ~90 MB downloaded once, then offline)

Query logging​

Appends a JSONL line (ts, kind, question, nodes, duration) per query for agent/tooling consumption. Logging never breaks a query — it fails silent.

VariablePurpose
ASTRIA_QUERY_LOGPath of the JSONL log file; ASTRIA_QUERY_LOG=1 uses the default location
ASTRIA_QUERY_LOG_ENABLE1 turns logging on without choosing a path
ASTRIA_QUERY_LOG_DISABLE1 always wins — logging is off regardless of the other two

Hook guard​

The editor PreToolUse guard (see Agent integration). These are read by the hook process, so set them in your editor/agent environment, not your shell profile.

VariablePurpose
ASTRIA_HOOK_STRICT1 enables strict mode (gates un-indexed reads); 0 or the --strict flag also work
ASTRIA_HOOK_STRICT_TTLSeconds a graph stays considered fresh in strict mode (default 1800)