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
While running, the terminal shows case banners, steps, and PASS/FAIL. When finished, open out/<stamp>__<slug>/report.html (also report.md / report.json). Details and examples: Local run.
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 |
Terminal & out/ |
https://lpythu.github.io/argos/local/ |
| 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.5.1
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.5.1.tar.gz | 296.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| argospy-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 493.4 kB
Release files / argospy-0.5.1.tar.gz
| Download URL | argospy-0.5.1.tar.gz |
|---|---|
| Size | 296.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdbc35e722958c24dc9a340d237fcc9410049a4768de2473529817b34c048995
|
|
BLAKE2b-256 checksum How to use checksums |
1cb7021b243a64f4756195532f4bc6cf3b82dd29ce4f985eaafdea7b6e931f68
|
| 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.5.1-py3-none-any.whl
| Download URL | argospy-0.5.1-py3-none-any.whl |
|---|---|
| Size | 196.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8ae4ae34ea3b97e58e5032e7354ee174050fa56a6182b7b0b1241a51b7d5f54d
|
|
BLAKE2b-256 checksum How to use checksums |
730cec45b148c6f872d020073f74ab434363f6773926d540f824a87a3c9ff534
|
| 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}
|