bootstrap
Warp Rails Bootstrap
Configure Warp terminal for optimal Rails development with colored tabs.
Critical Rules
READ THESE FIRST. VIOLATIONS WILL BREAK THE CONFIG.
- MUST use AskUserQuestion - Do NOT generate the config until user selects their tabs
- MUST use
bin/dev- Ifbin/devexists, use it. Do NOT parse Procfile.dev for individual commands - MUST use lowercase color names - Only valid:
red,green,yellow,blue,magenta,cyan - MUST use
exec:for commands - Format:- exec: bin/devNOT- "bin/dev" - MUST use absolute paths - Never use
~or relative paths incwdfield - MUST start YAML with
---- The document separator is required - MUST read reference docs - Before generating YAML, read @./references/launch-config-schema.md
Workflow
Execute these steps IN ORDER. Do not skip steps.
Step 1: Verify Rails Project
Run this command:
test -f config/application.rb && echo "RAILS PROJECT" || echo "NOT RAILS"
If NOT RAILS, stop and tell user to run from a Rails directory.
Step 2: Gather Project Context
Run these commands and store the results:
# Get absolute path (REQUIRED for cwd)
pwd
# Get project name from directory
basename "$(pwd)"
# Check for bin/dev
test -f bin/dev && echo "HAS_BIN_DEV=true" || echo "HAS_BIN_DEV=false"
# Check for background job processor
grep -l "sidekiq\|good_job\|solid_queue" Gemfile 2>/dev/null && echo "HAS_JOBS=true" || echo "HAS_JOBS=false"
IMPORTANT:
- If
HAS_BIN_DEV=true, the dev command isbin/dev. Period. Do NOT look inside Procfile.dev. - If
HAS_BIN_DEV=false, the dev command isbin/rails server.
Step 3: STOP - Ask Tab Configuration
You MUST use AskUserQuestion here. Do NOT proceed until user responds.
Ask: "Which tabs do you want in your Warp launch configuration?"
Use multi-select with these options:
| Label | Description |
|---|---|
| Server (green) | Run dev server (bin/dev or rails server) |
| Claude (blue) | Start Claude Code session |
| Shell (yellow) | Empty terminal for commands |
| Console (magenta) | Rails console |
| Logs (cyan) | Tail log/development.log |
If HAS_JOBS=true, also include: | Jobs (red) | Background job processor |
WAIT FOR USER RESPONSE BEFORE CONTINUING.
Step 4: Read Reference Documentation
Before writing ANY YAML, read the schema reference:
Read @./references/launch-config-schema.md
This ensures you use the correct format.
Step 5: Generate Launch Configuration
Create the launch configuration file.
File location: ~/.warp/launch_configurations/{project-name}.yaml
EXACT FORMAT TO USE:
---
name: {project-name}
windows:
- tabs:
- title: Server
color: green
layout:
cwd: {ABSOLUTE_PATH_FROM_PWD}
commands:
- exec: bin/dev
- title: Claude
color: blue
layout:
cwd: {ABSOLUTE_PATH_FROM_PWD}
commands:
- exec: claude
- title: Shell
color: yellow
layout:
cwd: {ABSOLUTE_PATH_FROM_PWD}
FORMAT RULES:
- File MUST start with
---(YAML document separator) colorMUST be lowercase:green,blue,yellow,magenta,cyan,redcolorMUST NOT be capitalized or an object with r/g/b valuescommandsMUST useexec:prefix:- exec: bin/devcommandsMUST NOT be plain strings like- "bin/dev"cwdMUST be the absolute path frompwdcommand (no quotes needed)cwdMUST NOT use~or relative paths
Step 6: Display Summary
Show the user what was created:
Warp launch configuration created for {project-name}!
Location: ~/.warp/launch_configurations/{project-name}.yaml
How to use:
Keyboard: Ctrl-Cmd-L → select "{project-name}"
Direct URL: warp://launch/{project-name}.yaml
Tabs configured:
{list each tab with color and command}
Common Mistakes to Avoid
| Wrong | Right |
|---|---|
color: Green |
color: green |
color: { r: 34, g: 197, b: 94 } |
color: green |
commands: ["bin/dev"] |
commands: [- exec: bin/dev] |
cwd: ~/project |
cwd: /Users/avi/project |
cwd: . |
cwd: /Users/avi/project |
Missing --- at start |
Start file with --- |
| Parsing Procfile.dev for commands | Just use bin/dev |
| Skipping AskUserQuestion | MUST ask and wait for response |
Reference Files
- @./references/launch-config-schema.md - Launch configuration YAML format