git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/michaelboeding/skills/sidequest" ~/.claude/skills/comeonoliver-skillshub-sidequest && rm -rf "$T"
skills/michaelboeding/skills/sidequest/SKILL.mdSidequest: 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:
cd "<current_directory>" && claude -p "<context_prompt>" -
Returns control to original session (user continues main task)
Flags
| Flag | Description |
|---|---|
| Start fresh without context from parent session |
| Force use of iTerm (auto-detected by default) |
| 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)
flag (skip context entirely)--no-context
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 (
command available)claude
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
if you need to switch context between sessionsgit stash