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 What It Does 1. Gathers context (unless ): - Current working directory - Current git branch - Brief summary of what's being worked on - Key files recently modified/read 2. Opens new terminal tab/window : - macOS Terminal.app or iTerm2 supported - Automatically detects which terminal is in use 3. Starts Claude with context : 4. Returns control to original session (user continues main task) Flags | Flag | Description | |--…

\\n'/\\\\n}\"\n echo \"$str\"\n}\n\n# Launch in iTerm\nlaunch_iterm() {\n local prompt=\"$1\"\n local escaped_prompt\n escaped_prompt=$(escape_for_applescript \"$prompt\")\n\n osascript \u003c\u003cEOF\ntell application \"iTerm\"\n activate\n tell current window\n create tab with default profile\n tell current session\n write text \"cd '$PWD' && claude -p \\\"$escaped_prompt\\\"\"\n end tell\n end tell\nend tell\nEOF\n}\n\n# Launch in Terminal.app\nlaunch_terminal() {\n local prompt=\"$1\"\n local escaped_prompt\n escaped_prompt=$(escape_for_applescript \"$prompt\")\n\n osascript \u003c\u003cEOF\ntell application \"Terminal\"\n activate\n do script \"cd '$PWD' && claude -p \\\"$escaped_prompt\\\"\"\nend tell\nEOF\n}\n\n# Main execution\nmain() {\n local terminal_app\n terminal_app=$(detect_terminal)\n\n local prompt\n prompt=$(build_prompt)\n\n echo \"Launching sidequest in $terminal_app...\"\n echo \"Task: $TASK\"\n\n case \"$terminal_app\" in\n iTerm)\n launch_iterm \"$prompt\"\n ;;\n Terminal)\n launch_terminal \"$prompt\"\n ;;\n *)\n echo \"Error: Unknown terminal application: $terminal_app\"\n exit 1\n ;;\n esac\n\n echo \"\"\n echo \"Sidequest started in new terminal!\"\n echo \"Task: $TASK\"\n echo \"Continue your main quest here.\"\n}\n\nmain\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":4035,"content_sha256":"5b52ae94db08dbd97b77c1d3211d15f1648dd6b87f70580360bcb9af7a784524"},{"filename":"templates/context.md","content":"# Sidequest Context Prompt Template\n\nThis template is used to format the context prompt when spawning a sidequest session.\n\n## User Choice Flow\n\nBefore gathering context, Claude asks the user via `AskUserQuestion`:\n\n```\nInclude a summary of this chat in the sidequest?\n\nOptions:\n1. Yes, include summary - Pass context about current work to help the new session\n2. No, start fresh - Start the sidequest with no context from this session\n```\n\nIf `--no-context` flag was provided, this question is skipped.\n\n## With Context (user selected \"Yes, include summary\")\n\n```\nSIDEQUEST from main task.\n\nMain task context:\n- Working directory: {{working_directory}}\n- Git branch: {{git_branch}}\n- Was working on: {{current_task_summary}}\n- Key files: {{recent_files}}\n- Progress: {{progress_notes}}\n\nYour sidequest task: {{sidequest_task}}\n\nThis is separate from the main task. Focus only on this sidequest.\n```\n\n## Without Context (user selected \"No\" or --no-context flag)\n\n```\nSIDEQUEST MODE\n\nYour task: {{sidequest_task}}\n\nThis is an independent task. Focus only on completing this sidequest.\n```\n\n## Template Variables\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `{{working_directory}}` | Current PWD | `/Users/dev/myapp` |\n| `{{git_branch}}` | Current git branch | `feature/user-auth` |\n| `{{current_task_summary}}` | Brief summary from main session | `Building user authentication with JWT` |\n| `{{recent_files}}` | Comma-separated recent files | `auth.ts, login.tsx, middleware.ts` |\n| `{{progress_notes}}` | Key progress/decisions made | `Login endpoint complete, working on token refresh` |\n| `{{sidequest_task}}` | User's sidequest task description | `Add a settings page with dark mode toggle` |\n\n## Example Rendered Prompt\n\n```\nSIDEQUEST from main task.\n\nMain task context:\n- Working directory: /Users/dev/my-nextjs-app\n- Git branch: feature/user-auth\n- Was working on: Building user authentication with JWT\n- Key files: auth.ts, login.tsx, middleware.ts\n- Progress: Login endpoint complete, working on token refresh\n\nYour sidequest task: Add a settings page with dark mode toggle\n\nThis is separate from the main task. Focus only on this sidequest.\n```\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":2186,"content_sha256":"88aa9e7772f2861f79a3aa748d021489540388fcb72cdb2b1953396ac49c3a6d"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Sidequest: Spawn Parallel Claude Sessions","type":"text"}]},{"type":"paragraph","content":[{"text":"Launch a new Claude Code session in a separate terminal to work on a different task while keeping your current session active.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Usage","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"/sidequest \"Add a settings page with dark mode toggle\"\n/sidequest \"Set up the database schema\" --no-context\n/sidequest # Interactive prompt for task description","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"What It Does","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Gathers context","type":"text","marks":[{"type":"strong"}]},{"text":" (unless ","type":"text"},{"text":"--no-context","type":"text","marks":[{"type":"code_inline"}]},{"text":"):","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Current working directory","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Current git branch","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Brief summary of what's being worked on","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Key files recently modified/read","type":"text"}]}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Opens new terminal tab/window","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"macOS Terminal.app or iTerm2 supported","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Automatically detects which terminal is in use","type":"text"}]}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Starts Claude with context","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"cd \"\u003ccurrent_directory>\" && claude -p \"\u003ccontext_prompt>\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Returns control","type":"text","marks":[{"type":"strong"}]},{"text":" to original session (user continues main task)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Flags","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Flag","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Description","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--no-context","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Start fresh without context from parent session","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--iterm","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Force use of iTerm (auto-detected by default)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--terminal","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Force use of Terminal.app (auto-detected by default)","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Implementation","type":"text"}]},{"type":"paragraph","content":[{"text":"When user invokes ","type":"text"},{"text":"/sidequest","type":"text","marks":[{"type":"code_inline"}]},{"text":", execute the following:","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 1: Parse Arguments","type":"text"}]},{"type":"paragraph","content":[{"text":"Check if the user provided:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"A task description (required, or prompt for it)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"--no-context","type":"text","marks":[{"type":"code_inline"}]},{"text":" flag (skip context entirely)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"If no task description provided, ask the user what they want to work on.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 2: Ask About Context (unless --no-context)","type":"text"}]},{"type":"paragraph","content":[{"text":"IMPORTANT","type":"text","marks":[{"type":"strong"}]},{"text":": If ","type":"text"},{"text":"--no-context","type":"text","marks":[{"type":"code_inline"}]},{"text":" was NOT specified, use the ","type":"text"},{"text":"AskUserQuestion","type":"text","marks":[{"type":"code_inline"}]},{"text":" tool to ask:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Use AskUserQuestion with:\n- question: \"Include a summary of this chat in the sidequest?\"\n- header: \"Context\"\n- options:\n 1. \"Yes, include summary\" - \"Pass context about current work to help the new session understand what you're doing\"\n 2. \"No, start fresh\" - \"Start the sidequest with no context from this session\"","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 3: Gather Context (if user chose to include summary)","type":"text"}]},{"type":"paragraph","content":[{"text":"If user selected \"Yes, include summary\":","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Summarize the current conversation (what task is being worked on, key decisions made)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Get current git branch: ","type":"text"},{"text":"git branch --show-current","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identify key files from recent tool calls","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Note any relevant todos or blockers","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"If user selected \"No, start fresh\":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Skip context gathering, proceed with just the task description","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 4: Build Context Prompt","type":"text"}]},{"type":"paragraph","content":[{"text":"Format the prompt for the new session:","type":"text"}]},{"type":"paragraph","content":[{"text":"With context:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"SIDEQUEST from main task.\n\nMain task context:\n- Working directory: /path/to/project\n- Git branch: feature/user-auth\n- Was working on: \u003csummary of current task>\n- Key files: \u003crecent files>\n- Progress: \u003ckey progress and decisions made>\n\nYour sidequest task: \u003cuser's task description>\n\nThis is separate from the main task. Focus only on this sidequest.","type":"text"}]},{"type":"paragraph","content":[{"text":"Without context:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"SIDEQUEST MODE\n\nYour task: \u003cuser's task description>\n\nThis is an independent task. Focus only on completing this sidequest.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 5: Detect Terminal and Launch","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Detect terminal\nif [[ -z \"$TERMINAL_APP\" ]]; then\n if [[ \"$TERM_PROGRAM\" == \"iTerm.app\" ]]; then\n TERMINAL_APP=\"iTerm\"\n else\n TERMINAL_APP=\"Terminal\"\n fi\nfi\n\n# Escape the prompt for shell\nESCAPED_PROMPT=$(echo \"$CONTEXT_PROMPT\" | sed 's/\"/\\\\\"/g')\n\n# Launch based on terminal\nif [[ \"$TERMINAL_APP\" == \"iTerm\" ]]; then\n osascript -e \"tell application \\\"iTerm\\\"\n tell current window\n create tab with default profile\n tell current session\n write text \\\"cd '$PWD' && claude -p \\\\\\\"$ESCAPED_PROMPT\\\\\\\"\\\"\n end tell\n end tell\n end tell\"\nelse\n osascript -e \"tell application \\\"Terminal\\\"\n activate\n do script \\\"cd '$PWD' && claude -p \\\\\\\"$ESCAPED_PROMPT\\\\\\\"\\\"\n end tell\"\nfi","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 6: Confirm to User","type":"text"}]},{"type":"paragraph","content":[{"text":"After launching, inform the user:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Sidequest started in new terminal!\nTask: \u003ctask description>\nContinue your main quest here.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Example Workflow","type":"text"}]},{"type":"paragraph","content":[{"text":"Main terminal (building user authentication):","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"You: Working on the login API endpoint...\nYou: /sidequest \"Add a settings page with dark mode toggle\"\n\nClaude: [AskUserQuestion]\n Include a summary of this chat in the sidequest?\n\n > Yes, include summary\n No, start fresh\n\nYou: (selects \"Yes, include summary\")\n\nClaude: Sidequest started in new terminal!\n Task: Add a settings page with dark mode toggle\n Context: Included summary of current auth work\n Continue your main quest here.\n\nYou: (continues auth work)","type":"text"}]},{"type":"paragraph","content":[{"text":"New terminal (opens automatically):","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Claude: SIDEQUEST MODE\n Task: Add a settings page with dark mode toggle\n\n Context from main session:\n - Working on: Building user authentication with JWT\n - Branch: feature/user-auth\n - Key files: auth.ts, login.tsx, middleware.ts\n - Progress: Login endpoint complete, working on token refresh\n\n Let me look at the existing pages structure...","type":"text"}]},{"type":"paragraph","content":[{"text":"Example without context:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"You: /sidequest \"Set up CI/CD pipeline\" --no-context\nClaude: Sidequest started in new terminal!\n Task: Set up CI/CD pipeline\n (No context passed - starting fresh)","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Script Location","type":"text"}]},{"type":"paragraph","content":[{"text":"The sidequest shell script is located at:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"${CLAUDE_PLUGIN_ROOT}/skills/sidequest/scripts/sidequest.sh","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Execution","type":"text"}]},{"type":"paragraph","content":[{"text":"To run a sidequest:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"bash \"${CLAUDE_PLUGIN_ROOT}/skills/sidequest/scripts/sidequest.sh\" \\\n --task \"Your task description\" \\\n --context \"Summary of current work\" \\\n --branch \"$(git branch --show-current 2>/dev/null || echo 'N/A')\" \\\n --files \"auth.ts,login.tsx\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Or without context:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"bash \"${CLAUDE_PLUGIN_ROOT}/skills/sidequest/scripts/sidequest.sh\" \\\n --task \"Your task description\" \\\n --no-context","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Requirements","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"macOS (uses osascript for terminal control)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Terminal.app or iTerm2","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Claude Code CLI installed (","type":"text"},{"text":"claude","type":"text","marks":[{"type":"code_inline"}]},{"text":" command available)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Notes","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The sidequest runs independently - changes in one session don't affect the other","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Both sessions share the same working directory and git state","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Be careful with conflicting file edits between sessions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use ","type":"text"},{"text":"git stash","type":"text","marks":[{"type":"code_inline"}]},{"text":" if you need to switch context between sessions","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"sidequest","author":"@skillopedia","source":{"stars":13,"repo_name":"skills","origin_url":"https://github.com/michaelboeding/skills/blob/HEAD/skills/sidequest/SKILL.md","repo_owner":"michaelboeding","body_sha256":"06c5f3b5f7351cd1fb83aa5d267d312afd353217d568a342414b1740a44ddb5e","cluster_key":"de5583d10aa51dc1028329bbbbe8bd6e3102829b6c3cb88c798985b791dce5c6","clean_bundle":{"format":"clean-skill-bundle-v1","source":"michaelboeding/skills/skills/sidequest/SKILL.md","attachments":[{"id":"dcc81220-60e5-5722-8c39-9ba670dcd53e","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/dcc81220-60e5-5722-8c39-9ba670dcd53e/attachment.sh","path":"scripts/sidequest.sh","size":4035,"sha256":"5b52ae94db08dbd97b77c1d3211d15f1648dd6b87f70580360bcb9af7a784524","contentType":"application/x-sh; charset=utf-8"},{"id":"71ac17d8-c9d6-5c8d-822b-2ef6726c329a","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/71ac17d8-c9d6-5c8d-822b-2ef6726c329a/attachment.md","path":"templates/context.md","size":2186,"sha256":"88aa9e7772f2861f79a3aa748d021489540388fcb72cdb2b1953396ac49c3a6d","contentType":"text/markdown; charset=utf-8"}],"bundle_sha256":"fd3fede7627cd9056662a52b0f427e4a40f4b485a4ba6084e14c959a2723d26d","attachment_count":2,"text_attachments":2,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":"skills/sidequest/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"productivity-workflow","category_label":"Productivity"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"productivity-workflow","triggers":["sidequest","new terminal","spawn session","parallel task","side task","branch off"],"import_tag":"clean-skills-v1","description":"Spawn a new Claude Code session in a separate terminal to work on a different task, optionally with context from the current session. Use when you need to work on something else without losing your current progress."}},"renderedAt":1782986629454}

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 What It Does 1. Gathers context (unless ): - Current working directory - Current git branch - Brief summary of what's being worked on - Key files recently modified/read 2. Opens new terminal tab/window : - macOS Terminal.app or iTerm2 supported - Automatically detects which terminal is in use 3. Starts Claude with context : 4. Returns control to original session (user continues main task) Flags | Flag | Description | |--…