pm_tasks table and uses them as classification targets when it processes each app session. You can enable one, the other, or both at the same time.
- GitHub Issues
- Linear
What Meridian does with GitHub Issues
Meridian reads the GitHub Projects (v2) you select and ingests the open issues assigned to you in each one via the GraphQL API. Each issue is stored inpm_tasks alongside any Jira or Linear tasks you’ve configured, with its Project Status field (Todo / In Progress / Done) mapped to Meridian’s status_category so it shows in the correct dashboard column. When Meridian classifies a coding session — say, an hour in VS Code on a feature branch — it matches that work against these tasks and writes a ticket_links row with the best-matching issue key.Use this connector if you track work in GitHub Projects (boards) rather than only on Issues alone. You pick which projects to sync at install time, so personal projects, org projects, or both can be combined.Prerequisites
- A GitHub account with access to at least one Project (v2) containing issues assigned to you
- Either the
ghCLI installed and authenticated (recommended), or a personal access token (PAT) with therepo,read:org, andread:projectscopes
Get a token
The easiest path is to letmeridian setup reuse the gh CLI’s existing browser login — no PAT to manage. Fall back to a PAT only if you can’t install gh.- With gh CLI (recommended)
- With a personal access token
Install and authenticate gh
Install the GitHub CLI and run:
Run meridian setup
- Detect your
ghlogin and, if needed, open the browser to grant the extraread:projectscope. - Call
gh auth tokenand write the result toGITHUB_TOKENin~/.meridian/.env. - List your personal and organisation Projects and prompt you to pick which ones to sync. The selected node IDs are saved to
GITHUB_PROJECT_IDS.
Set environment variables
If you ranmeridian setup with gh available, GITHUB_TOKEN and GITHUB_PROJECT_IDS are already written for you. To configure them manually, open the env file:~/.meridian/.env:GITHUB_PROJECT_IDS is a comma-separated list of Projects v2 node IDs. If it is empty, no GitHub tasks are synced — Meridian needs an explicit project list (there is no longer an “all repos in an org” mode).Apply and verify
Check the connection
github: connected in the output. Meridian reports the connection status for every configured integration.Pick different projects later
Re-runmeridian setup to bring the project picker back up, or edit GITHUB_PROJECT_IDS directly:pm_tasks. This is the supported way to scope which repositories’ work Meridian sees.Troubleshooting
401 or 403 errors on startup
401 or 403 errors on startup
Check that your token has not expired and has all three scopes:
repo, read:org, read:project. If you’re using a gh CLI token, re-run gh auth refresh -h github.com -s read:project to add the projects scope. PATs can be regenerated at github.com/settings/tokens.pm_tasks is empty for GitHub
pm_tasks is empty for GitHub
Confirm that at least one entry in
GITHUB_PROJECT_IDS is a valid Projects v2 node ID (they start with PVT_) and that the project contains issues assigned to your account. Re-run meridian setup to use the interactive picker, or list available IDs with the gh api graphql query shown above.meridian doctor shows github: not configured
meridian doctor shows github: not configured
GITHUB_TOKEN is the only strictly required variable, but without GITHUB_PROJECT_IDS no tasks will sync. Run meridian config edit and confirm both are present and uncommented.Issues show up in the wrong dashboard column
Issues show up in the wrong dashboard column
Meridian maps the Project’s Status field to
status_category. Make sure each issue has a Status set on the board — items with no Status default to todo. The exact option names (Todo, In Progress, Done) are matched case-insensitively.