obsidian-github-issue-fetcher
Installation
SKILL.md
obsidian-github-issue-fetcher
Fetch GitHub issues from the current repo into the Obsidian vault as browsable, cross-referenceable markdown notes.
Direction: One-way (GitHub → Obsidian). Issues become vault citizens with frontmatter for Dataview queries, tags, and graph view.
Mode Dispatch
Parse the user's input to determine mode:
/obsidian-github-issue-fetcher→ Fetch mode (default)/obsidian-github-issue-fetcher status→ Status mode/obsidian-github-issue-fetcher init→ Init mode (configure vault path)/obsidian-github-issue-fetcher --dry-run→ Dry run mode
Execution
Determine the skill directory path (where this SKILL.md lives), then run the sync script from the user's current working directory (so gh auto-detects the correct repo):
bash <skill-dir>/sync.sh # Default: sync issues
bash <skill-dir>/sync.sh --init # First-time vault setup
bash <skill-dir>/sync.sh --status # Show last sync state
bash <skill-dir>/sync.sh --dry-run # Preview without writing
bash <skill-dir>/sync.sh --force # Re-sync all, skip unchanged check
Prerequisites
ghCLI installed and authenticated (gh auth status)jqinstalled (brew install jq)- Current directory is inside a GitHub repository
- Vault path configured via
~/.obsidian-vaultorOBSIDIAN_VAULTenv var
Output
Issues are written to <vault>/GithubIssues/<Project>/ with:
- Frontmatter: type, id, title, status, labels, assignees, milestone, repo URL
- Body: issue markdown content
- User content below
<!-- gh-sync-end -->marker is preserved across re-syncs
Notes
- Auto-detects repo from current directory via
gh repo view - Closed issues are updated in-place (status changes), never deleted
- Unchanged files are skipped (no timestamp churn)
- Run from different repos to sync different projects
Related skills