Kits¶
Kits are modular bundles that group everything needed for a language or tool: installation, environment setup, caching, onboarding, and container configuration.
Available Kits¶
| Kit | Description | Activation |
|---|---|---|
| node | Node.js LTS via fnm, global dev packages | Always on |
| python | Python 3 with uv, linters, formatters | Default |
| java | JDK 17/21/25 via mise, Maven, Gradle | Default |
| docker | Docker-in-Docker with buildx and compose | Default |
| github | GitHub CLI (gh) | Default |
| openspec | OpenSpec CLI | Default |
| shell | oh-my-zsh, tmux, direnv | Always on |
| ports | Automatic port forwarding for web services | Always on |
| ast-grep | AST-based code search, lint, and rewrite (sg) |
Opt-in |
| browser | Chromium browser via Playwright | Opt-in |
| cx | Semantic code navigation for AI agents | Opt-in |
| apt | Extra apt packages in the project image | Opt-in |
Activation Tiers¶
Kits have three activation levels:
| Tier | Behavior |
|---|---|
| Always on | Active even if not mentioned in config. Cannot be disabled. |
| Default | Added to your config automatically when first detected. Active when present in config. |
| Opt-in | Only active if you explicitly enable it in your config. |
When Asylum detects a new kit (e.g., after an update), it prompts you to activate Default kits and adds Opt-in kits as commented-out entries in your config.
Enabling Kits¶
Add a kit to your .asylum config with an empty map to enable it with defaults, or with specific options:
kits:
docker: {} # enable with defaults
java:
versions: ["17", "21"] # enable with options
Disabling Kits¶
Default-tier kits can be disabled:
kits:
github:
disabled: true
Always-on kits (node, shell, ports) cannot be disabled.
Kit Resolution¶
When kits are configured explicitly (via config or --kits flag):
- Full kit (e.g.,
java) — activates the kit and all its sub-kits (maven, gradle) - Specific sub-kit (e.g.,
java/maven) — activates the parent kit and only that sub-kit - Always-on kits are added automatically regardless of config
Sub-Kits¶
Some kits contain sub-kits for optional features:
| Kit | Sub-Kits |
|---|---|
| node | node/npm, node/pnpm, node/yarn |
| python | python/uv |
| java | java/maven, java/gradle |
When you enable a kit, all its sub-kits are included. To be selective, reference sub-kits directly with --kits java/maven.
Dependencies¶
Kits can depend on other kits. For example, openspec depends on node. Missing dependencies are auto-activated at resolve time.