---
title: internal/config
description: Go API reference for the config package.
---
# config
```go
import "github.com/jbcom/radioactive-ralph/internal/config"
```
Package config loads radioactive\-ralph's per\-repo TOML configuration and produces a resolved view that the supervisor consumes.
Two files live under .radioactive\-ralph/ in every repo that uses Ralph:
- config.toml \(committed\) — declared capability biases, per\-variant overrides, and daemon\-wide defaults.
- local.toml \(gitignored\) — operator\-specific overrides that don't belong in git: multiplexer preference, log verbosity, etc.
The config package only parses and validates. Applying variant defaults and safety floors happens at supervisor boot time in cmd/radioactive\_ralph/run.go \(M2 shape\) and will move into a dedicated Resolve\(\) entry point once the knob\-override matrix grows enough per\-variant overrides to warrant the abstraction \(M3\).
## Index
- [Constants](<#constants>)
- [Variables](<#variables>)
- [func IsMissingConfig\(err error\) bool](<#IsMissingConfig>)
- [func IsMissingLocal\(err error\) bool](<#IsMissingLocal>)
- [func LocalPath\(repoRoot string\) string](<#LocalPath>)
- [func Path\(repoRoot string\) string](<#Path>)
- [type Capabilities](<#Capabilities>)
- [type Daemon](<#Daemon>)
- [type File](<#File>)
- [func Load\(repoRoot string\) \(File, error\)](<#Load>)
- [type Local](<#Local>)
- [func LoadLocal\(repoRoot string\) \(Local, error\)](<#LoadLocal>)
- [type VariantFile](<#VariantFile>)
## Constants
Filename constants for the per\-repo config directory.
```go
const (
// Dir is the directory under the repo root.
Dir = ".radioactive-ralph"
// ConfigFile is committed.
ConfigFile = "config.toml"
// LocalFile is gitignored; per-operator overrides.
LocalFile = "local.toml"
// GitignoreFile inside Dir pins what ralph init appended so we can
// tell apart operator edits from generated lines on ralph init --refresh.
GitignoreFile = ".gitignore"
)
```
## Variables
Errors returned by the config package.
```go
var (
// ErrMissingConfig is returned when the caller expects a config file
// to exist but it doesn't. Use IsMissingConfig to check.
ErrMissingConfig = errors.New("config: .radioactive-ralph/config.toml not found; run `radioactive_ralph init` first")
// ErrMissingLocal is returned when the caller expects a local.toml
// and it doesn't exist (typical case: teammate cloned the repo and
// hasn't run `radioactive_ralph init --local-only` yet).
ErrMissingLocal = errors.New("config: .radioactive-ralph/local.toml not found; run `radioactive_ralph init --local-only` to create it")
)
```
## func [IsMissingConfig]()
```go
func IsMissingConfig(err error) bool
```
IsMissingConfig reports whether err indicates a missing config.toml.
## func [IsMissingLocal]()
```go
func IsMissingLocal(err error) bool
```
IsMissingLocal reports whether err indicates a missing local.toml.
## func [LocalPath]()
```go
func LocalPath(repoRoot string) string
```
LocalPath returns the absolute path to local.toml for repoRoot.
## func [Path]()
```go
func Path(repoRoot string) string
```
Path returns the absolute path to config.toml for repoRoot.
## type [Capabilities]()
Capabilities declares the operator's preferred helper per bias category. A zero\-valued string means "no preference / don't bias". The keys match the BiasCategory constants defined in the variant package \(M3\).
```go
type Capabilities struct {
Review string `toml:"review"`
SecurityReview string `toml:"security_review"`
DocsQuery string `toml:"docs_query"`
Brainstorm string `toml:"brainstorm"`
Debugging string `toml:"debugging"`
// DisabledBiases lists helpers the operator explicitly never wants
// Ralph to bias toward, even when they're present in the inventory.
// This is how operators opt out of a specific review helper in favor
// of another.
DisabledBiases []string `toml:"disabled_biases"`
}
```
## type [Daemon]()
Daemon holds repo\-wide defaults. Individual variants override these in their own \[variants.\\] section; safety floors still apply on top.
```go
type Daemon struct {
DefaultObjectStore string `toml:"default_object_store"` // "reference" | "full"
DefaultLfsMode string `toml:"default_lfs_mode"` // "full" | "on-demand" | "pointers-only" | "excluded"
CopyHooks *bool `toml:"copy_hooks"` // pointer so "unset" ≠ false
AllowConcurrentVariants *bool `toml:"allow_concurrent_variants"`
MultiplexerPreference string `toml:"multiplexer_preference"` // "tmux" | "screen" | "setsid"
LogLevel string `toml:"log_level"` // "debug" | "info" | "warn" | "error"
}
```
## type [File]()
File represents the shape of config.toml. Every section is optional so that a fresh \`radioactive\_ralph init\` can emit minimal files and iterate.
```go
type File struct {
Capabilities Capabilities `toml:"capabilities"`
Daemon Daemon `toml:"daemon"`
Variants map[string]VariantFile `toml:"variants"`
}
```
### func [Load]()
```go
func Load(repoRoot string) (File, error)
```
Load parses the per\-repo config file\(s\) under repoRoot/.radioactive\-ralph/. It returns ErrMissingConfig if config.toml is absent.
## type [Local]()
Local is the shape of local.toml \(gitignored per\-operator preferences\). Keeping it minimal on purpose — everything else belongs in config.toml.
```go
type Local struct {
MultiplexerPreference string `toml:"multiplexer_preference"`
LogLevel string `toml:"log_level"`
}
```
### func [LoadLocal]()
```go
func LoadLocal(repoRoot string) (Local, error)
```
LoadLocal parses the local.toml file under repoRoot/.radioactive\-ralph/. Returns ErrMissingLocal if absent; callers can decide whether to treat that as fatal or fall through to Daemon defaults.
## type [VariantFile]()
VariantFile is the per\-variant overrides block inside config.toml. Any field left zero\-valued falls through to the variant profile's hardcoded default, which falls through to Daemon, which falls through to project defaults. Safety floors may override any of these.
```go
type VariantFile struct {
Isolation string `toml:"isolation"`
ObjectStore string `toml:"object_store"`
SyncSource string `toml:"sync_source"`
LfsMode string `toml:"lfs_mode"`
ReviewBias string `toml:"review_bias"`
SecurityBias string `toml:"security_review_bias"`
DocsQueryBias string `toml:"docs_query_bias"`
BrainstormBias string `toml:"brainstorm_bias"`
DebuggingBias string `toml:"debugging_bias"`
SpendCapUSD *float64 `toml:"spend_cap_usd"`
CycleLimit *int `toml:"cycle_limit"`
// Fixit-specific advisor knobs. Only meaningful in
// [variants.fixit]. CLI flags take precedence; these are the
// defaults when no flag is passed.
MaxRefinementIterations *int `toml:"max_refinement_iterations"`
MinConfidenceThreshold *int `toml:"min_confidence_threshold"`
PlanModel string `toml:"plan_model"`
PlanEffort string `toml:"plan_effort"`
}
```
Generated by [gomarkdoc]()