Skip to content

❤️ Contributing

We happily accept contributions!

Areas of help

  • Feedback on the mini and mini -v interfaces at this github issue or in our Slack channel.
  • Documentation, examples, tutorials, etc. In particular, we're looking for
    • examples of how this library is used in the wild
    • additional examples for the cookbook
  • Support for more models (anything where litellm doesn't work out of the box)
  • Support for more environments & deployments (e.g., run it as a github action, etc.)
  • Take a look at the issues and look for issues marked good-first-issue or help-wanted (please read the guidelines below first)

Design & Architecture

  • mini-swe-agent aims to stay minimalistic, hackable, and of high quality code.
  • To extend features, we prefer to add a new version of the one of the four components (see cookbook), rather than making the existing components more complex.
  • Components should be relatively self-contained, but if there are utilities that might be shared, add a utils folder (like this one). But keep it simple!
  • If your component is a bit more specific, add it into an extra folder (like this one)
  • Our target audience is anyone who doesn't shy away from modifying a bit of code (especially a run script) to get what they want.
  • Therefore, not everything needs to be configurable with the config files, but it should be easy to create a run script that makes use of it.
  • Many LMs write very verbose code -- please clean it up! Same goes for the tests. They should still be concise and readable.
  • Please install pre-commit (pip install pre-commit && pre-commit install) and run it before committing. This will enforce our style guide.

Development setup

Make sure to follow the dev setup instructions in quickstart.md.

After that you can run pytest with pytest -n auto (this parallelizes the tests across all cores for speedup).