ShipIt. Turn PRDs into shipped code.
Overview • Features • How It Works • Quick Start • Sidebar • Commands • Demo • Configuration • Requirements • Troubleshooting
Autonomous PRD development in VS Code. ShipIt reads your Product Requirements Document (PRD), breaks down tasks into manageable user stories, and autonomously implements them using GitHub Copilot.
Important
This extension requires the GitHub Copilot CLI to be installed and authenticated. See Requirements for details.
ShipIt is a VS Code extension that orchestrates the GitHub Copilot SDK to implement your PRD in a structured, autonomous workflow. Instead of manual implementation requests, you describe your project requirements in a PRD, and ShipIt handles the rest:
- Reads tasks from your PRD
- Generates focused user stories for each task
- Implements each user story with Copilot
- Tracks progress and automatically continues to the next task
- Maintains a progress log of completed work
The extension provides a sidebar control panel with real-time status, file watching for progress tracking, and automatic error recovery with retry logic.
- Autonomous Task Loop - Continuously works through your PRD until complete
- User Stories Workflow - Breaks complex tasks into smaller, implementable pieces
- Sidebar Control Panel - Full control and real-time progress from VS Code Activity Bar
- Smart Progress Tracking - Watches files and automatically detects task completion
- Error Recovery - Built-in retry logic with exponential backoff for failed API calls
- PRD Generation - Create structured task lists from descriptions
- Progress Logging - Maintains a record of all completed work
- Inactivity Detection - Alerts you if Copilot seems stuck
┌─────────────────────────────────────────┐
│ 1. Read PRD.md │
│ ↓ │
│ 2. Get next unchecked task │
│ ↓ │
│ 3. Generate user stories │
│ ↓ │
│ 4. Implement each story with Copilot │
│ ↓ │
│ 5. Mark story complete [x] │
│ ↓ │
│ 6. All stories done? Mark task [x] │
│ ↓ │
│ 7. More tasks? Go to step 2 │
│ ↓ │
│ 8. Done! │
└─────────────────────────────────────────┘
- Task Parsing - ShipIt scans your
.shipit/PRD.mdfor unchecked tasks (- [ ]) - Story Generation - For each task, Copilot generates 3-5 actionable user stories
- Story Implementation - Each user story is sent to Copilot one at a time for focused implementation
- Automatic Progression - When a story completes, the checkbox is automatically updated
- Task Completion - Once all stories for a task are done, the task is marked complete
- Continuous Loop - The process repeats for the next task until all are done
Before starting, ensure you have:
- VS Code 1.93+
- GitHub Copilot CLI installed and authenticated
copilot --version # Verify installation - Node.js 18+ (for development)
- Active GitHub Copilot subscription
Tip
For Copilot CLI setup, see the GitHub documentation.
Fastest way to get started:
- Open Command Palette (Cmd/Ctrl + Shift + P)
- Run ShipIt: Generate PRD from Description
- Describe your project (e.g., "A REST API for managing todo items with user authentication")
- Copilot creates
.shipit/PRD.mdwith structured tasks - Run ShipIt: Start Loop to begin implementation
If you have a PRD, create .shipit/PRD.md with task checkboxes:
# My Project Name
## Tasks
- [ ] Set up project structure and dependencies
- [ ] Create core data models and types
- [ ] Implement main business logic
- [ ] Add user interface components
- [ ] Write tests and documentationThen run ShipIt: Start Loop from the Command Palette.
Click the 📦 icon in VS Code's Activity Bar to open the ShipIt sidebar:
- Progress Stats - Completed, pending, and current iteration count
- Current Task - Shows both parent task and active user story with elapsed time
- Control Buttons - Start, Stop, Pause, Resume, Single Step
- Task List - View all tasks and their completion status
- User Stories - See user stories for each task with checkmarks
- Activity Log - Real-time log of ShipIt operations
| Command | Keyboard | Description |
|---|---|---|
| ShipIt: Start Loop | - | Start autonomous implementation |
| ShipIt: Stop Loop | - | Stop the current loop |
| ShipIt: Pause Loop | - | Pause execution (can resume) |
| ShipIt: Resume Loop | - | Resume from pause |
| ShipIt: Run Single Step | - | Execute just the next task |
| ShipIt: Generate PRD from Description | - | Create PRD.md from text |
| ShipIt: Generate All User Stories | - | Generate stories for all tasks |
| ShipIt: View Logs | - | Open the output log |
ShipIt creates and manages files in the .shipit/ directory:
.shipit/
├── PRD.md # Product Requirements Document with tasks
├── userstories.md # Generated user stories organized by task
└── progress.txt # Log of completed work
Tasks use standard markdown checkboxes:
# Project Title
## Tasks
- [ ] Pending task (will be executed)
- [x] Completed task (skipped)
- [~] In progress task (will be executed)
- [!] Blocked task (skipped)Auto-generated in userstories.md, organized by parent task:
## Task: Set up project structure and dependencies
- [x] Initialize npm project and install dependencies
- [x] Configure TypeScript and build tools
- [ ] Set up ESLint and code formatting
- [ ] Create project directory structure
## Task: Create core data models
- [ ] Define TypeScript interfaces for domain models
- [ ] Create database schemas and migrationsAccess settings via VS Code Settings (Cmd/Ctrl + ,) and search for "ShipIt":
| Setting | Default | Description |
|---|---|---|
shipit.files.prdPath |
.shipit/PRD.md |
Path to the PRD file |
shipit.files.progressPath |
.shipit/progress.txt |
Path to the progress log |
shipit.userStories.countPerTask |
3 |
Number of user stories per task (1-10) |
shipit.prompt.customTemplate |
(empty) | Custom prompt template for tasks |
shipit.prompt.customPrdGenerationTemplate |
(empty) | Custom PRD generation template |
Override default prompts using these placeholders:
{{task}}- Current task description{{prd}}- Full PRD.md contents{{progress}}- Progress log contents{{requirements}}- Implementation requirements{{workspace}}- Workspace root path
src/
├── extension.ts # VS Code extension entry point
├── orchestrator.ts # Main loop orchestration engine
├── taskRunner.ts # Task and user story execution
├── copilotSdk.ts # Copilot SDK wrapper with retry logic
├── sidebarProvider.ts # Sidebar webview UI
├── fileUtils.ts # PRD parsing and file operations
├── fileWatchers.ts # File change detection
├── promptBuilder.ts # Prompt construction
├── config.ts # Configuration handling
├── types.ts # TypeScript interfaces
├── logger.ts # Logging utilities
├── statusBar.ts # Status bar UI
├── uiManager.ts # UI coordination
└── timerManager.ts # Countdown and inactivity timers
- Write clear task descriptions - Start each with a verb (Create, Add, Implement, Configure)
- Keep PRDs manageable - 5-6 tasks per PRD works well for focused implementation
- Be specific about requirements - Include technology choices and constraints
- Monitor progress - Check the sidebar and logs for any issues
- Customize prompts if needed - Adjust the custom template for your project style
- Ensure Copilot CLI is installed:
copilot --version - Verify authentication:
copilot auth status - Check VS Code version is 1.93+
- Check the Activity Log for errors
- Verify PRD.md format (tasks must be
- [ ]) - Ensure workspace has write permissions
- The extension includes automatic retry logic with exponential backoff
- Check VS Code Output panel for details
- Verify your Copilot subscription is active
- ShipIt alerts after 60 seconds of inactivity
- Check the sidebar for current activity
- Click Stop and review the logs
- Try running a Single Step to debug
| Status | Icon | Meaning |
|---|---|---|
| Idle | 📦 | ShipIt ready, click to open panel |
| Running | 🔄 | Processing task #N |
| Waiting | ⏱️ | Waiting for Copilot to complete |
| Paused | ⏸️ | Execution paused |
- VS Code 1.93+ - Modern webview and extension API support
- GitHub Copilot CLI - For Copilot SDK integration
- Installation guide
- Run
copilot --versionto verify
- Node.js 18+ - For runtime (included with VS Code)
- Active GitHub Copilot subscription - Required for API access
- Requires Copilot CLI (SDK is in Technical Preview)
- Works best with clear, well-structured PRDs
- Large PRDs may take longer to process
- Progress tracking depends on Copilot updating files correctly
Contributions are welcome! Please feel free to:
- Report bugs or request features via issues
- Submit pull requests with improvements
- Share your workflows and best practices
MIT - See LICENSE for details

