Set Up Solo Projects
Configure minimum project state needed for repeatable local work. Keep shared command definitions in solo.yml; keep machine-specific runtime state local.
Workflow
- Confirm target repository root and whether project already exists.
- Call
list_projectsbefore creating anything. - Call
select_projectwhen scope is ambiguous. - Call
get_projectorget_project_statusto inspect existing registration. - Call
create_projectonly for an existing directory not already registered.
- Call
- Inspect repository entry points before proposing commands.
- Prefer existing
solo.ymlover command auto-detection. - Otherwise inspect package scripts, lockfiles, Procfiles, task runners, framework manifests, and monorepo layout.
- Reuse existing project commands instead of inventing wrappers.
- Prefer existing
- Choose storage deliberately.
- Save team-relevant repeatable commands to root
solo.yml. - Keep personal, experimental, or machine-specific commands local.
- Never place terminals or agents in
solo.yml; only command processes are supported.
- Save team-relevant repeatable commands to root
- Write smallest explicit configuration.
- Set
auto_starton every command because omitted YAML defaults totrue; default it tofalseunless user requests automatic launch. - Use relative
working_dirpaths inside project root. - Commit only non-secret environment values.
- Prefer native tool watch mode; add narrow
restart_when_changedglobs only when needed.
- Set
- Configure execution environment when requested.
- Choose global inheritance unless project needs specific shell or Windows/WSL environment.
- Configure per-distro WSL root mapping when host path cannot run directly inside distribution.
- Leave unavailable profile selected only when reinstall/repair is intentional.
- Review sync and trust.
- Treat file-backed command changes as executable code review.
- Sync changed YAML in Solo.
- Require user to review and trust new or changed variants in Solo UI; never bypass trust.
- Do not assume sync starts or restarts commands.
- Verify setup without broad runtime mutation.
- Re-read project status and command definitions.
- Report local-only versus YAML-backed choices, trust blockers, and any required manual UI action.
Decisions
- Prefer repository root as Solo project root. For monorepos, use per-command
working_diror package filters. - Prefer relative paths over valid in-root absolute paths for portability.
- Default shared commands to
auto_start: falseandauto_restart: false; enable either only for named always-on service requested by user/runbook. - Enable crash auto-restart only for processes expected to remain alive.
- Enable project auto-trust only for private repositories fully controlled by user.
- Preserve existing
solo.ymlformatting and unrelated entries when editing.
Boundary
- Stop after configuration and trust handoff unless user also asks to run processes.
- Do not start, stop, restart, clear output, or delete project as setup side effects.
- Treat YAML-backed commands as shared processes; do not mutate their runtime state without explicit user/runbook authority.
- Do not delete project files; Solo project deletion removes Solo state only and requires explicit confirmation.
- Do not add scripts or wrapper commands when repository-native command already works.
- Preserve unrelated dirty-tree work. Leave Git index, commits, pushes, publishing, deployment, and integration to root/operator.
Reference
Read project configuration reference before editing solo.yml, choosing local versus shared storage, handling sync/trust, or configuring execution profiles.