Skip to main content

Auto-fix bugs from GitHub, GitLab, Jira, Linear, Bitbucket, or Azure DevOps with AI agents — bring your own CLI or free API.

Project description

FixFleet

FixFleet

AI Bug Fixer for GitHub · GitLab · Jira · Linear · Bitbucket · Azure DevOps

Reads open bug issues from any tracker, parses stack traces, pre-narrows the search to the right files, dispatches to your AI of choice, and scores fix confidence. All local. No commits. Bring your own AI.

PyPI VSCode Marketplace License GPL v3 Python 3.9+

ScreenshotsInstallToken setupHow it worksAI backendsFAQ


📸 Screenshots

Welcome screen
Welcome
3-step onboarding
Settings credentials
Settings
GitLab credentials + project
Settings backends
AI Backends
Pick your agent · date filter

📦 Install

🪄 VSCode Extension (recommended — premium UI)

Install from VSCode Marketplace

Or paste in terminal:

code --install-extension YashKoladiya30.fixfleet

🐍 Python CLI (terminal-only users)

pip3 install --user fixfleet
fixfleet

⚠️ If fixfleet: command not found — add user-bin to PATH:

echo 'export PATH="$(python3 -m site --user-base)/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc

⚡ Quick start (60 seconds)

  1. Install the VSCode extension (1 click above)
  2. Get an access token for your tracker — full guides below
  3. Click 🚀 FixFleet icon in VSCode activity bar → Configure → pick provider → paste token + project URL → save
  4. Click any bug in sidebar → premium detail panel opens
  5. Click ✨ Fix This Bug with AI → AI agent reads the code, fixes the bug, scores confidence
  6. Review the diff, commit yourself — FixFleet never commits or pushes

🔑 Connect Your Tracker (Token Setup Guides)

FixFleet supports 6 issue trackers. Pick yours below — each guide covers exactly where to click, which permissions to grant, and what to paste into FixFleet.

🔒 Security note: tokens are stored in your VSCode user settings on your machine only. FixFleet has no servers — your token goes directly from your laptop to your tracker's API and nowhere else.

🟧 GitLab — gitlab.com or self-hosted

1. Generate the token

  1. Open https://gitlab.com/-/user_settings/personal_access_tokens (or https://YOUR-GITLAB-HOST/-/user_settings/personal_access_tokens for self-hosted)
  2. Click "Add new token"
  3. Fill in:
    • Token name: fixfleet
    • Expiration date: up to 1 year ahead
  4. Select scopes — tick ONE of:
    • read_api — read-only (list + read bugs). Enough for fixing.
    • api — read + write. Needed later for auto-commenting / closing issues.
  5. Click "Create personal access token"
  6. Copy the token immediately — GitLab shows it only once. Format: glpat-xxxxxxxxxxxxxxxxxxxx

2. What to paste in FixFleet

Field Value
Provider GitLab
Token glpat-xxxxxxxxxxxxxxxxxxxx
Project URL https://gitlab.com/group/project — any GitLab URL works (with .git, /-/issues, SSH form, or short group/project)

Requirements

  • Bugs must carry the label Bug (capital B) to show up
  • Your account needs at least Reporter role on the project
⬛ GitHub — github.com or GitHub Enterprise

1. Generate the token (classic PAT)

  1. Open https://github.com/settings/tokens
  2. Click "Generate new token""Generate new token (classic)"
  3. Fill in:
    • Note: fixfleet
    • Expiration: 90 days or custom
  4. Select scopes — tick ONE of:
    • repo — full repository access (covers private repos)
    • public_repo — public repos only (lighter permission)
  5. Click "Generate token"
  6. Copy immediately — shown once. Format: ghp_xxxxxxxxxxxxxxxxxxxx

Alternative: fine-grained PATs also work — grant "Issues: Read" on the target repository.

2. What to paste in FixFleet

Field Value
Provider GitHub
Token ghp_xxxxxxxxxxxxxxxxxxxx
Project URL https://github.com/owner/repo — also accepts .git, /issues, SSH, or short owner/repo

