Skip to main content

Evaluate whether LM-based SWE-agents can reverse-engineer black-box software systems

Project description

ProgramBench logo
ProgramBench

Can Language Models Rebuild Programs From Scratch?

Given only a compiled binary and its documentation, AI agents must architect and implement a complete codebase that reproduces the original program's behavior.

Links

Quickstart

We recommend uv for managing Python environments.

# Run without installing
uvx programbench --help

# Or install into a project
uv pip install programbench

# Or with pip
pip install programbench

For development:

git clone https://github.com/facebookresearch/programbench.git
cd programbench
uv sync  # installs editable + dev dependencies

[!NOTE] For more details, please refer to the Usage Guide.

To run our baseline:

uvx --from mini-swe-agent mini-extra programbench --help
# or
pip install mini-swe-agent && mini-extra programbench --help

See the mini-swe-agent baseline docs for details.

Citation

If our work was useful for you, please cite it:

@misc{yang2026programbenchlanguagemodelsrebuild,
    title={ProgramBench: Can Language Models Rebuild Programs From Scratch?},
    author={John Yang and Kilian Lieret and Jeffrey Ma and Parth Thakkar and Dmitrii Pedchenko and Sten Sootla and Emily McMilin and Pengcheng Yin and Rui Hou and Gabriel Synnaeve and Diyi Yang and Ofir Press},
    year={2026},
    eprint={2605.03546},
    archivePrefix={arXiv},
    primaryClass={cs.SE},
    url={https://arxiv.org/abs/2605.03546},
}

License

ProgramBench is licensed under the terms of the license found in LICENSE.

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

programbench-1.2.3.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

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

programbench-1.2.3-py3-none-any.whl (3.4 MB view details)

Uploaded Python 3

File details

Details for the file programbench-1.2.3.tar.gz.

File metadata

  • Download URL: programbench-1.2.3.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for programbench-1.2.3.tar.gz
Algorithm Hash digest
SHA256 adfd70c9bb2f840fb8e917bbf6694eaa0c9056b7ded9c4705289533c92a4c44a
MD5 ab3db25c11033a3e7fad25ceca5c87ff
BLAKE2b-256 81bd6b9c812af45f35b1389110dcd9a10275281d9e31783a5b8e092e5e157558

See more details on using hashes here.

File details

Details for the file programbench-1.2.3-py3-none-any.whl.

File metadata

  • Download URL: programbench-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for programbench-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 214b1e16a5f62b3b0fb45d0b4beb6f5eb5958705ca9200b135c3fa0fc20d8ecd
MD5 6a0a2dd6c75e3ab83a9e1ae4999ae535
BLAKE2b-256 b56f43682764ca319706a599de89a0675cbe499a4fb351dc9a7b143a7a447803

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