mait.sh1.132.1

Private beta: features and content may change. No warranty; use at your own risk.

Customize aidc

Describe a project's tools in its list file, choose package sources and locations, and set how AIDC behaves.

Beta
Manifest

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.

.aidc.yaml
install:
  nodejs:
    - "22.11.0"
    - "20.18.0"
  python:
    - "3.12.0"
  apt:
    - curl
    - jq
use:
  nodejs: "22.11.0"
  python: "3.12.0"
KeyMeaning
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.aptOperating-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.

Sources

Where packages come from and where they go.

VariableDefaultEffect
AIDC_HUB_ENABLEDtrueUse AIDC Server as a source. false skips it
AIDC_VENDOR_ENABLEDtrueFall back to the tool vendor's release site. false limits installs to packaged sources
AIDC_LOCAL_PACKAGES_PATHnoneA 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/aidcSession selections and short-lived files
MAIT_CHANNELthe channel recorded at install, else stablestable, 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.

Behavior

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.

~/.mait/aidc.yaml
aidc:
  hub_enabled: false
  download_timeout: 60
VariableDefaultEffect
AIDC_AUTO_SET_USEtrueActivate a version right after installing it. false leaves selections unchanged
AIDC_HOOK_AUTO_INSTALLfalseWhat the shell hook does when a project needs a missing tool: nothing, warn, or setup
AIDC_DOWNLOAD_TIMEOUT30Connection timeout in seconds for Hub downloads
AIDC_ANDROID_ACCEPT_LICENSESunsettrue 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.

Next

Where to go next.