Configuration, profiles, and XDG paths
argod loads TOML configuration at startup from $XDG_CONFIG_HOME/argo/config.toml, falling back to $HOME/.config/argo/config.toml. Restart the daemon after changing the file.
[download]directory = "~/Downloads"default_priority = "normal"max_concurrent_downloads = 3max_chunks_per_download = 4rate_limit = "0"
[network]pause_on_metered = falseresume_after_metered = false
[qos]policy = "off"link_rate = "0"latency_target = "20ms"min_rate = "10M"max_rate = "80M"probe_target = ""probe_timeout = "1s"sample_interval = "1s"manual_baseline = ""Unknown fields and invalid values fail startup with an actionable error rather than being ignored.
Download destination
Section titled “Download destination”download.directory accepts an absolute path or a path beginning with ~/. Argo expands the home directory safely and creates a missing valid destination. It never falls back to the CLI working directory.
If the destination filename already exists, Argo chooses a predictable sibling such as file (1).iso. Internal .part files are never stored in the completed-download directory.
Limits
Section titled “Limits”Download rate_limit values are bytes per second. QoS link and adaptive rate values are bits per second. K, M, and G are decimal suffixes; 0 means unlimited where documented.
Concurrency and chunk counts must be positive. The scheduler bounds active downloads, and the download engine bounds Range workers per transfer.
Profiles
Section titled “Profiles”Profiles can override rate, priority, concurrency, metered behavior, and traffic policy:
[profiles.gaming]download_limit = "30M"default_priority = "high"max_concurrent_downloads = 2pause_on_metered = trueresume_after_metered = truepolicy = "latency"latency_target = "15ms"min_rate = "10M"max_rate = "80M"Activate a configured profile with argo profile gaming. The active profile is persisted. resume_after_metered is valid only when pause_on_metered is enabled.
Runtime paths
Section titled “Runtime paths”| Data | Preferred path | Fallback |
|---|---|---|
| Configuration | $XDG_CONFIG_HOME/argo/config.toml |
$HOME/.config/argo/config.toml |
| Database | $XDG_DATA_HOME/argo/argo.db |
$HOME/.local/share/argo/argo.db |
| Partial files | $XDG_STATE_HOME/argo/parts/<download-id>.part |
$HOME/.local/state/argo/parts/<download-id>.part |
| Daemon socket | $XDG_RUNTIME_DIR/argo/argod.sock |
Private per-user directory below the system temporary directory |
| Completed files | download.directory |
$HOME/Downloads |
Configured XDG directory variables must be absolute. Relative values are rejected so daemon state cannot become dependent on its working directory.