One file says what a project runs.
.aidc.yaml lists the releases a project installs and which one is active. Quote versions so YAML keeps them as text.
install:
nodejs:
- "22.11.0"
- "20.18.0"
python:
- "3.12.0"
apt:
- curl
- jq
use:
nodejs: "22.11.0"
python: "3.12.0"| Key | Meaning |
|---|---|
install.<tool> | Releases declared for the tool |
use.<tool> | The active release. Needed when a tool lists several releases; a single entry is active on its own |
install.apt | Operating-system package names, installed together. They are packages, not releases you switch between |
The nearest .aidc.yaml in the current directory or a parent decides. A nested project overrides its parent. aidc set writes the file in the current directory, aidc set --global writes the user-wide fallback ~/.mait/aidc.yaml, and aidc setup reads only the directory you give it. A legacy line-format .aidc file converts with aidc config migrate.
Where packages come from and where they go.
| Variable | Default | Effect |
|---|---|---|
AIDC_HUB_ENABLED | true | Use AIDC Server as a source. false skips it |
AIDC_VENDOR_ENABLED | true | Fall back to the tool vendor's release site. false limits installs to packaged sources |
AIDC_LOCAL_PACKAGES_PATH | none | A directory of prepared packages checked before the Hub |
AIDC_DATA_DIR | ~/.aidc (/opt/aidc for root) | Installed tools and downloads. Changing it selects another tree and moves nothing |
AIDC_CACHE_DIR | ~/.cache/aidc | Session selections and short-lived files |
MAIT_CHANNEL | the channel recorded at install, else stable | stable, edge or beta: selects the Hub, the update service and the credentials file |
With the Hub and the vendor source both off, installs stop with No package sources available. and exit 10. A version no enabled source offers exits 4. Place only packages from a source you trust in the local package directory.
Settings that change what a command does.
Settings resolve from the first place that defines them: an environment variable with the AIDC_ prefix, then ~/.mait/aidc.yaml, then /etc/mait/aidc.yaml, then the built-in default. In a file, write the name in lowercase without the prefix.
aidc: hub_enabled: false download_timeout: 60
| Variable | Default | Effect |
|---|---|---|
AIDC_AUTO_SET_USE | true | Activate a version right after installing it. false leaves selections unchanged |
AIDC_HOOK_AUTO_INSTALL | false | What the shell hook does when a project needs a missing tool: nothing, warn, or setup |
AIDC_DOWNLOAD_TIMEOUT | 30 | Connection timeout in seconds for Hub downloads |
AIDC_ANDROID_ACCEPT_LICENSES | unset | true accepts the Android SDK terms during unattended installs |
AIDC_HOOK_AUTO_INSTALL=setup can download packages and run installers whenever a shell enters a project. Enable it only for repositories you trust. A malformed value stops configuration-dependent commands at startup and names the setting; aidc version, aidc help and aidc completion keep working.