Project Setup
islo init and islo add are the two commands that create and edit islo.yaml for you. Use init once to scaffold the file, then add to append setup steps as you bring more tools into the project.
For the full file schema, see islo.yaml. For how setup scripts execute inside the sandbox, see Setup Scripts.
islo init
Scaffold a new islo.yaml in the current directory.
Examples:
The wizard inspects the current directory and proposes setup steps for the languages and tools it finds, then writes the resulting islo.yaml. If the file already exists, init refuses to overwrite unless you pass --force.
Templates
Run islo init --list to see the live list — new templates may have been added since.
islo add
Append setup steps to islo.yaml. Each invocation writes one or more entries under setup_scripts:.
Examples:
The interactive flow (islo add with no args) scans the project for signals — lockfiles, manifests, version files — and shows a checklist of recipes you can enable. Pick the ones you want and Islo writes the entries.
Built-in recipes
islo add <name> knows recipes for the following:
Languages: python, node, go, rust, ruby, java
Package managers and build tools: uv, poetry, pip, pnpm, yarn, npm, bundler, cargo, go-modules
Services: docker-compose
Agent CLIs: claude-code, codex, gemini-cli, cursor-cli, copilot-cli, doubleagent
Other CLIs: gh, ripgrep, fd, jq
For anything not in the registry, use --script to add the install commands directly.
Custom scripts
--script is the escape hatch when no recipe fits:
The text is added verbatim as a new step under setup_scripts:. Edit the entry in islo.yaml afterwards if you want to rename it or split it across multiple lines.
Workflow
A typical project bootstrap:
After this point, islo.yaml is just a normal file in your repo — edit it directly when you outgrow the recipes.