Skip to main content

Sweep software chores

Project description

Bug Reports & Feature Requests ⟶  Code Changes

Landing Page Docs PyPI

Sweep is an AI junior developer that transforms bug reports & feature requests into code changes.

Describe bugs, small features, and refactors like you would to a junior developer, and Sweep:

  1. 🔍 reads your codebase
  2. 📝 plans the changes
  3. writes a pull request with code

See highlights at https://docs.sweep.dev/examples.

Demo

🌠 Sweep

  • 🔧 Turns issues directly into pull requests (without an IDE)
  • 👀 Addresses developer replies & comments on its PRs
  • 🕵️‍♂️ Uses embedding-based code search, with popularity reranking for repository-level code understanding (🔍 Rebuilding our Search Engine in a Day)
  • 🎊 New: Fixes PRs based on Github Actions feedback
  • 🎊 New: Sweep Chat, a local interface for Sweep (see below)

🚀 Getting Started

🍲 Recipes

To get the best performance from Sweep, we recommend the following approach to writing github issues/chats.

For harder problems, try to provide the same information a human would need. For simpler problems, providing a single line and a file name should suffice.

A good issue might include:

Where to look
[file name or function name]
What to do
[change the logic to do this]
Additional Context (optional)
[there's a bug/we need this feature/there's this dependency]
In sweepai/app/ui.py use an os-agnostic temp directory N/A
In on_comment.py we should not fire an event because it's possible that the comment is on a closed PR
In the config loader in packages/server/src/config.ts add a third option called "env" to load the config settings from environment variables At present, there are two options: 1. ... and 2. ...

If you want Sweep to use a file, try to mention the full path. Similarly, to have Sweep use a function, try to mention the class method or what it does. Also see ✨ Tips and tricks for Sweep.

Limitations:

Sweep is unlikely to complete complex issues on the first try, similar to the average junior developer. Here are Sweep's limitations(for now):

  • Try to change less than 200 lines of code
  • Try to modify less than 3 files
  • Do not include files with more than 1500 lines of code

✨ Sweep Github App

Setting up Sweep is as simple as adding the GitHub bot to a repo, then creating an issue for the bot to address. We support all languages GPT4 supports, including Python, Typescript, Rust, Go, Java, C# and C++.

  1. Add the Sweep GitHub app to desired repos
  2. Create new issue in repo, like "Sweep: In sweepai/app/ui.py use an os-agnostic temp directory"

🖥️ Sweep Chat

Sweep Chat allows you to interact with Sweep and GitHub locally. Collaborate on the plan with Sweep, then have it create the pull request for you.

Prerequisites: Install Sweep GitHub app to your repository

  1. Run pip3 install sweepai && sweep. Note that you need python 3.10+.

    • Alternatively run pip3 install --force-reinstall sweepai && sweep if the previous command fails.
    • This runs GitHub authentication in your browser.
  2. Copy the 🔵 blue 8-digit code from your terminal into the page. You should only need to do the authentication once.

    • Wait a few seconds and Sweep Chat will start.
  3. Choose a repository from the dropdown at the top (the Github app must be installed to this repository).

    • ⚡ Start chatting with Sweep Chat! ⚡

Tips:

  • 🔍 Relevant searched files will show up on the right.
  • 🔘 Sweep Chat creates PRs when the "Create PR" button is clicked.
  • 💡 You can force dark mode by going to http://127.0.0.1:7861/?__theme=dark.

From Source

If you want the nightly build and or if the latest build has issues.

  1. git clone https://github.com/sweepai/sweep && poetry install
  2. python sweepai/app/cli.py. Note that you need python 3.10+.

💰 Pricing

  • We charge $120/month for 60 GPT4 tickets per month.
  • For unpaid users, we offer 3 free GPT4 tickets per month.
  • We also offer unlimited GPT3.5 tickets.

🤝 Contributing

Contributions are welcome and greatly appreciated! For detailed guidelines on how to contribute, please see the CONTRIBUTING.md file. For more detailed docs, see 🚀 Quickstart.

📘 Story

We were frustrated by small tickets, like simple bug fixes, annoying refactors, and small features. Each task required us to open our IDE to fix simple bugs. So we decided to leverage the capabilities of ChatGPT to address this directly in GitHub.

Unlike existing AI solutions, this can solve entire tickets and can be parallelized + asynchronous: developers can spin up 10 tickets and Sweep will address them all at once.

📚 The Stack

  • GPT-4 32k 0613 (default)
  • ActiveLoop DeepLake for Vector DB with MiniLM L12 as our embeddings model
  • Modal Labs for infra + deployment
  • Gradio for Sweep Chat

🗺️ Roadmap

See 🗺️ Roadmap

⭐ Star History

Star History Chart

Consider starring us if you're using Sweep so more people hear about us!

Contributors

Thank you for your contribution!

and, of course, Sweep!

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

sweepai-0.4.8.tar.gz (71.3 kB view details)

Uploaded Source

Built Distribution

sweepai-0.4.8-py3-none-any.whl (81.7 kB view details)

Uploaded Python 3

File details

Details for the file sweepai-0.4.8.tar.gz.

File metadata

  • Download URL: sweepai-0.4.8.tar.gz
  • Upload date:
  • Size: 71.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for sweepai-0.4.8.tar.gz
Algorithm Hash digest
SHA256 0a0b5d2e083249323c4f83e9f7a524006e8eeff8cc031959ef4133e43e1de0e8
MD5 c44c26070fed576ee46404a419b698c1
BLAKE2b-256 91282cb2939fc07c98bde5883ea89ba1e390f612d75f9c018fcb4ec5cf33a71c

See more details on using hashes here.

File details

Details for the file sweepai-0.4.8-py3-none-any.whl.

File metadata

  • Download URL: sweepai-0.4.8-py3-none-any.whl
  • Upload date:
  • Size: 81.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for sweepai-0.4.8-py3-none-any.whl
Algorithm Hash digest
SHA256 718ccf396827b0731452b497e8b4477ad129c791f8883a49581ffb9ded0373a2
MD5 393bfc9e0247eccf803e8f1412b16cd1
BLAKE2b-256 315baa3a88288ea6d782faef40d331998c8c5baa169fe6dbc9edf3f7e064304a

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page