Model or dataset
SWE-agent/SWE-agent avatar
SWE-agent/SWE-agent

SWE-agent: An LM-driven GitHub issue fixer that now points to its own successor

SWE-agent takes a GitHub issue and tries to automatically fix it, using your LM of choice. It can also be employed for offensive cybersecurity or competitive coding challenges. [NeurIPS 2024].

20,326 stars2,218 forksPythonMIT

At a glance

What is it?
SWE-agent turns a GitHub issue into an autonomous fix attempt by your chosen language model. The project still works, but its maintainers now direct new users to mini-swe-agent instead.
Who is it for?
Adopt SWE-agent if you need a mature, research-backed agent that can run on SWE-bench, tackle CTF challenges, or be customized through a single YAML file, and you are comfortable with a more complex codebase. Do not adopt it if you are starting fresh: the maintainers explicitly say mini-swe-agent matches its performance with far less complexity, and they have shifted development effort there.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 8 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What SWE-agent actually does

SWE-agent solves a specific problem: it takes a GitHub issue and attempts to fix it automatically, using a language model of your choice. The README lists three use cases: fixing issues in real repositories, finding cybersecurity vulnerabilities, and performing custom tasks like competitive coding challenges. The intended audience is researchers and engineers who want to automate software maintenance or security work without building an agent from scratch. It is not a tool for non-technical users. You need to be comfortable with command-line tools, configuration files, and the quirks of language model outputs. The project originated at Princeton and Stanford, and it was presented at NeurIPS 2024, so it carries academic weight. But the README immediately warns you: most current development effort is on mini-swe-agent, which has superseded SWE-agent. That warning shapes everything about this review.

The mechanism: an agent-computer interface

The core idea, from the paper title, is an agent-computer interface. SWE-agent does not just feed an issue to a model and hope for a patch. It gives the model tools to interact with a repository: reading files, searching, editing, and running commands. The README says it leaves maximal agency to the LM, meaning the model decides which tools to call and in what order. The system is governed by a single YAML file, which controls the agent's behavior. That design makes it configurable and hackable, which is why the maintainers describe it as made for research. The data flow is straightforward: you provide a GitHub issue, the agent uses your LM to reason about the problem, and it produces a patch or a set of changes. The documentation mentions a summarizer and interactive commands, though the README does not detail them. The key point is that SWE-agent is not a fixed pipeline. It is a framework that lets the model drive the process.

Getting it running: commands and configuration

The README points to installation from source, with a hello world example from the command line. It also offers a browser-based option through GitHub Codespaces, which lowers the barrier for a quick try. The project uses Docker, based on the typical SWE-agent setup, though the README does not spell that out. You will need Python, and the documentation covers the exact steps. The configuration is a single YAML file, which controls the agent's tools and behavior. The README emphasizes that this is fully documented, so you can expect to spend time reading the docs before you get a working setup. The hello world example likely involves running a command like `sweagent run` with an issue URL, but the README does not give the exact syntax. What is clear is that you need an LM API key, since the tool uses your choice of model, such as GPT-4o or Claude Sonnet 4. The installation is not trivial, but the Codespaces option is a practical shortcut for evaluation.

The state-of-the-art claims and what they mean

The README makes strong claims: state of the art on SWE-bench among open-source projects, and with Claude 3.7, state of the art on SWE-bench full and verified. These are benchmark results, not guarantees of real-world performance. SWE-bench is a standard dataset of GitHub issues, so scoring well there suggests the agent can handle realistic bug fixes. But the README also notes that mini-swe-agent achieves 65% on SWE-bench verified in 100 lines of Python, matching SWE-agent's performance with far less code. That is a direct admission that the complexity of SWE-agent does not buy you better results. For a practitioner, this means you should not choose SWE-agent based on the benchmark numbers alone. The numbers are real, but they are also achievable with the simpler successor. The claims are about the agent's capability, not about its efficiency or maintainability.

The EnIGMA cybersecurity mode and its caveat

SWE-agent includes a mode for offensive cybersecurity, called EnIGMA, which solves capture the flag (CTF) challenges. The README says EnIGMA achieves state-of-the-art results on multiple cybersecurity benchmarks, with a leaderboard linked. This extends the tool beyond software engineering into security research. However, there is a significant caveat: the README instructs users to use SWE-agent 0.7 for EnIGMA while they update it for version 1.0. That means if you want the cybersecurity mode, you are stuck on an older branch. This is a real limitation. You cannot get the latest features and the EnIGMA mode at the same time. For a security researcher, that might be acceptable if the older version works, but it means you are maintaining two versions or missing out on fixes. The maintainers are aware of this, and the warning suggests they have not prioritized the update.

Limitations and when it is the wrong tool

The most obvious limitation is that the project has been superseded. The README says mini-swe-agent matches performance while being much simpler, and it recommends using mini-swe-agent instead. That is a strong signal that SWE-agent is not the right choice for new projects. Another limitation is the complexity. The README describes it as hackable by design, but that also means you need to understand the internals to customize it. The single YAML file is a selling point, but it can become a bottleneck when you need behavior that is not covered by the config. For small teams or individuals who just want a quick fix, the overhead is high. It is also the wrong tool if you do not have a reliable LM API, because the agent's success depends entirely on the model's reasoning. And for cybersecurity, the requirement to use an older version is a dealbreaker if you need the latest security fixes or features.

Alternatives: mini-swe-agent and the broader landscape

The primary alternative is mini-swe-agent, the project that has superseded SWE-agent. The difference is in approach: mini-swe-agent is a minimal implementation, around 100 lines of Python, that achieves the same benchmark performance. It is simpler to understand, modify, and deploy. If you are evaluating SWE-agent, you should look at mini-swe-agent first. The README gives a direct comparison: mini-swe-agent matches performance while being much simpler. There are other tools in the space, such as other LM-based coding agents, but the README does not name them. The key difference with SWE-agent is its focus on a configurable agent-computer interface, whereas simpler tools may hardcode the workflow. If you need the research flexibility, SWE-agent offers that, but at the cost of complexity. For most users, the simpler alternative is the better choice.

Maintenance and license implications

SWE-agent is licensed under MIT, which allows you to use, modify, and distribute it freely, including for commercial purposes. The README does not mention any patent or additional restrictions. The maintenance status is mixed. The repository is not archived, and there was a release in May 2025, so it is not dead. But the maintainers explicitly state that most development effort is on mini-swe-agent. That means you should expect fewer updates, slower bug fixes, and less community support for SWE-agent. The v1.1.0 release mentions tens of thousands of training trajectories, which indicates ongoing data collection, but that may be for mini-swe-agent as well. For a production deployment, you need to factor in the cost of maintaining a tool that is effectively in maintenance mode. The MIT license gives you the freedom to fork and maintain it yourself, which is a viable path if you have the resources.

Editorial conclusion

Adopt SWE-agent if you need a mature, research-backed agent that can run on SWE-bench, tackle CTF challenges, or be customized through a single YAML file, and you are comfortable with a more complex codebase. Do not adopt it if you are starting fresh: the maintainers explicitly say mini-swe-agent matches its performance with far less complexity, and they have shifted development effort there. Before committing, verify that your target LM is supported, that you can run the Docker-based installation on your machine, and that the EnIGMA cybersecurity mode still works for your use case, since it currently requires the older v0.7 branch. The project is not abandoned, but its future is clearly behind mini-swe-agent, so factor that into your long-term maintenance plan.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes