SWE-smith is a toolkit for training SWE-agents. You can:
- Turn any Github repository into a SWE-gym.
- Create unlimited tasks (e.g., file localization, program repair, SWE-bench) for that repo.
- Train an LM to become a better SWE (SWE-agent-LM-32B).
⚒️ Build Environments
If you're interested in turning a GitHub repository into a SWE-gym, install the package from source.
[!TIP] SWE-smith requires Docker to create execution environments. SWE-smith was developed and tested on Ubuntu 22.04.4 LTS. We do not plan on supporting Windows or MacOS.
You can then build a dataset for the repository by...
- Creating an environment
- Synthesizing task instances
- Keep tasks that break 1+ unit tests
- Generating issue text for your tasks
🏋️ Train SWE-agent's
Training SWE-agent's using the SWE-smith dataset is super simple.
from swesmith.profiles import registry
from datasets import load_dataset
ds = load_dataset("SWE-bench/SWE-smith", split="train") # Loads all 52k task instances
for task in ds:
rp = registry.get_from_inst(task) # Get the RepoProfile for the task
container = rp.get_container(task) # Returns pointer to a Docker container with the task initialized
"""TODO: Train!"""
SWE-smith has been used to
- Fine-tune Qwen 2.5 Coder into SWE-agent-LM-32B (A +32% jump on SWE-bench Verified!) using SWE-agent [Tutorial]
- Perform GRPO style reinforcement learning using SkyRL
💿 Resources
- 52k Task Instances
- SWE-agent-LM-32B; 40.2% pass@1 on SWE-bench Verified!
- 26k SWE-agent Trajectories, including the 5k SWE-agent-LM-32B was trained on.
- 250+ Environments, one Docker image per repo represented in SWE-smith.
And there's more coming!
💫 Contributions
We're actively working on several follow ups! Check out the Contributing Guide for more.
Contact Person: John Yang, Kilian Lieret (Email: johnby@stanford.edu)
🪪 License
MIT. Check LICENSE for more information.
✍️ Citation
@inproceedings{yang2025swesmith,
title={SWE-smith: Scaling Data for Software Engineering Agents},
author={John Yang and Kilian Lieret and Carlos E. Jimenez and Alexander Wettig and Kabir Khandpur and Yanzhe Zhang and Binyuan Hui and Ofir Press and Ludwig Schmidt and Diyi Yang},
booktitle = {Proceedings of the 39th Annual Conference on Neural Information Processing Systems (NeurIPS 2025 D&B Spotlight)},
year={2025},
eprint={2504.21798},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2504.21798},
note={arXiv:2504.21798, accepted at NeurIPS 2025 (Spotlight)}
}
📕 Our Other Projects
Metadata
Release files for swesmith 0.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| swesmith-0.0.9.tar.gz | 214.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swesmith-0.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 490.6 kB
Release files / swesmith-0.0.9.tar.gz
| Download URL | swesmith-0.0.9.tar.gz |
|---|---|
| Size | 214.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1726124ea43577853c6efb0a5a0db5fa3ce5c340e1bed479afa5bab85d8a69da
|
|
BLAKE2b-256 checksum How to use checksums |
0797e506b20fa59debc66e4660a86b0e98b45d32c87f23b994ad739e9c5d542a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / swesmith-0.0.9-py3-none-any.whl
| Download URL | swesmith-0.0.9-py3-none-any.whl |
|---|---|
| Size | 275.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cbb98a52fc573b38032cde1179b6ce5f5862ce7c31d6931cfd5b8ad4969ce900
|
|
BLAKE2b-256 checksum How to use checksums |
802d71b6ac5dadbe7199085de3815624775744d51b6c554efeeddfb12dc45ce1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|