Requirements

  • Bugs must carry the label bug (lowercase — GitHub's default label)
  • Pull requests are automatically filtered out
🟦 Jira — Atlassian Cloud (*.atlassian.net)

1. Generate the API token

  1. Open https://id.atlassian.com/manage-profile/security/api-tokens
  2. Click "Create API token"
  3. Label: fixfleet → click Create
  4. Copy the token — shown once

2. Combine email + token ⚠️ IMPORTANT

Jira authenticates with your Atlassian account email AND the token together. Paste them combined with a colon:

your-email@example.com:your-api-token

Example: jane@acme.com:ATATT3xFfGF0aBcDeFgH...

3. What to paste in FixFleet

Field Value
Provider Jira
Token email@example.com:api-token (combined with :)
Project URL https://yourcompany.atlassian.net/browse/MYPROJ-1 or https://yourcompany.atlassian.net/jira/projects/MYPROJ

⚠️ Must paste the full URL (not just the project key) — FixFleet reads your Atlassian host from it.

Requirements

  • Issues must have Issue Type = Bug
  • Issues in any status except Done-category show up
  • Your account needs Browse Projects permission
🟪 Linear — linear.app

1. Generate the API key

  1. Open https://linear.app/settings/api
  2. Under "Personal API keys" click "Create key"
  3. Label: fixfleet → create
  4. Copy — format: lin_api_xxxxxxxxxxxxxxxxxxxx

2. What to paste in FixFleet

Field Value
Provider Linear
Token lin_api_xxxxxxxxxxxxxxxxxxxx (paste as-is)
Project URL https://linear.app/yourworkspace/team/ENG/all or any issue URL like https://linear.app/yourworkspace/issue/ENG-42/... — also accepts bare team key ENG

Requirements

  • Issues must carry the label Bug
  • Issues in Backlog / Todo / In-Progress states show up (completed/canceled excluded)
  • FixFleet works per team — the team key (e.g. ENG) comes from your URL
🟫 Bitbucket — bitbucket.org (Cloud)

1. Generate an App Password

  1. Open https://bitbucket.org/account/settings/app-passwords/
  2. Click "Create app password"
  3. Label: fixfleet
  4. Permissions — tick:
    • Issues → Read
  5. Click Createcopy the password — shown once

2. Combine username + app password ⚠️ IMPORTANT

Bitbucket authenticates with your username AND app password together. Find your username at https://bitbucket.org/account/settings/ (it's NOT your email). Paste combined:

your-username:your-app-password

Example: janedoe:ATBBxxxxxxxxxxxxxxxx

3. What to paste in FixFleet

Field Value
Provider Bitbucket
Token username:app-password (combined with :)
Project URL https://bitbucket.org/workspace/repo or short workspace/repo

Requirements

  • The repo's issue tracker must be enabled (Repository settings → Issue tracker)
  • Issues with kind = bug and state = open show up
  • Bitbucket Server (self-hosted) is NOT supported — Cloud only
🟦 Azure DevOps — dev.azure.com Boards

1. Generate a PAT

  1. Open https://dev.azure.com → sign in
  2. Click the user settings icon (top-right, next to your avatar) → "Personal access tokens"
  3. Click "+ New Token"
  4. Fill in:
    • Name: fixfleet
    • Organization: select your org (or "All accessible organizations")
    • Expiration: up to 1 year
  5. Scopes → click "Custom defined" → find Work Items → tick:
    • Read
  6. Click Createcopy the token — shown once

2. What to paste in FixFleet

Field Value
Provider Azure DevOps
Token the PAT alone (no email, no colon — paste as-is)
Project URL https://dev.azure.com/yourorg/yourproject or short yourorg/yourproject

Requirements

  • Work items must have Work Item Type = Bug
  • Bugs in any state except Closed/Done/Resolved/Removed show up
  • Priority field maps automatically: 1 → High, 2 → Medium, 3-4 → Low

Token format cheat-sheet

Provider Paste format Example
GitLab token alone glpat-abc123...
GitHub token alone ghp_abc123...
Jira email:token jane@acme.com:ATATT3x...
Linear key alone lin_api_abc123...
Bitbucket username:app-password janedoe:ATBBabc...
Azure DevOps PAT alone a1b2c3d4...

🧠 How it works

┌─ Open bug issue (GitHub / GitLab / Jira / Linear / Bitbucket / Azure DevOps)
│
├─ Parse: description, steps, expected/actual, stack traces, logs
│
├─ Locate: extract file paths, symbols, stack frames → rank candidates → inline top file
│
├─ Dispatch to AI agent (Claude / Codex / Gemini / Cursor / Aider / Qwen / any free API)
│
├─ Score confidence: diff focus + self-rating + file relevance + hedge density
│
└─ Done — local-only changes ready for your review

Token-aware: per-issue, session, and daily budgets prevent paid-plan overruns.

Multi-backend: detected CLI agents shown as installed; pick one per session.

Confidence scored: every fix gets a 0.0–1.0 score so you know which to review first.


🤖 Supported AI agents

CLI backends (uses your existing paid plans)

Agent Plan source
🟪 Claude Code Claude Pro / Max
🟢 Codex ChatGPT Plus / Pro
🟦 Gemini CLI Google AI free tier
Cursor Agent Cursor Pro
🟧 Aider Bring your own key
🟨 Qwen Code Alibaba free tier

API backends (free-tier friendly)

One OpenAI-compatible client serves all:

Provider Free Get key
Groq https://console.groq.com/keys
Google Gemini https://aistudio.google.com/apikey
OpenRouter https://openrouter.ai/keys
Cerebras https://cloud.cerebras.ai
Ollama (local) https://ollama.com
LM Studio (local) https://lmstudio.ai

🎯 Why FixFleet

vs. doing it manually

Triages 50 bugs in the time it takes you to read 5.

vs. AI inside the issue (e.g. GitLab Duo, GitHub Copilot Workspace)

  • Costs nothing extra — uses AI plans you already pay for
  • Edits actual files locally, not just comments
  • You pick the AI — not locked to one vendor
  • One tool for all trackers — GitHub + GitLab + Jira + Linear + Bitbucket + Azure DevOps
  • Works on private/self-hosted instances without exposing source to a SaaS

vs. running Claude/Codex CLI manually

  • Structured prompts — extracts steps/logs automatically
  • Pre-narrows file scope — saves 60–80% tokens
  • Confidence scoring — review only uncertain fixes
  • Budget caps — never blows through paid quotas

❓ FAQ

Does this use any paid backend / hidden costs?

No. FixFleet runs 100% locally on your machine. No FixFleet servers, no Azure, no cloud component. You pay for nothing beyond AI plans you already own. The VSCode extension is free. The PyPI package is free. Updates forever, free.

What's the difference between the VSCode extension and the CLI?

Same engine, two interfaces:

  • CLI (pip install fixfleet) — interactive terminal flow, beautiful styled output
  • VSCode extension — premium UI sidebar + click-to-fix workflow, calls the CLI under the hood

Install both if you want flexibility. Extension auto-installs the CLI on first run if missing.

Will it ever commit or push my changes?

Never. FixFleet edits files locally and leaves your working tree dirty. You review the diff (git diff), then commit + push manually. This is intentional — AI fixes need human review before shipping.

Which issue trackers are supported?

All six, fully implemented:

Tracker Bug filter Notes
GitLab label Bug gitlab.com + self-hosted
GitHub label bug github.com + Enterprise, PRs auto-filtered
Jira Issue Type = Bug Atlassian Cloud
Linear label Bug per-team
Bitbucket kind = bug Cloud only
Azure DevOps Work Item Type = Bug Boards

Paste any URL — FixFleet auto-detects the provider. See Token setup guides.

Does it work with self-hosted GitLab / GitHub Enterprise?

Yes. Paste your full URL (e.g. https://gitlab.mycompany.com/group/project) and FixFleet auto-detects the host. No config needed.

Which AI should I use?
  • Best quality → Claude Code (Claude Pro)
  • Fastest → Groq (free Llama 3.3 70B)
  • Biggest free quota → Google Gemini API
  • Fully offline → Ollama with qwen2.5-coder:7b
How is FixFleet different from Cursor / Cody / Copilot?

Those are autocomplete + chat tools. FixFleet is a bug-triage automator — reads your bug tracker, dispatches each ticket to an AI, scores the fix. They complement each other.

Is my code sent to FixFleet servers?

There are no FixFleet servers. Your code goes from your machine → directly to whichever AI provider you pick (Anthropic / OpenAI / Google / Groq / Ollama / etc.) using your own credentials. FixFleet is open-source — read the code and verify.


🛡️ Privacy & Security

  • 🔒 Tokens typed via getpass — never echoed, never written to repo
  • 🛡️ Issue content fenced in prompts to prevent prompt-injection from malicious issue authors
  • 📂 Config + state stored in ~/.bugfixer.json / ~/.bugfixer-state.json (your home dir, never in any repo)
  • 🚫 Never commits, never pushes, never collects telemetry

📜 License

GPL-3.0-or-later — see LICENSE.

This means anyone can use, study, modify, and redistribute FixFleet — but derivative works must also be open-source under GPL-3. No closed-source forks. No proprietary repackaging.

Built by Yash Koladiya • © 2026.


If FixFleet saved you time, drop a ⭐ on the repo.

Report a bug · Request feature · VSCode Extension · PyPI Package

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

fixfleet-0.4.0.tar.gz (77.0 kB view details)

Uploaded Source

Built Distribution

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

fixfleet-0.4.0-py3-none-any.whl (75.5 kB view details)

Uploaded Python 3

File details

Details for the file fixfleet-0.4.0.tar.gz.

File metadata

  • Download URL: fixfleet-0.4.0.tar.gz
  • Upload date:
  • Size: 77.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fixfleet-0.4.0.tar.gz
Algorithm Hash digest
SHA256 bb636b6908efa18e2dfe4a74b21579269916626b291ed9a8c5a55120029dbc42
MD5 75553a31001678ff1fafffcdb1330bfa
BLAKE2b-256 c87575bd589c1112b67c25a0da0ab13a21f822fe0e4dde9756e5f39d57fd2ff7

See more details on using hashes here.

Provenance

The following attestation bundles were made for fixfleet-0.4.0.tar.gz:

Publisher: publish-pypi.yml on Yash-Koladiya30/fixfleet

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

File details

Details for the file fixfleet-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: fixfleet-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fixfleet-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f0a399e09d3a9a05c2ac0d1b7ea0b7401fa69c8067dc3c55807e0ba2def203e
MD5 35829a92ab400c0a51ce367f1da14abe
BLAKE2b-256 42d43b441254e72ad1f0d78f5b879088c875bb6201019e2d523c77184ccbd9d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for fixfleet-0.4.0-py3-none-any.whl:

Publisher: publish-pypi.yml on Yash-Koladiya30/fixfleet

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