What's Sweep?

Sweep: AI-powered junior dev

Bug Reports & Feature Requests ⟢  Code Changes

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/about/examples (opens in a new tab).

🌠 Features

  • πŸ”§ 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 (opens in a new tab))
  • 🎊 New: Fixes PRs based on Github Actions feedback

πŸš€ Getting Started

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 (opens in a new tab) to desired repos
  2. Create new issue in repo, like "Sweep: Write tests". If there's an existing issue, label it with the purple "Sweep" label.
  3. Watch the magic happen πŸͺ„

🍲 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.pyuse an os-agnostic temp directoryN/A
In on_comment.pywe should not fire an eventbecause it's possible that the comment is on a closed PR
In the config loader in packages/server/src/config.tsadd a third option called "env" to load the config settings from environment variablesAt 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 Advanced (opens in a new tab).

🀝 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 (opens in a new tab).

πŸ“˜ 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

πŸ—ΊοΈ Roadmap

See πŸ—ΊοΈ Roadmap (opens in a new tab)

⭐ Star History

Star History Chart (opens in a new tab)

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

Contributors


Contributors


and, of course, Sweep!