The official SWE-smith package - A toolkit for generating software engineering training data at scale.
Project description
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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swesmith-0.0.9.tar.gz.
File metadata
- Download URL: swesmith-0.0.9.tar.gz
- Upload date:
- Size: 214.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1726124ea43577853c6efb0a5a0db5fa3ce5c340e1bed479afa5bab85d8a69da
|
|
| MD5 |
7755b690664cdf2ccb69e32c57450b80
|
|
| BLAKE2b-256 |
0797e506b20fa59debc66e4660a86b0e98b45d32c87f23b994ad739e9c5d542a
|
File details
Details for the file swesmith-0.0.9-py3-none-any.whl.
File metadata
- Download URL: swesmith-0.0.9-py3-none-any.whl
- Upload date:
- Size: 275.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbb98a52fc573b38032cde1179b6ce5f5862ce7c31d6931cfd5b8ad4969ce900
|
|
| MD5 |
f406de20f0720b91cb99ebfbed9d2403
|
|
| BLAKE2b-256 |
802d71b6ac5dadbe7199085de3815624775744d51b6c554efeeddfb12dc45ce1
|