Manage GitHub Projects V2 with Kanban boards directly in Obsidian.
- π Kanban Board View - Visualize your GitHub Projects V2 as interactive Kanban boards
- π Drag & Drop - Move items between columns with smooth drag-and-drop interactions
- ποΈ Extensive Customization - Configure which fields appear on cards and in detail modals
- π Secure Authentication - Personal Access Token stored in localStorage (not synced with vault)
- β‘ Real-time Sync - Auto-refresh project data from GitHub at configurable intervals
- π¨ Theme Compatible - Seamlessly integrates with Obsidian themes (light & dark mode)
- π± Mobile Support - Works on desktop and mobile (iOS/Android)
- π Powerful Filtering - Filter by assignee, state, type, or search across titles and descriptions
- π¬ Card Details - Click any card to view full details, comments, and metadata
- Open Settings in Obsidian
- Navigate to Community Plugins and disable Safe Mode
- Click Browse and search for "GitHub Projects"
- Click Install, then Enable
- Download the latest release from GitHub releases
- Extract
main.js,manifest.json, andstyles.cssto{VaultFolder}/.obsidian/plugins/github-projects/ - Reload Obsidian
- Enable the plugin in Settings β Community Plugins
For Fine-Grained Tokens (Recommended):
- Go to GitHub Settings β Personal access tokens β Fine-grained tokens
- Click "Generate new token"
- Configure permissions:
- Projects: Read and Write (required)
- Metadata: Read (required for organization access)
- Contents: Read (required for private repositories)
- Copy the token (starts with
github_pat_)
For Classic Tokens:
- Go to GitHub Settings β Personal access tokens
- Click "Generate new token (classic)"
- Select the following scopes:
project- Required for project accessread:org- Required for organization dropdown/selectorrepo- Required for private repositories
- Copy the token (starts with
ghp_)
- Open Obsidian Settings β GitHub Projects
- Paste your token
- (Optional) Set a default project:
- Choose Personal Account or Organization
- For organizations, enter the org name (e.g.,
my-org) - Enter the project number (from URL:
github.com/orgs/my-org/projects/5β5) - Leave empty to use the project selector dropdown
- Click the dashboard icon (π) in the ribbon, or
- Use command palette: "GitHub Projects: Open Project Board"
You can now customize what information appears on cards and in detail modals:
- Go to Obsidian Settings β GitHub Projects
- Scroll to Card Display Settings to configure:
- Card title length
- Show/hide repository, labels, description, milestone, etc.
- Maximum number of labels and assignees to display
- Description truncation length
- Engagement metrics (comments, reactions)
- Scroll to Detail Modal Settings to configure:
- Show/hide status badges, repository, labels, assignees
- Show/hide author, reviewers, milestone, PR changes
- Show/hide engagement metrics, timeline, comments
All settings are saved and applied immediately to give you complete control over your workflow.
- User Guide - Installation, setup, and usage instructions
- Developer Guide - Contributing and development setup
- Architecture - Technical design and architecture
- API Reference - Plugin API documentation
- Node.js 18+
- npm or yarn
- Obsidian installed
# Clone the repository
git clone https://github.com/alexnodeland/obsidian-github-projects.git
cd obsidian-github-projects
# Install dependencies
npm install
# Build the plugin
npm run build
# Run tests
npm test
# Start development mode (auto-rebuild and copy to vault)
make dev VAULT=/path/to/your/vault# Development
make dev VAULT=/path/to/vault # Start development mode
make build # Production build
make test # Run tests
make coverage # Run tests with coverage
# Quality Checks
make lint # Run linter
make typecheck # Type checking
make check # Run all checks (lint + typecheck + test)
# Utilities
make clean # Clean build artifacts
make help # Show all available commandsSee the Developer Guide for detailed instructions.
The plugin is built with:
- TypeScript - Type-safe code
- Preact - Lightweight React alternative (3KB)
- SortableJS - Smooth drag-and-drop
- GitHub GraphQL API - Projects V2 integration
- Obsidian Plugin API - Native Obsidian integration
Key architectural decisions:
- Event-driven state management for reactive UI
- Optimistic updates for responsive user experience
- Secure token storage in localStorage (not vault files)
- Virtual DOM rendering for performance
Learn more in the Architecture documentation.
We maintain high test coverage and code quality:
npm test # Run tests
npm run test:watch # Watch mode
npm run test:coverage # Generate coverage reportCoverage reports are available on Codecov.
Contributions are welcome! We appreciate:
- π Bug reports
- β¨ Feature requests
- π Documentation improvements
- π» Code contributions
- π¨ UI/UX enhancements
Please read our Contributing Guide and Developer Guide before submitting PRs.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes with tests
- Run checks:
make check - Commit:
git commit -m "feat: add amazing feature" - Push and create a PR
See CHANGELOG.md for release history and changes.
- Tokens are stored in localStorage (not in vault files)
- Tokens are not synced via Obsidian Sync
- Use fine-grained tokens with minimal permissions
- Set token expiration for additional security
See the User Guide for more details.
Q: Can I use multiple projects? A: Yes! Use the project selector dropdown to switch between projects, or set a default in settings.
Q: Does this work with personal projects? A: Yes! Select any personal project in the project selector dropdown, or set your default to "Personal".
Q: Can I create new issues from Obsidian? A: Not yet. This feature is planned for a future release.
Q: What about rate limits? A: The plugin uses GitHub's GraphQL API (5,000 points/hour). Normal usage stays well within limits.
See the full FAQ in the User Guide.
- Obsidian - For creating an amazing platform
- obsidian-kanban - Inspiration for board UI
- Preact - Lightweight UI framework
- SortableJS - Drag-and-drop functionality
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: docs/
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Discussions
- Questions: GitHub Discussions Q&A
β Star this repo if you find it helpful!
Made with β€οΈ for the Obsidian community