Guide

Is there a self-hosted kanban board that syncs with GitHub issues?

Short answer

Yes. Kaneo is an MIT-licensed project board you can self-host that connects a project to a GitHub repository through a GitHub App. Tasks and issues sync in both directions, including titles, descriptions, comments, priority and status labels, and open or closed state. Branch pushes, opened pull requests, and merged pull requests can move tasks between columns automatically.

Last updated 2 October 2026. Written by the Kaneo team, who also build one of the tools mentioned.

What syncs, and in which direction

Kaneo to GitHub

Creating a task opens an issue with priority and status labels and a comment linking back to the task. Changes to the title, description, priority, and status follow it, and moving a task to done closes the issue.

GitHub to Kaneo

Opening an issue creates a task. Edits, comments, labels, and closing or reopening the issue update the linked task. Labels that are not priority or status labels sync as ordinary labels.

Existing issues

Import Issues brings in open issues with their labels and comments, links matching open pull requests, and skips bot comments. Large imports run in steps and can be resumed, and reimporting does not duplicate linked tasks.

How branches and pull requests move tasks

Kaneo matches a branch to a task by a naming pattern, by default the project key and task number such as proj-123. Pushing that branch moves the task to in progress, opening a pull request moves it to in review, and merging moves it to done. Each mapping is configurable per project under workflow automation rules.

Pull requests can also reference a task directly with the project key in the title or body, such as fix(PROJ-42), or with a GitHub issue reference like Closes #61 when that issue is linked to a task.

When GitHub Projects is enough

GitHub Projects is included on every GitHub plan, including Free, with board, table, and roadmap views and built-in workflows that set an item to Done when its issue closes or its pull request merges. There is no sync to configure. If all of your work is code in GitHub repositories and everyone who plans it has a GitHub account, it is the simpler choice.

A separate board earns its place when work spans more than one repository host, when people without GitHub accounts plan alongside developers, when you need time tracking or Gantt and calendar views, or when your planning should not depend on a GitHub plan. GitHub Projects can only be self-hosted as part of GitHub Enterprise Server.

Setting it up

A self-hosted Kaneo instance registers its own GitHub App once, with read and write access to issues and read access to pull requests, contents, and metadata, and a webhook pointed at the Kaneo API. You then install the app on the repositories you want and connect each Kaneo project to one repository.

Try it on a test repository first. Sync creates real issues and comments, so check the event-to-column mappings against your actual columns before connecting a busy repository.

Frequently asked

Does Kaneo sync GitHub issues both ways?

Yes. Tasks create issues and issues create tasks. Titles, descriptions, comments, labels, priority, status, and open or closed state stay in step in both directions.

Can merging a pull request close a task?

Yes. By default a merged pull request moves its linked task to done. You can map branch pushes, opened pull requests, and merged pull requests to any column in the project's workflow settings.

Can I import my existing GitHub issues?

Yes. Import Issues brings in open issues with their labels and comments and links matching open pull requests. It can be resumed if interrupted and does not create duplicates when run again.

Does it work with GitLab or Gitea too?

Yes. Kaneo has GitLab and Gitea integrations with the same two-way issue sync and branch and merge request automation, including self-managed GitLab and self-hosted Gitea servers.