Soothe
Goal-driven multi-agent orchestration framework (in-process host core).
Extends soothe-nano with StrangeLoop planning, durability, and Autopilot (daemon-dispatched). For a lightweight one-shot coding CLI on nano alone, see fj-ai.
Installation
Full runtime (daemon + CLI):
pip install soothe soothe-daemon soothe-cli
Library only (this package):
pip install soothe
What's in this package
| Piece | Role |
|---|---|
SootheRunner |
Protocol orchestration + StrangeLoop stream (astream) |
create_soothe_agent |
Host CoreAgent factory (planner/policy/memory wired) |
SootheConfig |
Nano base + host overlay (nano.yml / soothe.yml) |
| StrangeLoop / Autopilot / CE / cron | Host orchestration (Autopilot needs the daemon) |
Quick example (StrangeLoop, non-autopilot)
In-process, fj-style one-shot — no daemon:
import asyncio
from soothe.config import SootheConfig
from soothe.runner import SootheRunner
async def main() -> None:
config = SootheConfig.from_yaml_file("~/.soothe/config/nano.yml")
runner = SootheRunner(config)
try:
async for _ns, mode, data in runner.astream("Summarize this repo"):
if mode == "messages":
print(data) # (message, metadata)
finally:
await runner.cleanup()
asyncio.run(main())
Runnable script (loads ~/.soothe/config, SQLite defaults, prints progress):
uv run python examples/01_strange_loop_example.py
Pass autopilot_job=... only when embedding a daemon-dispatched worker goal.
Interactive / library use should omit it so StrangeLoop runs the user query.
Related packages
| Package | Purpose |
|---|---|
soothe-daemon |
Long-running server (HTTP/WS, channels, Autopilot dispatch) |
soothe-cli |
Human CLI + Textual TUI |
soothe-sdk |
Shared wire contracts and types |
soothe-nano |
SootheNanoAgent (tools, skills, MCP) |
Testing
uv run pytest packages/soothe/tests/unit/ -v
Metadata
Release files for soothe 1.0.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| soothe-1.0.16.tar.gz | 618.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| soothe-1.0.16-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.4 MB
Release files / soothe-1.0.16.tar.gz
| Download URL | soothe-1.0.16.tar.gz |
|---|---|
| Size | 618.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2836746edc3e2153d9ef7cd1b120e2c9955471c1c681afba4360c73ab1f3326f
|
|
BLAKE2b-256 checksum How to use checksums |
27299f3b5ea3f2289425bb00d6c19a168e57786147d81e432a485d8457145f0f
|
| 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 26, 2026.
Transparency logRelease files / soothe-1.0.16-py3-none-any.whl
| Download URL | soothe-1.0.16-py3-none-any.whl |
|---|---|
| Size | 790.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
02473f16f5893dbb8072aef37e581cdcd76e2bb565eba891ade9cdaa1940c770
|
|
BLAKE2b-256 checksum How to use checksums |
390013955766e581a75fccab4489d2cef0d3cd4a5238358ff3c3bdac2b104a93
|
| 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 26, 2026.
Transparency log