Tour
Take an interactive tour of agentic-loop - the system for going from idea to shipped code with AI.
---
description: Take an interactive tour of agentic-loop - the system for going from idea to shipped code with AI.
---
# Vibe & Thrive Tour
## Step 1: Check & Fix Setup
Print this exactly:
╦ ╦╦╔╗ ╔═╗ ┬ ╔╦╗╦ ╦╦═╗╦╦ ╦╔═╗ ╚╗╔╝║╠╩╗║╣ ┌┼─ ║ ╠═╣╠╦╝║╚╗╔╝║╣ ╚╝ ╩╚═╝╚═╝ └┘ ╩ ╩ ╩╩╚═╩ ╚╝ ╚═╝
Checking setup...
**Check each item and FIX if missing:**
1. **Check jq installed:**
```bash
command -v jq
- If missing: Say "⚠️ jq not found. Install it:
brew install jq(macOS) orapt install jq(Linux)" - If found: ✓ jq installed
Check slash commands (skills):
test -d .claude/skills && ls -d .claude/skills/*/ 2>/dev/null | wc -l- If missing or count is 0: Copy from node_modules:
mkdir -p .claude/skills && cp -r node_modules/agentic-loop/.claude/skills/* .claude/skills/ - Then: ✓ Slash commands installed
- If missing or count is 0: Copy from node_modules:
Check Ralph initialized:
test -f .ralph/config.json- If missing: Run
npx ralph init - Then: ✓ Ralph initialized
- If missing: Run
Check CLAUDE.md:
test -f CLAUDE.md- If missing: Create a basic one:
echo "# Project Guide for Claude" > CLAUDE.md - Then: ✓ CLAUDE.md created
- If missing: Create a basic one:
Check Claude Code hooks:
test -f .claude/settings.json && jq -e '.hooks' .claude/settings.json > /dev/null 2>&1- If missing: Install hooks:
npx ralph hooks - Then: ✓ Claude Code hooks installed
- If missing: Install hooks:
Check Docker:
test -f docker-compose.yml || test -f docker-compose.yaml || test -f compose.yml- If found:
- Update config:
jq '.docker.enabled = true' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json - Say: "✓ Docker detected - Ralph will run commands inside containers"
- Skip Playwright check (browser verification uses curl in Docker mode)
- Update config:
- If found:
Check & Install Playwright (if not Docker):
Check BOTH the npm package AND browser binaries:
# Check npm package npm list playwright 2>/dev/null # Check browser binaries exist (macOS or Linux path) ls ~/Library/Caches/ms-playwright/chromium-* 2>/dev/null || ls ~/.cache/ms-playwright/chromium-* 2>/dev/null- If BOTH exist: Say "✓ Playwright available"
- If either is missing:
Say: "Installing Playwright for browser verification (~150MB)..."
npm install playwright && npx playwright install chromium- If successful: Say "✓ Playwright installed"
- If failed: Say "⚠️ Playwright installation failed. Browser verification will use basic HTTP checks. You can try manually:
npm install playwright && npx playwright install chromium"
Say: "Setup verified! Let me configure Ralph for your project..."
Step 2: Auto-Configure Ralph
Auto-detect and configure project settings:
2a. Detect Project Structure
Check these directories and set paths in config:
# Check what exists
test -d frontend && echo "frontend exists"
test -d client && echo "client exists"
test -d backend && echo "backend exists"
test -d core && echo "core exists"
test -d src && echo "src exists"
Based on results, update config:
frontend/exists → setpaths.frontendto"frontend"client/exists → setpaths.frontendto"client"backend/exists → setpaths.backendto"backend"core/exists → setpaths.backendto"core"- Only
src/exists → setpaths.frontendto"."
2b. Detect URLs
Check .env, .env.example, or docker-compose.yml for port numbers:
grep -h "PORT\|URL\|localhost" .env .env.example docker-compose.yml 2>/dev/null | head -5
Also check package.json for port in dev script:
cat package.json 2>/dev/null | jq -r '.scripts.dev // empty'
Set URLs based on findings (defaults: frontend=3000, backend=8000):
jq '.urls.frontend = "http://localhost:3000" | .urls.backend = "http://localhost:8000"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
2c. Detect Commands
Read package.json scripts and update config:
# Get scripts from package.json (check root and frontend/)
cat package.json 2>/dev/null | jq -r '.scripts | to_entries[] | "\(.key): \(.value)"' | head -10
Update config with detected commands:
# Example: if package.json has "dev": "next dev"
jq '.commands.dev = "npm run dev"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
For fullstack projects with separate frontend:
jq '.commands.dev = "cd frontend && npm run dev"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
2d. Detect Test Directory and Patterns
Check for test directories and files:
# Check common test directories
for dir in tests test __tests__ spec src/__tests__; do
test -d "$dir" && echo "Found test directory: $dir"
done
# Check for test files (colocated pattern)
find . -type f \( -name "*.test.ts" -o -name "*.spec.ts" -o -name "*_test.py" -o -name "test_*.py" -o -name "*_test.exs" -o -name "*_test.go" \) \
-not -path "*/node_modules/*" -not -path "*/.venv/*" 2>/dev/null | head -3
Update config based on findings:
# If tests/ directory found
jq '.tests.directory = "tests"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
# If test/ directory found (Elixir convention)
jq '.tests.directory = "test"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
# If colocated tests found (no test directory, but *.test.ts files exist)
jq '.tests.directory = "src"' .ralph/config.json > .ralph/config.tmp && mv .ralph/config.tmp .ralph/config.json
Set test patterns based on project type:
# Node/TypeScript projects
jq '.tests.patterns = "*.test.ts,*.test.tsx,*.spec.ts,*.spec.tsx,*.test.js,*.spec.js"' .ralph/c
Maintain Tour?
Let people know it's listed here — add the badge (live metrics, light/dark aware) or a plain link to your README or docs.
[Tour on getagentictools](https://getagentictools.com/loops/allierays-vibe-thrive-tour?ref=badge)