Skip to main content

The official SWE-smith package - A toolkit for generating software engineering training data at scale.

Project description

Kawhi the SWE-smith


NeurIPS 2025 Datasets & Benchmarks Track - Spotlight 🔦


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...

  1. Creating an environment
  2. Synthesizing task instances
  3. Keep tasks that break 1+ unit tests
  4. 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

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

SWE-bench    SWE-agent    Mini-SWE-Agent    SWE-ReX    sb-cli

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swesmith-0.0.8.tar.gz (148.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swesmith-0.0.8-py3-none-any.whl (197.0 kB view details)

Uploaded Python 3

File details

Details for the file swesmith-0.0.8.tar.gz.

File metadata

  • Download URL: swesmith-0.0.8.tar.gz
  • Upload date:
  • Size: 148.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for swesmith-0.0.8.tar.gz
Algorithm Hash digest
SHA256 19fc48daf64471dfa44bc934b7d1c00f10c8fb50d749ed706f2f9940c8dfcf76
MD5 beeac1a71a16b87bf3b7f390ece8022f
BLAKE2b-256 4884d84a096eb9eff99508ee41a9453d8157dd4820ded36baf81449c4f9b444d

See more details on using hashes here.

File details

Details for the file swesmith-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: swesmith-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 197.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for swesmith-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6a04a06597079799c5b8a740c2e1710d05416ac43d1aed788c6773394954b8bc
MD5 82f028c0e170ad593852512d36483565
BLAKE2b-256 49415d1739cd5c77fc5fbb408c3cc733ba6136863701cf3059c8bea3686f4978

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page