loopsmith
Hand a repeating job to an AI. A checker you wrote — not the AI — decides when it is done.
pipx install loopsmith-cli # or: pip install loopsmith-cli
loopsmith doctor
The distribution is
loopsmith-cli; the command isloopsmith. The shorter name was taken on PyPI. This package is a Rust binary with a thin Python launcher — there is nothing toimport. The binary for your platform is downloaded on first run, so there is no Rust toolchain involved.
What it is
You have a job you redo every week and are fussy about — a competitor roundup, a lead list, a landing page, a research brief. You describe it once. loopsmith runs it over and over on its own, and stops when a check you wrote says it is done, or a limit you set says enough.
The part that makes it worth running unattended: whether a goal is done is decided by compiled Rust, never by a model. The model does the work; a gate that cannot be argued with decides whether the work counts. That gate can also take "done" back — delete a required file and a satisfied goal flips straight back to unsatisfied.
Sixty seconds
loopsmith doctor # what this machine can and cannot do
loopsmith --web # build a loop in your browser
Not a browser person? loopsmith --guided asks the same questions in the
terminal. Either way, nothing runs and nothing is spent while you answer.
To go straight to a file instead:
loopsmith loop new --path ~/loops/my-loop --purpose "keep the roundup current"
loopsmith loop validate ~/loops/my-loop/loop.yaml # refuses, on purpose
loopsmith loop plan ~/loops/my-loop/loop.yaml # what it would do, and how fast
loopsmith run start ~/loops/my-loop/loop.yaml
That refusal is the point. A fresh loop will not run until you tick the steps saying you have done the job by hand at least once. Automating a process nobody has performed produces the wrong answer faster, and at a scale that is harder to undo.
Fifteen worked loops to start from
Research, refactoring, traffic, trend tracking, landing pages, lead lists,
marketing, blogging, cold outreach, agent payments, a small game, idea
discovery, account watching, a container-isolated refactor, and one that
proposes improvements to itself. All fifteen are compiled into the binary and
load with one click in --web, or copy one from
config/examples/.
Bring your own model
Every provider is a command template, so anything you can run from a shell can
serve a loop: Claude Code, Ollama, a Grok CLI, an OpenAI-compatible endpoint
driven by curl, an MCP server over stdio. Adding one is a config edit, never
a rebuild. Keys are named, never read — requires_env says a key must be
present, and the value goes from your environment to the command without
passing through loopsmith or its ledger.
Cheap models carry the mechanical work; strong models carry judgment. And a judge is refused outright if it would run on the same provider as the work it is grading, because a model marking its own homework is not a check.
Keeping it alive
loopsmith run watch loop.yaml # stay resident, run on every trigger
loopsmith run schedule loop.yaml --install # hand it to launchd, cron, or Task Scheduler
loopsmith run status loop.yaml <run-id> # what the gate has ruled so far
loopsmith run ledger loop.yaml <run-id> # everything that happened, including why it stopped
A run survives a crash: state is a real store on disk, and loopsmith run resume picks up from the last checkpoint.
Where the rest of it is
- README-FOR-DUMMIES.md — the same thing with no jargon, if this page assumed too much
- README.md — the full version
- HOW-TO-USE.md — every config section, one at a time, with what goes wrong if you skip it
- LOOP-TEMPLATE.md — a blank loop with a note on every field
- Concepts — every word the config and the error messages use, defined once
- Architecture · Commands · Migration 0.3 → 1.0
- Code wiki — a page per subsystem, generated from the code
Runs on Linux, macOS, and Windows. MIT licensed.
Metadata
Release files for loopsmith-cli 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| loopsmith_cli-1.0.0.tar.gz | 8.0 kB | With provenance | Details for loopsmith_cli-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| loopsmith_cli-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for loopsmith_cli-1.0.0-py3-none-any.whl |
Total release size: 16.2 kB
Release files / loopsmith_cli-1.0.0.tar.gz
| Download URL | loopsmith_cli-1.0.0.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f16918d81ed2047bd8c5b3a554d3482444f5621cb3ed04ef9d3433ea8bc06de
|
|
BLAKE2b-256 checksum How to use checksums |
28fc5040906003701168a6d5535a1ba2441b237c18b78ef9bce7ef9fbaaac690
|
| 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 Sep 29, 2026.
Transparency logRelease files / loopsmith_cli-1.0.0-py3-none-any.whl
| Download URL | loopsmith_cli-1.0.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6d962f46f5adbe082c3b9af23361ed0bd11b6b7ae78dc715ae3699b9170eb63c
|
|
BLAKE2b-256 checksum How to use checksums |
527167f0f32432fc875addb682be9e3944953138bd9b1a05c004bae57ee9d357
|
| 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 Sep 29, 2026.
Transparency logSecurity for loopsmith-cli 1.0.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for loopsmith_cli-1.0.0.tar.gz
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 Sep 29, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.