Skip to main content

ProgramSmith forge

Python License PyPI

ProgramSmith

Convert GitHub repos into Harbor tasks automatically.

Overview

Automates task creation from real open-source repos. Input any GitHub repo, and it produces a long-horizon ProgramBench-style reverse engineering task.

Every task is difficulty-calibrated and audited before export. If reward-hacking, task environment problems, or verifier design issues are found, the pipeline continues iterating through a loop until all QA and difficulty calibration is met. Task execution and grading are containerized, with required dependencies installed when each task image is built.

Quick Start

# Install
uv pip install programsmith

# Generate a task from a repo
programsmith create --repo d5/tengo

# Or farm multiple tasks at once
programsmith farm repos.txt

Installation

uv pip install programsmith

Ensure Docker is running and at least one model credential is set:

export CLAUDE_CODE_OAUTH_TOKEN=<token>   # (run `claude setup-token` in your CLI)
# or
export ANTHROPIC_API_KEY=<api-key>

Trials can run on any provider:

export OPENAI_API_KEY=<api-key>          # codex CLI + any openai/* model
export GEMINI_API_KEY=<api-key>          # gemini CLI + any gemini/* model
export ZAI_API_KEY=<api-key>             # GLM models via the mini-SWE-agent harness

Usage

Alias: psmith <cmd> is automatically installed

Commands:

  • programsmith create — Generate a task from a repo
  • programsmith farm — Farm a list of repos into multiple tasks
  • programsmith serve — Start the browser dashboard in the background
  • programsmith stop — Stop the background dashboard
  • programsmith doctor — Preflight checks (Docker, credentials, disk)
  • programsmith status — Pipeline status

Generate a Task

programsmith create --repo <owner/repo>

Runs the full pipeline (see below). Accepted tasks are exported to out/tasks/, tasks that fail calibration but are sound are exported to out/easy/.

Re-running the same command resumes the run from wherever it parked. Ctrl-C stops active model trials, keeps completed trials, and leaves unfinished work ready to resume.

Options
  • --sha SHA — Pin a commit (default: resolve HEAD)
  • --slug NAME — Run key (default: repo name)
  • --smoke [HARNESS:]PROVIDER/MODEL — Initial smoke sweep agent (default: anthropic/claude-haiku-4-5 on the credential-aware harness)
  • --frontier [HARNESS:]PROVIDER/MODEL — Difficulty calibration agent (default: anthropic/claude-opus-4-8; e.g. codex:openai/gpt-5.5, gemini-cli:gemini/gemini-3.1-pro-preview, mini-swe:zai/glm-5.2)
  • --config FILE.json / --preset NAME — Full RunConfig (agents + per-model bands)
  • --brief TEXT — Steer the task generation scope (eg "port the FFT subsystem...")
  • --review — Pause at the two human gates (scope pick, final QA) instead of auto
  • --yes — Skip the cost preview confirmation
  • --runs-dir PATH — Choose the directory for runs (default: .programsmith/runs)
  • --allow-copyleft — Allow copyleft-licensed sources

Farm Multiple Repositories

programsmith farm repos.txt

Streams through a repo list (one owner/name[@sha] per line) and drives every run to completion in the foreground. Re-running the command picks up existing runs where they stopped. A curated starter list of known-good repos is included (pb10-repos.txt).

Options
  • All flags from create: --smoke, --frontier, --config, --preset, --review, --yes, --runs-dir, shared for all runs
  • --no-drive — Only create + ingest the runs (drive them later with serve)
  • --no-prune — Skip the docker image prune hygiene between completed runs

Dashboard

programsmith serve
# The dashboard runs in the background and survives Ctrl-C / closing this shell.
programsmith stop

Serves the local dashboard at http://localhost:8765: live pipeline DAG for each run, agent output, sweep results, file explorer, and optional review gates. Evaluation sweeps remain parked unless serve --spend is used. programsmith serve returns after the dashboard is healthy; programsmith stop is the explicit shutdown command.

Task Requirements

What repos work well

Best sources: small-to-medium CLI tools with deterministic stdin/stdout behavior (formatters, converters, parsers, interpreters, compression tools, query tools).

A good source repo:

  • Builds cleanly in a container (Go, Rust, C, C++, etc)
  • Has a CLI surface with deterministic, byte-reproducible output
  • Is permissively licensed (verified in pipeline)
  • Is not already saturated by frontier models

The pipeline also auto-rejects repos already used by public ProgramBench-style datasets.

Pipeline

ProgramSmith pipeline

Pipeline details

ProgramSmith runs a fixed DAG of deterministic gates. LLM work is quarantined to synthesis cells whose JSON output is schema-validated before passing any gate. The orchestrator routes only on gate verdicts.

  1. Ingest + Lock — clone, pin SHA, check license and overlap
  2. Task Matrix — pick the task scope
  3. Oracle + Goldens — build the reference oracle and generate public + held-out golden I/O cases (including adversarial cases)
  4. Create — make the task: repo, instruction, verifier, Dockerfile
  5. Sanity Check — check oracle scores 1, nop (empty solution) scores 0
  6. Static Checks — anti-cheat check suite (closed internet, asset encryption, no reviewer-visible goldens, reward format, etc)
  7. Smoke Sweep — N smoke-model trials; 100% pass ⇒ saturated ⇒ ease or drop
  8. Calibrate — band check; out-of-band tasks are hardened/eased via patches
  9. Audit Probe — adversarial agent looks for reward hacks, exploits are fixed
  10. Frontier Sweep — N frontier-model trials; target pass@1 in [1/3, 2/3] or whatever is specified
  11. QA Gate — good-failure analysis on 0-pass tasks, accepted tasks are exported

License

Apache License 2.0

Release files for programsmith 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for programsmith 0.1.0
File Size Uploaded
programsmith-0.1.0.tar.gz 2.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for programsmith 0.1.0
File Interpreter ABI Platform
programsmith-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.0 MB

Release files / programsmith-0.1.0.tar.gz

Download URL programsmith-0.1.0.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
5904603326d489e66577d49819bce040383092a10bceff0a920f57d31a3cbc2c
BLAKE2b-256 checksum
How to use checksums
0cc4837c06eb64c5a63cf0ca1ec5ad63644cf7238c37718cb5202b59282c680e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / programsmith-0.1.0-py3-none-any.whl

Download URL programsmith-0.1.0-py3-none-any.whl
Size 757.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e42b16abd6a9611da52f01a0eb8495b9194483f25b3a88174419ee79cef13d3
BLAKE2b-256 checksum
How to use checksums
f33140ae84e4550b9195a1a3e9527670f57b47df0ceef7afe35c7f876215489f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page