Skip to main content

AI-powered GitHub issue automation framework

Project description

BeneIssue

AI-Agentic issue automation for GitHub.

Drowning in GitHub issues? Install beneissue once, and it handles the rest automatically.

Who is this for?

  • Open source maintainers with 100+ issues piling up
  • Small teams who can't afford to manually label every issue
  • Solo developers who want typo fixes handled automatically

What changes after you install it?

Before After
Issue opened → check it days later Issue opened → instantly classified + labeled
Manually comment "need more info" Auto-asks specific follow-up questions
Fix simple bugs yourself Auto-eligible issues get auto-PR via Claude Code

How it works

BeneIssue Workflow

Three stages:

Stage What it does Model
Triage Classify issue → valid / invalid / duplicate / needs-info Haiku (fast, ~$0.02)
Analyze Find affected files, plan fix approach, check eligibility Claude Code
Fix Create branch, apply fix, open PR Claude Code

Install once, runs forever

1. Install the package

pip install beneissue

2. Set up GitHub repository

Secrets: Go to Settings → Secrets and variables → Actions → Secrets tab:

Secret Required Description
ANTHROPIC_API_KEY Yes Your Claude API key
LANGCHAIN_API_KEY No LangSmith for tracing

Variables: Go to Settings → Secrets and variables → Actions → Variables tab:

Variable Required Description
LANGCHAIN_PROJECT No LangSmith project name (default: beneissue)

Permissions: Go to Settings → Actions → General → Workflow permissions:

  • Enable "Allow GitHub Actions to create and approve pull requests"

3. Initialize in your repo

cd your-repo
beneissue init
git push

This creates:

your-repo/
├── .github/workflows/
│   └── beneissue-workflow.yml   # Triggers on issue events
└── .claude/skills/beneissue/
    ├── SKILL.md                 # Claude Code instructions
    └── beneissue-config.yml     # Your settings

That's it. From now on:

  1. New issue opened → automatically triaged and labeled
  2. Auto-eligible issues → Claude Code creates a PR
  3. Need manual control? → just comment on the issue

Control via issue comments

@beneissue triage    # Re-classify this issue
@beneissue analyze   # Run full analysis
@beneissue fix       # Attempt auto-fix now

No CLI needed. Just talk to the bot in the issue thread.

GitHub Actions triggers

Event Trigger Action
Issue opened/reopened Automatic Runs analyze (triage → analyze)
@beneissue triage Comment Re-classify the issue
@beneissue analyze Comment Run full analysis
@beneissue fix Comment Attempt auto-fix now
@beneissue run Comment Full pipeline: triage → analyze → fix

Verify it's working

When issues get these labels automatically, you're set:

  • triage/valid — Valid issue, ready for work
  • fix/auto-eligible — Will be auto-fixed

Configuration

Edit .claude/skills/beneissue/beneissue-config.yml:

version: "1.0"

limits:
  daily:
    triage: 50   # ~$1/day
    analyze: 20  # ~$2-10/day
    fix: 5       # ~$5-25/day

team:
  - github_id: "your-github-id"
    available: true
    specialties: ["backend", "python"]

LangSmith (optional)

Set environment variables for tracing:

export LANGCHAIN_API_KEY=your-langsmith-api-key
export LANGCHAIN_PROJECT=your-project-name  # default: beneissue

When LANGCHAIN_API_KEY is set, LangSmith tracing is automatically enabled.

Labels

Label Meaning
triage/valid Valid issue, ready for analysis
triage/invalid Out of scope or spam
triage/duplicate Already reported
triage/needs-info Waiting for more details
fix/auto-eligible Passes checklist, will be auto-fixed
fix/manual-required Needs human review
fix/completed Auto-fix PR created

CLI (optional)

For manual runs or debugging:

Command Description
beneissue triage <repo> --issue <n> Classify issue only
beneissue analyze <repo> --issue <n> Analyze issue only (no triage, no fix)
beneissue fix <repo> --issue <n> Fix issue only (no triage, no analysis)
beneissue run <repo> --issue <n> Full workflow: triage → analyze → fix
beneissue init Initialize beneissue in current repo
beneissue labels Sync labels to repository
beneissue test Run policy tests

Add --dry-run to triage/analyze to skip GitHub actions.

Policy Testing

Validate your triage/analyze rules before deploying:

your-repo/.claude/skills/beneissue/tests/cases/
├── triage-valid-bug.json
├── triage-invalid-spam.json
└── analyze-auto-eligible-typo.json
beneissue test                    # Run all test cases
beneissue test --case spam        # Run specific case
beneissue test --dry-run          # Validate without AI calls

See examples/calculator for sample test cases.

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beneissue-1.0.18.tar.gz (33.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beneissue-1.0.18-py3-none-any.whl (46.8 kB view details)

Uploaded Python 3

File details

Details for the file beneissue-1.0.18.tar.gz.

File metadata

  • Download URL: beneissue-1.0.18.tar.gz
  • Upload date:
  • Size: 33.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for beneissue-1.0.18.tar.gz
Algorithm Hash digest
SHA256 da689c83eae0816773981ddb5f7d17b953ead464552673e6b6c6d1d92208b563
MD5 4459abcf3cf16032a993c675ff8009a0
BLAKE2b-256 e6a1da6aaefa00d063ac3a0b1780fb95920f92e459030a2d17b0a78ada42174a

See more details on using hashes here.

Provenance

The following attestation bundles were made for beneissue-1.0.18.tar.gz:

Publisher: publish.yml on opendataloader-project/beneissue

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file beneissue-1.0.18-py3-none-any.whl.

File metadata

  • Download URL: beneissue-1.0.18-py3-none-any.whl
  • Upload date:
  • Size: 46.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for beneissue-1.0.18-py3-none-any.whl
Algorithm Hash digest
SHA256 e5d70ce43feb91a19898578452e9a95cde0769b39115685a40939a14b97a000c
MD5 aaf56d467d1f36346e4f2b930c5a6589
BLAKE2b-256 d71c85405fd728ed957d4261e644ce4fdefd596345bf66fa02da098800401544

See more details on using hashes here.

Provenance

The following attestation bundles were made for beneissue-1.0.18-py3-none-any.whl:

Publisher: publish.yml on opendataloader-project/beneissue

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page