The launcher now supports managing multiple projects beyond ushadow. Each project can have its own configuration, prerequisites, and infrastructure.
- Open launcher settings (⚙️ icon)
- Toggle "Multi-Project Mode" to ON
- Navigate to "Setup & Installation" tab
- You'll see the ProjectManager UI
- Click "+ Add Project" in the ProjectManager
- Select your project folder (e.g.,
/Users/stu/repos/chronicle) - The launcher will:
- Use the folder as the project root
- Create worktrees in
../worktrees/projectname - Look for
.launcher-config.yamlin the project root
Each project needs a .launcher-config.yaml in its root directory:
project:
name: chronicle
display_name: Chronicle
prerequisites:
required:
- docker
- git
optional:
- python
setup:
command: ./setup.sh
env_vars:
- PROJECT_ROOT
infrastructure:
compose_file: docker-compose.yml
project_name: chronicle-infra
containers:
naming_pattern: "{env_name}-{service}"
primary_service: backend
health_endpoint: /health
ports:
allocation_strategy: offset
base_port: 8000
offset:
min: 0
max: 100
step: 10
worktrees:
default_parent: ../worktrees/chronicleSee .launcher-config.template.yaml for full documentation.
- Prerequisites per project: Currently uses global prerequisites. Need to load from project config.
- Infrastructure per project: Infrastructure panel doesn't yet read from project config.
- Environment commands: setup.command not yet integrated into environment creation flow.
For projects like Chronicle:
- Add the project to get it in the list
- Manually create worktrees using git:
cd /Users/stu/repos/chronicle git worktree add ../worktrees/chronicle/dev - Use discovery - The launcher will discover and manage existing worktrees
- Load prerequisites from active project's config
- Load infrastructure services from project config
- Run setup.command when creating new environments
- Show project-specific status in UI
- Add config editor UI for projects without
.launcher-config.yaml