argos
Agent-friendly once / soak test framework. Humans or coding agents run cases locally; optionally stream live status to a self-hosted dash instance.
| PyPI | argospy (CLI command: argos, import: argos) |
| Docs | https://lpythu.github.io/argos/ |
| Agent skill | https://lpythu.github.io/argos/skill.md |
| SDK | https://lpythu.github.io/argos/sdk.md |
| Git | https://github.com/lpythu/argos |
Agents: Install https://lpythu.github.io/argos/skill.md then drive the same CLI. Cases live in a pack repo (entry points), not in this framework repo.
Two ways to run
A — Local only (default)
No dash required.
flowchart LR
user["Human or agent"]
cli["argos CLI"]
out["out/ artifacts"]
user --> cli --> out
pip install argospy
# install your pack (entry points under argos.packs), then:
argos list
argos run <id>
argos run <id> --env office # e2e cases need --env
argos run <id> --soak --for 8h
Artifacts: ./out/<stamp>__<slug>/ (override with ARGOS_OUT).
B — Stream to a dash instance (optional)
Dash must already be deployed. Download dash.env from that instance’s CLI page (/cli): it contains ARGOS_DASH_URL + ARGOS_TOKEN.
flowchart LR
dashUI["Dash /cli page"]
envFile["dash.env"]
cli["argos run --dash"]
out["out/"]
dashUI -->|download| envFile
envFile --> cli
cli --> out
cli -->|ingest| dashUI
# after downloading dash.env from https://<your-dash>/cli
argos run <id> --dash ./dash.env
# or import into the environment
set -a && source ./dash.env && set +a
argos run <id> --dash
# one-shot URL (token still from env / secrets)
argos run <id> --dash https://dash.example.com
# upload a finished local run
argos push out/<stamp>__<slug> --dash ./dash.env
Put dash.env under secrets/ (gitignored) or ~/.argos/. Do not commit it. There is no default dash URL in the library.
Install
pip install argospy
argos packs # lists packs registered via entry points
Python ≥ 3.12. Do not use uv run argos.
Write a case
Minimal example (full API: sdk.md):
from argos.case import ONCE, Context, Spec
from argos.runner import CaseFn
def foo(ctx: Context) -> None:
ctx.step("check", "running")
ctx.check(True, "unreachable")
ctx.step("check", "ok")
def cases() -> list[CaseFn]:
return [CaseFn(Spec("foo", "short title", "live", ("e2e",), (ONCE,)), foo)]
New product pack: pack.py exporting pack() -> Pack, plus [project.entry-points."argos.packs"] in pyproject.toml. No __init__.py under case dirs.
Docs map
| Read | Where |
|---|---|
| This README | Human / agent overview |
| Agent contract | https://lpythu.github.io/argos/skill.md |
| Python API | https://lpythu.github.io/argos/sdk.md |
| Connect this dash | https://<dash>/cli and https://<dash>/skill.md |
Repo layout
This repository is the framework (argospy) plus dash source. Product cases belong in a separate pack repo. Dash is optional infrastructure you deploy; the library does not require it.
Metadata
Release files for argospy 0.4.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 | |
|---|---|---|---|
| argospy-0.4.0.tar.gz | 126.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| argospy-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 157.9 kB
Release files / argospy-0.4.0.tar.gz
| Download URL | argospy-0.4.0.tar.gz |
|---|---|
| Size | 126.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0b770a8be0774a2f82d798b72c57948ffe87e9f5c388a7910017dfc18233ed3
|
|
BLAKE2b-256 checksum How to use checksums |
a9e2e7d27b94f701883a6efc1f9ed8d62ffb05f7fc26ea9dd6758d27ae306387
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / argospy-0.4.0-py3-none-any.whl
| Download URL | argospy-0.4.0-py3-none-any.whl |
|---|---|
| Size | 31.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d33c18ab201543063ac97f8b44a79bba444383c39ee42bb747755505d600073a
|
|
BLAKE2b-256 checksum How to use checksums |
9e66b8b569d0a8897d30f9907fafbe4d3d2ec24915475c3bf36f32886eb8d7e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|