Sidequest: Spawn Parallel Claude Sessions
Launch a new Claude Code session in a separate terminal to work on a different task while keeping your current session active.
Usage
/sidequest "Add a settings page with dark mode toggle" /sidequest "Set up the database schema" --no-context /sidequest # Interactive prompt for task description
What It Does
- •
Gathers context (unless
--no-context):- •Current working directory
- •Current git branch
- •Brief summary of what's being worked on
- •Key files recently modified/read
- •
Opens new terminal tab/window:
- •macOS Terminal.app or iTerm2 supported
- •Automatically detects which terminal is in use
- •
Starts Claude with context:
bashcd "<current_directory>" && claude -p "<context_prompt>"
- •
Returns control to original session (user continues main task)
Flags
| Flag | Description |
|---|---|
--no-context | Start fresh without context from parent session |
--iterm | Force use of iTerm (auto-detected by default) |
--terminal | Force use of Terminal.app (auto-detected by default) |
Implementation
When user invokes /sidequest, execute the following:
Step 1: Parse Arguments
Check if the user provided:
- •A task description (required, or prompt for it)
- •
--no-contextflag (skip context entirely)
If no task description provided, ask the user what they want to work on.
Step 2: Ask About Context (unless --no-context)
IMPORTANT: If --no-context was NOT specified, use the AskUserQuestion tool to ask:
Use AskUserQuestion with: - question: "Include a summary of this chat in the sidequest?" - header: "Context" - options: 1. "Yes, include summary" - "Pass context about current work to help the new session understand what you're doing" 2. "No, start fresh" - "Start the sidequest with no context from this session"
Step 3: Gather Context (if user chose to include summary)
If user selected "Yes, include summary":
- •Summarize the current conversation (what task is being worked on, key decisions made)
- •Get current git branch:
git branch --show-current - •Identify key files from recent tool calls
- •Note any relevant todos or blockers
If user selected "No, start fresh":
- •Skip context gathering, proceed with just the task description
Step 4: Build Context Prompt
Format the prompt for the new session:
With context:
SIDEQUEST from main task. Main task context: - Working directory: /path/to/project - Git branch: feature/user-auth - Was working on: <summary of current task> - Key files: <recent files> - Progress: <key progress and decisions made> Your sidequest task: <user's task description> This is separate from the main task. Focus only on this sidequest.
Without context:
SIDEQUEST MODE Your task: <user's task description> This is an independent task. Focus only on completing this sidequest.
Step 5: Detect Terminal and Launch
# Detect terminal
if [[ -z "$TERMINAL_APP" ]]; then
if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
TERMINAL_APP="iTerm"
else
TERMINAL_APP="Terminal"
fi
fi
# Escape the prompt for shell
ESCAPED_PROMPT=$(echo "$CONTEXT_PROMPT" | sed 's/"/\\"/g')
# Launch based on terminal
if [[ "$TERMINAL_APP" == "iTerm" ]]; then
osascript -e "tell application \"iTerm\"
tell current window
create tab with default profile
tell current session
write text \"cd '$PWD' && claude -p \\\"$ESCAPED_PROMPT\\\"\"
end tell
end tell
end tell"
else
osascript -e "tell application \"Terminal\"
activate
do script \"cd '$PWD' && claude -p \\\"$ESCAPED_PROMPT\\\"\"
end tell"
fi
Step 6: Confirm to User
After launching, inform the user:
Sidequest started in new terminal! Task: <task description> Continue your main quest here.
Example Workflow
Main terminal (building user authentication):
You: Working on the login API endpoint...
You: /sidequest "Add a settings page with dark mode toggle"
Claude: [AskUserQuestion]
Include a summary of this chat in the sidequest?
> Yes, include summary
No, start fresh
You: (selects "Yes, include summary")
Claude: Sidequest started in new terminal!
Task: Add a settings page with dark mode toggle
Context: Included summary of current auth work
Continue your main quest here.
You: (continues auth work)
New terminal (opens automatically):
Claude: SIDEQUEST MODE
Task: Add a settings page with dark mode toggle
Context from main session:
- Working on: Building user authentication with JWT
- Branch: feature/user-auth
- Key files: auth.ts, login.tsx, middleware.ts
- Progress: Login endpoint complete, working on token refresh
Let me look at the existing pages structure...
Example without context:
You: /sidequest "Set up CI/CD pipeline" --no-context
Claude: Sidequest started in new terminal!
Task: Set up CI/CD pipeline
(No context passed - starting fresh)
Script Location
The sidequest shell script is located at:
${CLAUDE_PLUGIN_ROOT}/skills/sidequest/scripts/sidequest.sh
Execution
To run a sidequest:
bash "${CLAUDE_PLUGIN_ROOT}/skills/sidequest/scripts/sidequest.sh" \
--task "Your task description" \
--context "Summary of current work" \
--branch "$(git branch --show-current 2>/dev/null || echo 'N/A')" \
--files "auth.ts,login.tsx"
Or without context:
bash "${CLAUDE_PLUGIN_ROOT}/skills/sidequest/scripts/sidequest.sh" \
--task "Your task description" \
--no-context
Requirements
- •macOS (uses osascript for terminal control)
- •Terminal.app or iTerm2
- •Claude Code CLI installed (
claudecommand available)
Notes
- •The sidequest runs independently - changes in one session don't affect the other
- •Both sessions share the same working directory and git state
- •Be careful with conflicting file edits between sessions
- •Use
git stashif you need to switch context between sessions