Skip to main content

The ultimate debugging experience 🦠🔥

Project description

🔥 flamethrower

No bugs can survive the test of fire; not even the ones you wrote into your codebase 🪲.

GitHub Repo PyPI Code Size Discord License Twitter

What is this?

🔥 flamethrower is an open source, multi-agent, context-intelligent, debugger that utilizes AI superpowers to automate the painful task of debugging. Think a combination of GitHub Copilot's context-awareness in KillianLucas' Open Interpreter packed into a beautiful shell that works out of the box with any existing repo.

Automate: [ Write Code → Run Action → Check Logs → Repeat ] 🚀🚀

Main Differentiators

  • 🔥 Automate the most painful part of writing code: print statements & error logs
  • ☘️ Specialized context agent for operating within existing repo
  • 🤖 Debugging agent optimized to iteratively brute-force locate and fix bugs
  • 📦 Out of the box support for any unix machine (no VS Code or VS Code alternatives)
  • 🎨 Seamless integration into any existing repo; just type flamethrower

Demo

https://github.com/scottsus/flamethrower/assets/88414565/e3c979c0-40ff-4976-aa30-2503a2827742

Quick Start

Quick Start

Install 🔥 flamethrower

pip install flamethrower

Or, if you have an existing version and are looking to upgrade to the latest version

pip install --upgrade flamethrower

Terminal

Navigate to your current workspace, and simply run flamethrower, or ft for the pros.

cd ./unbelievably/complicated/workspace
flamethrower

Example Usage

Use lowercase letters for commands you run in the shell, like python main.py or node server.ts

🔥 flamethrower: Debugging on Autopilot

Instructions:
- ⌨️  Regular shell        Use commands like ls, cd, python hello.py
- 🤖 LLM assistance       Start command with a Capital letter, try Who are you?
- 📚 Context              Intelligent context-awareness from command, files, and stdout logs
- 🪵 Terminal logs        All conversation & code output inside flamethrower is logged

...

$ python main.py -> SOME_ERROR
$ Wtf???? # Literally type this in the terminal

An implementation run is initiated with a natural language query that begins with an uppercase letter.

Features

💤 AFK Debugging

If you say 'Yes', 🔥 flamethrower will debug in the background while you focus on other tasks at hand. It acts similarly to any other human engineer: adding print statements to find the root cause of the issue (which, as we know is the most annoying part). We find this pattern strikingly effective, and is where we believe LAMs have the strongest use case.

If it looks like 🔥 flamethrower is obviously headed in the direction of doom, simply press CTRL+C and give it more suggestions or context.

AFK

🎙️ Conversation History

As long as any shell command or natural language query happens within the context of 🔥 flamethrower, then it is by default captured in the conversation history. That means you can:

  • ask about an error that just happened, or happened 2 dialogues ago
  • follow up on a previous response provided by 🔥 flamethrower

🔍 Prompt Transparency

Prompts sent to LLM are transparent and easy to observe. All 🔥 flamethrower metadata are neatly kept in a .flamethrower subdirectory, including prompts, conversations, logs, directory info, summaries, and other metadata.

Transparency

🏄‍♀️ Real Time File Tracking

Everytime you send a query, the latest version of your files are sent over, meaning 🔥 flamethrower understands that you changed your files, and are ready to process those changes.

Context

Motivation for 🔥 flamethrower

👩‍✈️ GitHub Copilot

Closed source GitHub Copilot draws context very effectively, and Quick Fix is a neat feature that explains error from stdout logs if the last command returned a non-zero return code.

🤖 Open Interpreter

The Open Interpreter, an open-source gem, specializes in crafting new code from the ground up. It's a favorite among data scientists and those needing sophisticated chart plotting, thanks to its iterative approach to achieving desired results.

🔬 Research

🔥 flamethrower combines the agency afforded by Large Action Models (LAM) with the workspace awareness of Copilot, allowing it to take context-specific suggestions and continue iteration until a successful outcome. 🔥 flamethrower is workspace-first, and aims to serve software engineers in complex tasks that need a lot of context management.

🥂 Contributing

🔥 flamethrower is everyone's debugger. Fork it for your own use case, and, one PR at a time we can make the world a more bug-free place ✨ just ping me at scottsus@usc.edu and I'll help you get started.

🛫 Project Roadmap

  • 🧪 Better testing
  • 🔭 Telemetry and the ability to opt in/out
  • 🥽 LLM Vision to debug visual elements
  • 🦙 Running CodeLlama locally
  • 🤖 Other models besides OpenAI
  • 🦾 Default model finetuned on telemetry data
  • 🎗️ VS Code integration
  • 💻 Browser interface

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

flamethrower-0.2.32.tar.gz (50.2 kB view details)

Uploaded Source

Built Distribution

flamethrower-0.2.32-py3-none-any.whl (75.2 kB view details)

Uploaded Python 3

File details

Details for the file flamethrower-0.2.32.tar.gz.

File metadata

  • Download URL: flamethrower-0.2.32.tar.gz
  • Upload date:
  • Size: 50.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.8.10 Darwin/22.6.0

File hashes

Hashes for flamethrower-0.2.32.tar.gz
Algorithm Hash digest
SHA256 c632e4399c50790c71d6d2770f9a59f2775c8ce7d8b038c3d63bba04ac0ca164
MD5 63e6223de15825e67b5f775f38d53ebf
BLAKE2b-256 c25820d7e16534402c6406de67a2d0c7938e2b21ff86fb1739b9f14f7f0dce97

See more details on using hashes here.

File details

Details for the file flamethrower-0.2.32-py3-none-any.whl.

File metadata

  • Download URL: flamethrower-0.2.32-py3-none-any.whl
  • Upload date:
  • Size: 75.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.8.10 Darwin/22.6.0

File hashes

Hashes for flamethrower-0.2.32-py3-none-any.whl
Algorithm Hash digest
SHA256 2c559a0c202443b104789d7db9f0c58a16d90ab443bffcbe802a6c7b2044afd0
MD5 519d30274b485d42bb664b4f720ae95a
BLAKE2b-256 9c701d1bff36dd4f3ab1b3eed8d79671758f6aa67bf2783b3a16a60c4bff0f1c

See more details on using hashes here.

Supported by

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