Features β’ Installation β’ Usage β’ Configuration β’ Contributing β’ Roadmap
- Why Copilot Handoff?
- Key Features
- Demo
- Installation
- Quick Start
- Detailed Usage
- Configuration
- Use Cases
- Why Context Handoffs Matter
- Requirements
- FAQs
- Contributing
- Support
- License
|
Long AI chat sessions lead to:
|
Copilot Handoff provides:
|
| Feature | Benefit |
|---|---|
| β° Session Duration Tracking | Know exactly how long you've been in a conversation |
| π Smart Notifications | Get reminded before context degrades too much |
| π Context Export | Save your conversation state with structured templates |
| πΎ Persistent State | Sessions survive VS Code restarts |
| βοΈ Configurable | Adjust thresholds and behaviors to your needs |
| π Zero Setup | Works out of the box with sensible defaults |
The extension automatically monitors your Copilot usage and tracks session duration with:
- Real-time status bar display
- Persistent state across VS Code restarts
- Intelligent inactivity detection (auto-resets after 5 minutes of inactivity)
Get notified when your session exceeds the configured threshold:
- Once mode: Single reminder per session
- Periodic mode: Regular reminders at customizable intervals
- Never mode: Tracking without notifications
When it's time for a handoff, export your context in multiple ways:
- Copy to Clipboard: Quick context summary
- Save to File: Markdown document with full details
- Handoff Template: Structured document with sections for tasks, decisions, and next steps
Coming Soon: Video demonstration showing the complete workflow
graph LR
A[Start Coding] --> B[Session Tracking Begins]
B --> C{Threshold Reached?}
C -->|No| B
C -->|Yes| D[Show Notification]
D --> E{User Action}
E -->|Export Context| F[Save Handoff Document]
E -->|Reset Timer| B
E -->|Remind Later| G[Snooze Notification]
G --> B
F --> H[Continue Fresh Session]
- π Start Working - Extension automatically begins tracking
- β±οΈ Time Passes - Duration shown in status bar
- π Get Notified - Reminder appears at your threshold (default: 30 min)
- π Export Context - Save your work, decisions, and next steps
- π Start Fresh - Begin a new session with clear context
- Open Extensions view in VS Code (
Ctrl+Shift+X/Cmd+Shift+X) - Search for "Copilot Handoff"
- Click Install
- Press
Ctrl+P/Cmd+P - Type:
ext install curtisfranks.copilot-handoff - Press Enter
Download the .vsix file from Releases and install via:
code --install-extension copilot-handoff-*.vsix- Install the extension (see above)
- Reload VS Code if prompted
- Look for the $(pulse) Check Chat Health button in the status bar (bottom-right)
- Click the button or type
@handoff analyzein Copilot Chat to check chat health
That's it! The extension is ready to analyze your Copilot chats.
- Open Copilot Chat and start a conversation with Copilot
- After several exchanges, click the $(pulse) Check Chat Health button in status bar
- Chat opens with
@handoff analyzepre-filled - Press Enter to see your chat health report with:
- Overall health score (0-100)
- Message count and token usage
- Issues detected (if any)
- Recommendations
- If score is below 70, click Export Context for Handoff button
- Start a fresh chat with exported context as reference
Access all features via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
| Command | Description | When to Use |
|---|---|---|
Copilot Handoff: Check Chat Health |
Open chat with @handoff analyze pre-filled | Quick access to health analysis |
Copilot Handoff: Show Session Info |
View detailed session information | Check current session status anytime |
Copilot Handoff: Export Chat Context |
Export context with format options | Before breaks, context switches, or handoffs |
Copilot Handoff: Reset Session Timer |
Manually reset the timer | After a handoff or when starting fresh work |
Copilot Handoff: Toggle Tracking |
Enable/disable session tracking | Temporarily pause tracking |
The status bar item provides quick access to chat health analysis:
- $(pulse) "Check Chat Health" button always visible
- Click to open Copilot Chat with
@handoff analyzepre-filled - Press Enter to analyze your current chat's context quality
- Hover for quick tooltip explaining functionality
Use the @handoff participant directly in Copilot Chat:
| Command | Description | When to Use |
|---|---|---|
@handoff analyze |
Analyze current chat health with scoring | Check if chat context is degrading |
@handoff export |
Export context for handoff | Before starting a fresh chat session |
Health Scoring: Analyzes message count, token usage (if available), and context quality. Shows:
- Excellent (90-100): Chat is healthy, continue working
- Good (70-89): Chat is fine, monitor for quality issues
- Fair (50-69): Consider a handoff soon
- Poor (<50): Immediate handoff recommended - context degradation likely affecting quality
Customize every aspect in VS Code Settings (Ctrl+, / Cmd+,). Search for copilot-handoff:
| Setting | Type | Default | Description |
|---|---|---|---|
sessionThresholdMinutes |
number | 30 |
Minutes before showing handoff reminder (5-180) |
notificationFrequency |
string | periodic |
When to show reminders: once, periodic, or never |
periodicReminderMinutes |
number | 10 |
Minutes between periodic reminders (1-60) |
autoExportContext |
boolean | false |
Automatically export context when handoff is triggered |
showStatusBar |
boolean | true |
Show session duration in status bar |
trackingEnabled |
boolean | true |
Enable/disable session tracking |
{
"copilot-handoff.sessionThresholdMinutes": 15, // 15 minutes
"copilot-handoff.notificationFrequency": "periodic",
"copilot-handoff.periodicReminderMinutes": 5
}{
"copilot-handoff.notificationFrequency": "never",
"copilot-handoff.showStatusBar": true // Still see status
}Long Coding Sessions
- Get reminded to take breaks
- Preserve context before switching tasks
- Document decisions during extended sessions
Context Switching
- Export context when moving between projects
- Save state before meetings or interruptions
- Resume work with clear notes
Pair Programming Handoffs
- Export session context for partner
- Document decisions made during pairing
- Preserve context across shifts
Code Reviews
- Export chat context for PR description
- Share AI-assisted insights with team
- Document rationale for changes
Tutorial Creation
- Export conversation as learning material
- Document problem-solving approaches
- Create step-by-step guides from sessions
Knowledge Preservation
- Save important AI responses
- Build personal knowledge base
- Create reference documentation
Research shows that AI chat models perform best with focused, time-limited conversations:
| Session Length | Context Quality | Response Accuracy |
|---|---|---|
| 0-30 min | π’ Excellent | 95%+ |
| 30-60 min | π‘ Good | 85-95% |
| 60-120 min | π Declining | 70-85% |
| 120+ min | π΄ Poor | <70% |
Note: These are approximate values based on general AI behavior patterns
|
|
|
| Requirement | Version | Notes |
|---|---|---|
| VS Code | 1.85.0+ | Required for extension APIs |
| GitHub Copilot | Any | Recommended but not required |
| Node.js | - | Not needed for users |
| Platform | Any | Windows, macOS, Linux |
Does this extension collect any data?
No. Copilot Handoff:
- β Stores session timing locally only
- β Never transmits any data
- β Never reads your code or chat content
- β Only tracks duration, not content
Will this interrupt my workflow?
No. The extension is designed to be non-intrusive:
- Notifications can be dismissed or snoozed
- You can set to "never" mode for silent tracking
- Status bar can be hidden if desired
- All features are optional
Do I need GitHub Copilot installed?
No, but it's recommended. The extension:
- Works independently of Copilot
- Tracks general editor activity
- Useful for any coding sessions
- Designed with Copilot users in mind
How does session tracking work?
The extension monitors:
- Editor activity (file edits, opens)
- Window focus
- User interactions
- Auto-resets after 5 minutes of inactivity
It does NOT monitor chat content, only activity timing.
Can I customize the handoff template?
Currently, the template is standard but editable after export. Future versions may include:
- Custom templates
- Multiple template options
- Team-shared templates
See the Roadmap for planned features.
What if I forget to export context?
No worries! You can:
- Manually export anytime via Command Palette
- Check session info to see how long it's been
- The extension reminds you periodically (if configured)
| Issue | Workaround | Status |
|---|---|---|
| Session tracking uses general editor activity | Enable specific Copilot APIs when available | Planned for v0.3.0 |
| Direct Copilot Chat API not fully accessible | Monitors all VS Code activity as proxy | Depends on VS Code API updates |
See all open issues and report new ones!
Initial Release - January 26, 2026
β¨ Features
- Session duration tracking with persistent state
- Smart notification system (once/periodic/never modes)
- Context export with 3 formats (clipboard/file/template)
- Status bar integration with real-time updates
- Comprehensive configuration system
- 5-minute inactivity auto-reset
π§ Technical
- TypeScript with strict mode
- Full VS Code Extension API compliance
- Zero dependencies for users
- Cross-platform support
See CHANGELOG.md for complete history.
"copilot-handoff.sessionThresholdMinutes": 30,
// How often to show reminders: "once", "periodic", or "never" "copilot-handoff.notificationFrequency": "periodic",
// Minutes between periodic reminders "copilot-handoff.periodicReminderMinutes": 10,
// Automatically export context when handoff is triggered "copilot-handoff.autoExportContext": false,
// Show session duration in status bar "copilot-handoff.showStatusBar": true,
// Enable session tracking "copilot-handoff.trackingEnabled": true }
## Context Export Format
The handoff template includes:
- **Session metadata**: Timestamp, workspace, current file
- **Working state**: Active files, selections, language
- **Guided sections**:
- What I was working on
- Key decisions made
- Next steps
- Important context notes
## Best Practices
1. **Set realistic thresholds**: Default is 30 minutes, adjust based on your workflow
2. **Use periodic reminders**: Keep context fresh with regular check-ins
3. **Export before breaks**: Save context before stepping away
4. **Document decisions**: Use the handoff template to capture important choices
5. **Reset after handoffs**: Start fresh after exporting and switching contexts
## π‘ Why Context Handoffs Matter
AI chat sessions can accumulate context that becomes less relevant over time. Regular handoffs help:
- β
Maintain AI response quality
- β
Preserve important decisions and context
- β
Create natural breakpoints in your workflow
- β
Improve collaboration when working in teams
- β
Better organize your development sessions
---
## π Requirements
- Visual Studio Code 1.85.0 or higher
- GitHub Copilot extension (recommended, but not required)
---
## π Known Issues
- Session tracking monitors general editor activity as a proxy for Copilot usage
- Direct Copilot Chat API events may not be fully accessible in all VS Code versions
See the [issues page](https://github.com/chf3198/copilot-handoff/issues) to report problems or suggest features.
---
## π Release Notes
### 0.1.0 - Initial Release
- Session tracking with configurable thresholds
- Smart notification system
- Context export with multiple formats
- Status bar integration
- Comprehensive configuration options
See [CHANGELOG.md](CHANGELOG.md) for full release history.
---
## π€ Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
**Quick Start for Contributors:**
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
Please read our [Code of Conduct](.github/CODE_OF_CONDUCT.md) before contributing.
---
## π License
This extension is licensed under the [MIT License](LICENSE).
---
## π¬ Support & Community
<div align="center">
### Need Help?
[](https://github.com/chf3198/copilot-handoff/issues)
[](https://github.com/chf3198/copilot-handoff/discussions)
π§ [Report an issue](https://github.com/chf3198/copilot-handoff/issues) β’
π‘ [Request a feature](https://github.com/chf3198/copilot-handoff/issues/new?template=feature_request.md) β’
π [Read the docs](https://github.com/chf3198/copilot-handoff#readme)
</div>
---
<div align="center">
### β Show Your Support
If this extension helps you maintain better Copilot sessions, please consider:
- β [Starring the repo](https://github.com/chf3198/copilot-handoff)
- π’ Sharing with your team
- π¬ Leaving a review on the [marketplace](https://marketplace.visualstudio.com/items?itemName=curtisfranks.copilot-handoff)
**Made with β€οΈ for the VS Code community**
</div>
{ "copilot-handoff.sessionThresholdMinutes": 60, // 1 hour "copilot-handoff.notificationFrequency": "once", "copilot-handoff.showStatusBar": true }