Issue Triage BYOK is a GitHub Action: when an issue is opened it posts an AI triage
— likely root cause, a concrete fix, a test to add — and with Pro it also applies labels
from your repo, a priority:P0–P3 label and flags a possible duplicate.
It runs in your own Actions runner: free AI with a free Groq or Gemini key, or your
own OpenAI-compatible key. No server of ours, no account, no auto-renewing subscription: Pro is $49 per year per organization.
Get the Pro key — $49/year Install free
Free: one comment on every new issue with the likely cause, a fix and a test. The AI also reads your repo's languages and a README excerpt, so the fix fits your stack.
Pro: the same issue labeled bug/regression/config,
priority:P1, and flagged as a possible duplicate.
Save this as .github/workflows/issue-triage.yml. Then create a free key at
console.groq.com/keys (or
Google AI Studio) and save it as the repository secret
AI_API_KEY: the action detects the provider from the key.
# .github/workflows/issue-triage.yml
name: Issue triage
on:
issues:
types: [opened]
permissions:
issues: write
contents: read # lets the AI read your README on private repos
jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: issue-triage-byok/issue-triage-action@v1
with:
ai-api-key: ${{ secrets.AI_API_KEY }} # free Groq (gsk_) or Gemini (AIza) key
# ai-base-url: https://openrouter.ai/api/v1/chat/completions
# ai-model: gpt-4o-mini
# skip-labels: question,duplicate
# license-key: ${{ secrets.TRIAGE_LICENSE_KEY }} # Pro
Prefer your own provider? Set ai-api-key (repository secret) and any
OpenAI-compatible endpoint works (OpenAI, OpenRouter, Groq, a local server).
Issues opened by bots and pull requests are ignored. The action writes one comment (Pro also adds
labels); it never closes or edits anything. Want to see the output first? Add
dry-run: true and the comment is printed in the job log instead of posted.
Prefer a form? Use the workflow generator.
| Free | Pro | |
|---|---|---|
| AI triage comment (cause, fix, test) | yes | yes |
| Labels chosen among your repository's existing labels (up to 3) | — | yes |
priority:P0–P3 label | — | yes |
| “Possible duplicate of #N” (titles of up to 300 open issues) | — | yes |
| Price | free | $49 per year per organization |
The license key is shown right after payment. Save it as the repository or organization secret
TRIAGE_LICENSE_KEY and uncomment the license-key line in the workflow.
That's it: from the next issue on you get labels, priority and duplicate detection.
🔒 Secure checkout by Stripe, your card details never touch our servers · 7-day money-back guarantee, no questions asked (deus@lumnika.com) · no account required.
You pay your provider directly. Worst case per issue, from the action's own prompts (about 4 characters per token):
| Model (price per 1M tokens in / out) | Free, per 1,000 issues | Pro, per 1,000 issues |
|---|---|---|
gpt-4o-mini on OpenAI ($0.15 / $0.60) | 3.9M × 0.15 + 0.5M × 0.60 = $0.89 | + 1.9M × 0.15 + 0.5M × 0.60 = $1.47 |
meta-llama/llama-3.1-8b-instruct on OpenRouter ($0.05 / $0.08) | 3.9M × 0.05 + 0.5M × 0.08 = $0.24 | + 1.9M × 0.05 + 0.5M × 0.08 = $0.37 |
Upper bounds: typical issues are much shorter than 12,000 characters. Prices Sept 2026, from OpenAI API pricing and OpenRouter model page; check them before relying on these numbers. On private repositories the job also uses your GitHub Actions minutes.
Issue Triage BYOK vs Dosu · vs CodeRabbit · vs GitHub Copilot · Free workflow generator
issues: write on the default GITHUB_TOKEN, to post the
comment and (Pro) apply labels, and contents: read to read your README on private repos. The AI key stays in your repository secrets.contents: read to the permissions block.skip-labels to leave some issues alone.Triaging many repos, or want to review drafts before they go public? The WordPress dashboard version lists every open issue of your repositories in one place.