A tiny, native macOS kanban for your GitHub issues.
Built on tinyjs — a ~6 MB native app (no Electron, no Node) — with a React + shadcn/ui interface and a bring-your-own-key AI "done-check".
Backlog → Todo → In Progress → In Review → Done. Statuses live locally, so your workflow isn't limited to GitHub's open/closed.done / partially done / not done / insufficient info — with evidence, confidence, and a suggested status. Works with any OpenAI-compatible provider..app bundles, notifications.# 1. install tinyjs
curl -fsSL https://tinyjs.app/install | sh
# 2. clone & run
git clone https://github.com/scarranca/issue-kanban.git
cd issue-kanban
npm install
tinyjs dev # native window with hot reload
tinyjs build # package dist/"Issue Kanban.app"
Then in the app:
Settings → Account (name + GitHub token) → Repositories (add repos) → AI (optional LLM key) → Sync.
Create a token at GitHub → Settings → Developer settings → Personal access tokens.
| Type | Scopes |
|---|---|
| Fine-grained (recommended) | Issues (read + write), Pull requests (read), Contents (read) |
| Classic | repo (private) or public_repo + read:org |
Write access on Issues is only required for create / edit / close.
Any OpenAI-compatible endpoint works. Defaults:
| Provider | Base URL | Default model |
|---|---|---|
| OpenAI | https://api.openai.com/v1 | gpt-4o-mini |
| Anthropic | https://api.anthropic.com/v1 | claude-sonnet-4-20250514 |
| DeepSeek | https://api.deepseek.com/v1 | deepseek-chat |
| OpenRouter | https://openrouter.ai/api/v1 | anthropic/claude-sonnet-4 |
| Gemini | https://generativelanguage.googleapis.com/v1beta/openai | gemini-2.0-flash |
| Custom | any OpenAI-compatible (Ollama, vLLM, Azure…) | — |
Base URL and model are editable per provider, and you choose the default used for done-checks.
backend/ txiki.js backend — full system access, no ports
main.ts API surface (tiny.api.call)
db.ts SQLite (tjs:sqlite) — repos, issues, analyses
github.ts GitHub REST client (pagination + create/update/close)
ai.ts minimal OpenAI-compatible client (no SDK)
agent.ts done-check agent (prompt + verdict parsing)
src/ React 19 + shadcn/ui + Tailwind v4
components/ sidebar, topbar, board, dashboard, analytics, mailbox, …
.md fileMIT © 2026 Issue Kanban contributors
2 commits
TypeScript
96.9%
CSS
2.9%
A tiny, native macOS kanban for your GitHub issues.
Built on tinyjs — a ~6 MB native app (no Electron, no Node) — with a React + shadcn/ui interface and a bring-your-own-key AI "done-check".
Backlog → Todo → In Progress → In Review → Done. Statuses live locally, so your workflow isn't limited to GitHub's open/closed.done / partially done / not done / insufficient info — with evidence, confidence, and a suggested status. Works with any OpenAI-compatible provider..app bundles, notifications.# 1. install tinyjs
curl -fsSL https://tinyjs.app/install | sh
# 2. clone & run
git clone https://github.com/scarranca/issue-kanban.git
cd issue-kanban
npm install
tinyjs dev # native window with hot reload
tinyjs build # package dist/"Issue Kanban.app"
Then in the app:
Settings → Account (name + GitHub token) → Repositories (add repos) → AI (optional LLM key) → Sync.
Create a token at GitHub → Settings → Developer settings → Personal access tokens.
| Type | Scopes |
|---|---|
| Fine-grained (recommended) | Issues (read + write), Pull requests (read), Contents (read) |
| Classic | repo (private) or public_repo + read:org |
Write access on Issues is only required for create / edit / close.
Any OpenAI-compatible endpoint works. Defaults:
| Provider | Base URL | Default model |
|---|---|---|
| OpenAI | https://api.openai.com/v1 | gpt-4o-mini |
| Anthropic | https://api.anthropic.com/v1 | claude-sonnet-4-20250514 |
| DeepSeek | https://api.deepseek.com/v1 | deepseek-chat |
| OpenRouter | https://openrouter.ai/api/v1 | anthropic/claude-sonnet-4 |
| Gemini | https://generativelanguage.googleapis.com/v1beta/openai | gemini-2.0-flash |
| Custom | any OpenAI-compatible (Ollama, vLLM, Azure…) | — |
Base URL and model are editable per provider, and you choose the default used for done-checks.
backend/ txiki.js backend — full system access, no ports
main.ts API surface (tiny.api.call)
db.ts SQLite (tjs:sqlite) — repos, issues, analyses
github.ts GitHub REST client (pagination + create/update/close)
ai.ts minimal OpenAI-compatible client (no SDK)
agent.ts done-check agent (prompt + verdict parsing)
src/ React 19 + shadcn/ui + Tailwind v4
components/ sidebar, topbar, board, dashboard, analytics, mailbox, …
.md fileMIT © 2026 Issue Kanban contributors
2 commits
TypeScript
96.9%
CSS
2.9%