An Obsidian plugin that helps you track TODOs and FIXMEs from your GitHub repositories with powerful search, filtering, and visualization capabilities.
- Find and display TODOs, FIXMEs, and other configurable keywords from GitHub repositories
- Local Repository Analysis: Downloads repositories and searches locally to avoid API rate limits
- Smart Grouping: Group issues by file or keyword
- Rich Visualization: Color-coded issues (green for TODOs, red for FIXMEs) and syntax highlighting
- Advanced Filtering: Filter results by type (TODO, FIXME, etc.) or search text directly in the rendered view
- Enhanced Keyword Detection: Recognizes various TODO formats (TODO, TODO:, // TODO, /* TODO, etc.)
- Performance Optimized: Repository caching to minimize downloads and API calls
- Robust Error Handling: Graceful handling of network issues and corrupted downloads
- Direct linking to the source code on GitHub
- Simple syntax for embedding in your notes
Insert a code block with the for-fix-sake
language tag in your Obsidian notes:
```for-fix-sake
repo: owner/repo-name
keywords: TODO FIXME BUG # optional, defaults to TODO FIXME
```
The plugin will:
- Download the repository (if using local search) or query the GitHub API
- Scan for your specified keywords
- Display the results in an organized, filterable view with syntax highlighting
The plugin recognizes many common patterns for TODOs:
- Standard keywords:
TODO
,FIXME
, etc. - Commented keywords:
// TODO
,/* FIXME */
,# TODO
, etc. - Keywords with assignees:
TODO(username)
,FIXME[john]
, etc.
The enhanced UI provides:
- Instant Filtering: Type in the filter box to instantly filter results
- Type Filtering: Quickly filter by issue type (TODO, FIXME, BUG, etc.)
- Color-Coding: Green for TODOs, red for FIXMEs, and other colors for different types of notes
- File Badges: Shows file extensions for easy identification
- Syntax Highlighting: Code snippets are highlighted for better readability
- Line Number Badges: Quickly see which line in the file contains the issue
- Direct GitHub Links: Click on filenames to go directly to the code on GitHub
- Install the plugin
- Go to Settings > For Fix Sake
- Enter your GitHub Personal Access Token (instructions provided in settings)
- Configure default keywords to search for
- Configure local search settings:
- Enable/disable local repository search (recommended for better performance)
- Set cache expiry time for downloaded repositories
- Configure cache directory for downloaded repositories
- Clear repository cache when needed
The plugin uses a smart search approach:
- Local Search (default): Downloads repositories as ZIP files and searches locally
- Advantages: Faster, no API rate limits, better results, searches all text files
- Disadvantages: Requires disk space, larger repositories take longer to download
- API Search (fallback): Used only if local search fails
- Automatically falls back to GitHub's Search API if there are issues with the local search
The plugin intelligently manages downloaded repositories:
- Change Detection: Only re-downloads repositories when changes are detected (via commit SHA)
- ZIP Validation: Validates downloaded ZIP files to prevent corruption
- Binary File Detection: Automatically skips binary files during local search
- Error Recovery: Falls back to API search if local search fails
- Obsidian v0.15.0+
- GitHub Personal Access Token with repo access (only for private repositories)
- Internet connection for downloading repositories or accessing the GitHub API
- Open Settings > Community plugins
- Turn off Safe mode
- Click Browse community plugins
- Search for "For Fix Sake"
- Click Install
- Enable the plugin in the Community Plugins tab
- Download the latest release
- Extract the zip file to your Obsidian plugins folder:
<vault>/.obsidian/plugins/
- Enable the plugin in Obsidian settings
If you encounter rate limit errors with the API search:
- Make sure you've added a GitHub token in the settings
- Enable local search in the settings (recommended)
- For very large repositories, consider using more specific keywords
If you have issues downloading repositories:
- Check your internet connection
- Verify you have enough disk space
- Try clearing the repository cache and downloading again
- For private repositories, make sure your GitHub token has correct permissions
- Clone this repo
npm install
npm run dev
to start compilation in watch mode
MIT