๐Ÿ“– Complete User Guide

From Zero to Production. Learn how to install, set up, and use bugsift for GitHub issue triage.

๐Ÿ“‘ Quick Navigation

๐Ÿค– What is bugsift?

Think of bugsift as an AI-powered triage bot for your GitHub issues. Instead of maintainers spending hours reading every issue to figure out if it's a real bug, duplicate, feature request, or spam โ€” bugsift does this automatically in about 90 seconds per issue.

It classifies the issue, checks for duplicates, tries to reproduce it, and drafts a reply for you to approve. You always decide what actually gets posted.

โœ… Prerequisites - What You Need

Hardware

  • A server or cloud VM (AWS EC2, DigitalOcean, or even your laptop)
  • 2GB RAM minimum (4GB recommended for production)
  • 50GB disk space (scales with your repo size)
  • Any OS: Linux, macOS, Windows (with Docker Desktop)

Software

  • Docker 24+ (includes Docker Compose)
  • Your own domain (optional for testing, required for production)
  • A GitHub account with at least one repository

API Keys (you provide these)

  • GitHub Personal Access Token (or GitHub App โ€” we help you create this)
  • LLM API key (Anthropic Claude, OpenAI, Google Gemini, or Ollama)
That's it! No additional databases to manage, no servers to provision separately.

๐Ÿš€ Installation - The Easy Way

The entire installation is literally one command:

BUGSIFT_DOMAIN=bugsift.yourdomain.com \ curl -fsSL https://github.com/joym-gits/bugsift/releases/download/v0.2.0/install.sh | bash

What this does behind the scenes:

  • Downloads pre-built Docker images (backend + frontend)
  • Creates a PostgreSQL database
  • Sets up Redis caching
  • Generates encryption keys automatically
  • Creates an nginx reverse proxy
  • Starts all services
  • Prints you a bootstrap token and dashboard URL

The entire process takes about 5 minutes.

For local testing (before production):

You can skip the domain and just run the command without the BUGSIFT_DOMAIN variable. This runs on localhost:3001 (frontend) and localhost:8001 (API).

โš™๏ธ Initial Setup - First 15 Minutes

Once installed, here's what to do:

Create Your First Admin Account (2 min)

