| name | obsidian-github-issue-fetcher |
| description | Fetch GitHub issues into Obsidian as markdown notes — turn your vault into an issue tracker with Dataview queries, tags, and graph view. Fetch issues as notes, GitHub issues in Obsidian, issue tracker in vault, Dataview issues dashboard. Four modes: `/obsidian-github-issue-fetcher` (fetch, default), `/obsidian-github-issue-fetcher status` (last fetch info), `/obsidian-github-issue-fetcher init` (configure vault path), `/obsidian-github-issue-fetcher --dry-run` (preview without writing). Also supports `--force` to re-fetch all issues regardless of changes. |
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
bash <skill-dir>/sync.sh --init
bash <skill-dir>/sync.sh --status
bash <skill-dir>/sync.sh --dry-run
bash <skill-dir>/sync.sh --force
Prerequisites
gh CLI installed and authenticated (gh auth status)
jq installed (brew install jq)
- Current directory is inside a GitHub repository
- Vault path configured via
~/.obsidian-vault or OBSIDIAN_VAULT env 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