A VS Code extension that provides a full-featured kanban board interface for managing GitHub Project V2 directly within your editor. This extension brings the power of GitHub Projects to your VS Code workspace with a beautiful, drag-and-drop web interface.
- Beautiful kanban board with drag-and-drop functionality
- Multi-column layout based on your project's status field options
- Real-time status updates by dragging items between columns
- Visual feedback with hover effects and smooth transitions
- Column item counts that update dynamically
- Project Selector: Search and browse GitHub organizations and projects
- Kanban Board: Interactive board for managing project items
- Issue Details View: Comprehensive information sidebar with interactive status updates
- Modern web-based interface that integrates seamlessly with VS Code themes
- Drag-and-drop functionality for instant status changes
- Real-time updates without page refreshes
- Loading states and progress indicators
- Responsive design that adapts to your VS Code theme
- Accessibility features including ARIA labels and keyboard navigation
- GitHub CLI integration for reliable data fetching and updates
- GraphQL queries for detailed issue information
- Support for private projects and organizations
- Real-time data synchronization with GitHub Projects
- Error handling and fallback mechanisms
- Issue cards display:
- Title with external GitHub links
- Type badges (Issue, PR, Draft)
- Repository name and issue number
- Current status and assignees
- Labels with visual tags
- Single unified panel that transitions between different views
- Efficient data fetching with intelligent caching
- Minimal API calls through smart batching
- Webview message passing for async operations
-
GitHub CLI (
gh): Install and authenticate with GitHub# Install GitHub CLI # macOS: brew install gh # Windows: winget install GitHub.cli # Linux: sudo apt install gh # or appropriate package manager # Authenticate with GitHub gh auth login
-
jq: JSON processor for command line (required for GitHub CLI integration)
# macOS: brew install jq # Windows: choco install jq # Linux: sudo apt install jq
- VS Code version 1.109.0 or higher
- Open VS Code
- Press
Ctrl+Shift+Xto open Extensions - Search for "GitHub Project Helper"
- Click "Install"
- Download the latest
.vsixfile from the Releases page - Open VS Code
- Press
Ctrl+Shift+Pto open the Command Palette - Type "Extensions: Install from VSIX..." and select it
- Navigate to and select the downloaded
.vsixfile - Reload VS Code when prompted
- Clone this repository
- Open the repository in VS Code
- Press
F5to open a new Extension Development Host window - The extension will be available in the new window
- Open Command Palette: Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac) - Run Command: Type "GitHub Project Helper: Open Kanban Board" and select it
- Project Selection:
- Enter any GitHub username or organization name
- Browse through available projects with visual cards
- Select a project to open the kanban board
- Project Selector โ Kanban Board โ Issue Details
- Use the back button or navigation breadcrumbs to return to previous views
- Drag and drop items between columns to update their status
- Click on items to view detailed information
- External links open issues directly in GitHub
- Hover effects provide visual feedback
- View comprehensive issue information in a clean sidebar layout
- Interactive status dropdown for quick status changes
- View assignees, labels, and issue metadata
- "Open on GitHub" button for direct navigation
The kanban board automatically creates columns based on your project's status field:
- Status options are fetched directly from your GitHub Project
- Custom statuses are fully supported
- Real-time updates reflect changes immediately
- Visual indicators show item counts per column
- Personal projects (your own repositories)
- Organization projects (team collaboration)
- Private projects (with proper permissions)
- Public projects (open source projects)
| Command | Description | Keyboard Shortcut |
|---|---|---|
github-project-helper.openKanbanBoard |
Open the kanban board interface | Ctrl+Alt+G (Mac: Cmd+Alt+G) |
The extension provides sensible defaults out of the box, but you can customize certain behaviors through VS Code settings:
{
// Optional: Default organization to pre-fill in project selector
"githubProjectHelper.defaultOwner": "your-org"
}src/
โโโ extension.ts # Main extension entry point
โโโ unifiedPanel.ts # Core webview management (293 lines)
โโโ githubCli.ts # GitHub API integration (212 lines)
โโโ types.ts # TypeScript interfaces
โโโ templates/ # HTML templates for each UI view
โ โโโ kanban.html # Kanban board with drag-drop (335 lines)
โ โโโ selector.html # Project search interface (447 lines)
โ โโโ issueDetail.html # Detailed issue view
โ โโโ *.ts # Template generation logic
โโโ utils/
โโโ htmlUtils.ts # HTML utilities and item rendering
- TypeScript (ES2022, Node16 modules)
- VS Code Extension API
- GitHub CLI (gh) integration
- Webpack for bundling
- HTML/CSS/JavaScript for the webview UI
- GraphQL via GitHub CLI for detailed data fetching
- Solution: Run
gh auth loginto authenticate with GitHub
- Cause: Incorrect organization name or no access permissions
- Solution: Verify the organization name and ensure you have necessary permissions
- Cause: Network issues or GitHub API problems
- Solution: Check internet connection and try again
- Cause: Webview security restrictions or VS Code version incompatibility
- Solution: Ensure VS Code is updated to latest version
To enable debug logging:
- Open VS Code
- Go to Help โ Toggle Developer Tools
- Check the Console tab for detailed error messages
# Clone repository
git clone https://github.com/MaquestiauxLabs/github-project-helper.git
cd github-project-helper
# Install dependencies
npm install
# Compile the extension
npm run compile
# Run in development mode
npm run watch# Run tests
npm test
# Run linting
npm run lint
# Run type checking
npm run type-checkContributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style and TypeScript conventions
- Test your changes thoroughly with different project types
- Ensure the kanban board functionality works correctly
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- New kanban board interface with drag-and-drop functionality
- Three-panel navigation system (selector โ kanban โ details)
- Modern web-based UI replacing command-line interface
- Real-time status updates through drag-and-drop
- Comprehensive issue details panel with interactive elements
- Enhanced GitHub CLI integration with GraphQL support
- Improved error handling and user feedback
- Accessibility improvements and keyboard navigation
- VS Code theme integration for seamless appearance
- Command-line interface for status updates
- Quick pick dialogs for project and issue selection
- Workspace project management features
If you encounter any issues or have feature requests:
- Check the Issues: Browse existing GitHub Issues
- Create a New Issue: If your problem isn't already reported, create a new issue with:
- VS Code version
- Extension version
- Steps to reproduce
- Screenshots if applicable
- Error messages from developer console
- GitHub Pull Requests - Official GitHub extension for VS Code
- GitLens - Git supercharged
This extension:
- Only communicates with GitHub's API via GitHub CLI
- Does not store or transmit any personal data
- Does not track usage or collect analytics
- Runs entirely locally on your machine
- Respects your privacy and GitHub's terms of service
- GitHub CLI - For the amazing command-line interface
- jq - For JSON processing
- VS Code API - For the extension framework
- GitHub Projects - For the project management platform
Note: This extension is not affiliated with GitHub, Inc. It's an independent tool built to enhance your GitHub Projects workflow within VS Code.