Visit your dashboard (either https://bugsift.yourdomain.com or http://localhost:3001). You'll see a setup wizard. Create an admin account with email + password. Write down the bootstrap token (shown once).

Register GitHub App (5 min)

In dashboard โ†’ Settings โ†’ GitHub Integration, click "Register GitHub App". GitHub's manifest flow opens. Bugsift creates the GitHub App automatically (you approve once). GitHub gives you App credentials, bugsift stores them encrypted.

Install on Your Repos (3 min)

Visit GitHub โ†’ Settings โ†’ Apps โ†’ Installed Apps. Click "Bugsift". Select which repos to install on (can be all, or specific ones). Once installed, bugsift starts listening for issue events.

Add an LLM Key (2 min)

Back in dashboard โ†’ Settings โ†’ LLM Provider. Paste your Anthropic API key (or OpenAI, Google, etc.). Set monthly budget (optional โ€” bugsift stops processing when reached). Save.

Now you're ready! Open an issue on one of your repos and watch bugsift triage it in ~90 seconds.

๐Ÿ“Š Daily Workflow - What Actually Happens

Here's the magic part. A user creates an issue on your repo:

Issue created: "fix: database connection timeout"

Within ~90 seconds, bugsift automatically:

  • Classifies it โ€” Determines it's a "bug" (not feature, question, docs, spam)
  • Checks for duplicates โ€” Searches past issues to see if this was reported before
  • Points to likely files โ€” Says "probably src/db/connection.py lines 45โ€“78"
  • Tries to reproduce โ€” Runs code in isolated sandbox to confirm the bug
  • Drafts a reply โ€” Something like: "Thanks for the report! I can reproduce this on v1.2.3. It's because the connection pool doesn't handle network timeouts. Assigned to @alice."

This all appears as a triage card in the bugsift dashboard.

You (the maintainer) decide:

  • โœ… Approve โ€” Posts the comment to GitHub
  • โœ๏ธ Edit โ€” Tweak the comment, then approve
  • โญ๏ธ Skip โ€” Ignore it (maybe it's unclear or you already have context)

All of this takes about 30 seconds for you to review. The bot does 90 seconds of work, you do 30 seconds.

For a solo repo with 100 issues/month, you save about 50 hours of triage work.

๐Ÿ”Œ Integrations - Connect to Your Tools

By default, bugsift shows you cards in the dashboard. But you can integrate:

GitHub (built-in)

  • Posts the triaged comment to the actual GitHub issue
  • Can auto-assign to team members
  • Can add labels

Slack (optional)

  • Sends you notifications when new triage cards appear
  • Can filter by severity
  • Links directly to dashboard cards

Jira (optional)

  • Creates Jira tickets from approved GitHub issues
  • Syncs status between GitHub and Jira
  • Auto-assign based on your rules

Email (optional)

  • Daily digest of what was triaged
  • Summary of accuracy

Set all of this up in Settings โ†’ Integrations.

๐Ÿ“‹ Configuration - Customizing Behavior

Routing Rules (the cool part)

You can tell bugsift custom rules like:

"For issues labeled 'security', assign to @alice, add label 'critical', notify #incidents on Slack, and SLA is 4 hours."

Or: "For documentation issues, auto-skip with 'auto-close' label and reply 'See our docs: [link]'"

Or: "For bug reports on the mobile app with severity:high, assign to @bob, notify #mobile-oncall, and SLA is 24 hours"

You define these rules once, bugsift applies them automatically.

Learning from your team

Every time you approve/edit/skip a card, bugsift learns. So if you consistently change "maybe-duplicate" to "actual-duplicate", bugsift gets better at catching duplicates. This is the "feedback loop" โ€” the AI learns your team's preferences over time.

๐Ÿ” Monitoring - How is it Running?

The dashboard shows you:

  • Metrics โ€” How many issues were triaged today, approval rate, accuracy
  • LLM costs โ€” How much you're spending per provider/model
  • Performance โ€” Average time to triage, success rate
  • User activity โ€” Who approved what, when

You can also:

  • Check logs if something breaks (Settings โ†’ Logs)
  • View audit trail of who did what and when (Settings โ†’ Audit Log)
  • Export data for reporting

โ“ Frequently Asked Questions

"What if bugsift gets it wrong?"

You're always in control. Every card goes to your dashboard before posting. You approve, edit, or skip. Bugsift never posts without permission.

"Does it work with private repos?"

Yes. Everything runs on your servers. Your GitHub tokens and issue bodies never touch anyone else's servers.

"How much does it cost?"

Bugsift itself is free (Apache 2.0 open source). You only pay for the LLM provider. For 100 issues/month with Anthropic, probably $2โ€“5/month depending on issue size.

"What if I already triage manually?"

Bugsift speeds you up. Even if you don't use routing rules, you still save time by having the AI do the reading and write draft replies.

"Can I customize the prompts?"

Yes, advanced users can fork the repo and modify the LLM prompts. The system is designed to be hackable.

"How long does it take to see results?"

Installation: 5 minutes. Setup: 15 minutes. First triage card: ~90 seconds after an issue is opened. Full productivity: within the first hour.

๐Ÿ“š Advanced Topics

Custom Prompts

The LLM prompts that drive classification, dedup, and reply generation are customizable. Fork the repo and modify them to match your team's style and preferences.

Self-Hosted Runners

For air-gapped environments or on-prem deployments, you can run bugsift entirely on your own hardware with no external dependencies.

Multi-Team Setup

Run one bugsift instance and manage multiple repos with different teams. Each team gets its own dashboard, rules, and audit log.

API Integrations

Bugsift exposes a REST API for advanced integrations. Check the GitHub repo for API docs.

๐Ÿ†˜ Troubleshooting

Dashboard not loading

Check that Docker containers are running: docker ps. If the frontend container isn't running, check logs with docker logs bugsift-frontend.

No triage cards appearing

Make sure the GitHub App is installed on your repos (GitHub โ†’ Settings โ†’ Apps โ†’ Installed Apps). Check that new issues trigger webhooks (GitHub โ†’ Repo โ†’ Settings โ†’ Webhooks).

GitHub auth failing

Re-register the GitHub App in Settings โ†’ GitHub Integration โ†’ Register GitHub App. This will renew the App credentials.

LLM key invalid

Double-check your API key in Settings โ†’ LLM Provider. Make sure there are no extra spaces or line breaks. Test the key by triggering a triage.

Performance issues

If triages are slow, check that you have at least 2GB of available RAM. Consider upgrading to 4GB for production use. Also check LLM provider status โ€” slow responses usually mean the provider is under heavy load.

Need more help? Open an issue on GitHub, or reach out in our Discord community.

๐Ÿ’ก The Key Insight

What makes bugsift different from other tools is it's human-in-the-loop by design. Users aren't handing off decision-making to AI. They're using AI to do the boring reading/analysis work, then they make the actual decisions. This is why it's safe and practical to use in real teams.