pumba
AGENTS.md3.2k starsChanged 6 months agoApache-2.0View on GitHub
How a program runs Pumba and reads what happened, without parsing logs. Logs stay on stderr in every mode. --json only changes the log format; it combines freely with --output ndjson. One run ID per process: every --interval tick shares it. Every event has these fields: Order: one run.start, then per tick and target target.applied (fault active) and target.result (terminal), then one run.end. Emitted once flags are parsed and the command is built.
We split this agents.md into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 37
Every event has these fields:
- Very specific: line 107
When a usage error stops Pumba before run.start, run.end has "action":"".
- Very specific: line 130
No targets exits 0 for chaos commands.
- Distinctive: line 153
No custom headers: put a token in the URL, and use HTTPS.
- Distinctive: line 188
Do not parse those human-facing lines.
- Distinctive: line 263
Wait until the fault is active, then probe:
- Distinctive: line 287
Check that a run left nothing behind, even after a crash:
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Pumba for agents and scripts
How a program runs Pumba and reads what happened, without parsing logs.
--output ndjson: result events on stdout, one JSON object per line (schemapumba.event/v1).--run-id: names the run; every event carries it, and it tags the sidecars and iptables rules the run creates.pumba status --check: did a run leave faults behind? Aclean/dirty/unknownverdict.--dry-run: preview netem/iptables apply and revert argv without running them.--max-duration: a time budget, so a forgotten--intervalrun stops by itself.--webhook: the same events POSTed to an HTTP endpoint, in any output mode.- The exit code is
0or1. The detail is in the last event,run.end. pumba schema: the CLI itself as JSON (schemapumba.cli/v1): commands, flags, types, defaults, error codes. See Discovering the CLI.
Logs stay on stderr in every mode. --json only changes the log format; it combines freely with --output ndjson.
Quick start
pumba -o ndjson --run-id ci-42 netem --duration 30s delay --time 100 web-1 2>pumba.log \
| tee events.ndjson
tail -n1 events.ndjson | jq -r .status # ok, failed, partial, cleanup_failed, ...Flags
| Flag | Default | Meaning |
--output, -o | text | text: chaos logs on stderr; netem/iptables dry-run plans and status tables/verdicts on stdout. ndjson: events on stdout; help and usage text move to stderr |
--run-id | generated | 1–48 characters from [A-Za-z0-9_.-]. Generated as 12 hex characters when empty. An invalid value is a usage error |
--max-duration | 0 (unlimited) | Time budget for active chaos and --interval scheduling. See Run budget |
--webhook | empty | Absolute http(s) URL that receives each event as a POST. Anything else is a usage error. See Webhook |
One run ID per process: every --interval tick shares it.
Event stream
Every event has these fields:
| Field | Meaning |
schema | pumba.event/v1 |
type | run.start, target.applied, target.result, run.end |
run_id | the --run-id value or the generated ID |
time | RFC 3339, UTC |
action | command path, e.g. kill, netem delay, iptables loss |
Order: one run.start, then per tick and target target.applied (fault active) and target.result (terminal), then one run.end.
{"schema":"pumba.event/v1","type":"run.start","run_id":"demo-1","time":"2026-10-30T06:44:42.077Z","action":"netem delay","pumba_version":"1.5.0","runtime":"docker","dry_run":false,"interval":"0s","selection":{"names":["web-1"],"labels":[],"random":false,"max_targets":2},"params":{"correlation":20,"distribution":"","duration":"3s","egress-port":"","ingress-port":"","interface":"eth0","jitter":10,"limit":0,"pull-image":false,"target":[],"tc-image":"ghcr.io/alexei-led/pumba-alpine-nettools:latest","time":100}}
{"schema":"pumba.event/v1","type":"target.applied","run_id":"demo-1","time":"2026-10-30T06:44:42.259Z","action":"netem delay","tick":1,"target":{"id":"b248a75b71ec…","name":"/web-1"}}
{"schema":"pumba.event/v1","type":"target.result","run_id":"demo-1","time":"2026-10-30T06:44:45.419Z","action":"netem delay","tick":1,"target":{"id":"b248a75b71ec…","name":"/web-1"},"started":"2026-10-30T06:44:42.136Z","ended":"2026-10-30T06:44:45.419Z","status":"ok","error":null,"cleanup":{"ok":true}}
{"schema":"pumba.event/v1","type":"run.end","run_id":"demo-1","time":"2026-10-30T06:44:45.419Z","action":"netem delay","status":"ok","counts":{"selected":1,"ok":1,"failed":0,"cleanup_failed":0,"planned":0,"skipped":0},"error":null,"events_dropped":0}run.start
Emitted once flags are parsed and the command is built.
pumba_version,runtime,dry_run,interval(Go duration string).selection:names,pattern(only for are2:selector),labels,random,max_targets(0: no cap).params: the action's typed flag values, including flags set on parent commands (netem,iptables). Global flags are not included.exec --argsis left out because it may carry secrets.
target.applied
The fault is active on the target, so probes can start now. For one-shot actions (kill, rm, restart, exec, stop without --restart) it means the action ran. Fields: tick, target{id,name}. Not emitted in dry-run.
target.result
Terminal record per target and tick. For faults that are reverted (netem, iptables, pause, stop --restart, stress), it comes only after the revert finished. Stress waits for both runtime result channels to close after workload cleanup; output alone is not completion. Duration/SIGTERM request shutdown of the owned workload, with a bounded cleanup wait. Cleanup errors/timeouts remain cleanup_failed even during cancellation.
| Field | Meaning |
tick | interval iteration, starting at 1 |
target | id and name as the runtime reports them (Docker names start with /) |
started, ended | when work on this target started and finished |
status | ok, failed, cleanup_failed, planned (dry-run), skipped (serial run stopped by an earlier failure) |
error | null or an error object |
cleanup | null when nothing was reverted (one-shot actions, dry-run); else {"ok":true} or {"ok":false,"error":"…"} |
plan | netem/iptables dry-run only: exact apply/revert argv and execution location, see Dry-run plans |
state | status only: what was found on the target, see Status |
run.end
Emitted when the process finishes, also for usage errors that never reached run.start.
status: see the table below.counts:selected(number oftarget.resultevents),ok,failed,cleanup_failed,planned,skipped.error:nullor an error object.events_dropped: events this sink lost: on stdout, the stdout count; on the webhook, the webhook count (see Delivery).coverage:statusonly, see Status.
status | When | Exit |
ok | every target ok or planned | 0 |
no_targets | nothing matched; error.code is no_targets | 0 |
failed | an error, and no target succeeded | 1 (0 with --skip-error) |
partial | an error, and some targets succeeded | 1 (0 with --skip-error) |
cleanup_failed | a revert failed; the fault may still be active | 1 (0 with --skip-error) |
refused | --max-targets exceeded; nothing was injected | 1 |
usage_error | bad flag, argument or --run-id | 1 |
aborted | --max-duration expired (timeout, exit 1) or SIGINT/SIGTERM (canceled, exit 0) | see left |
clean, dirty, unknown | status --check only: the verdict | 0 for clean, else 1 |
For chaos commands, the first matching row wins, top to bottom in this order: usage_error, refused, cleanup_failed, aborted (timeout), failed/partial, aborted (canceled), no_targets, ok. A cleanup failure outranks a timeout because a leftover fault matters more.
When a usage error stops Pumba before run.start, run.end has "action":"". Its run_id is the --run-id value (or a generated one), and "" when --run-id itself was invalid.
Errors
error is {"code","phase","message"}. Branch on code; message is for humans and may change.
code | phase | Meaning |
invalid_argument | usage | bad flags or arguments |
no_targets | select | no container matched |
max_targets_exceeded | select | selection is larger than --max-targets |
runtime_unavailable | runtime, select | cannot create the runtime client, or listing containers failed |
command_failed | inject | the chaos action failed |
command_failed | inspect | status could not read a target's netns |
cleanup_failed | cleanup | reverting the fault failed |
timeout | runtime | --max-duration expired |
canceled | runtime | SIGINT/SIGTERM |
rootless_unsupported | — | reserved; rootless Podman failures currently report command_failed |
Exit codes
For chaos commands in every output mode, 1 means the command failed (unless suppressed by --skip-error). The exit code is authoritative even when run.end was lost.
- No targets exits
0for chaos commands. - A cleanup failure (netem or iptables rules not removed) exits
1. --skip-errorhides chaos failures from the exit code, not from the events; refusals and usage errors still exit1.status --checkexits0only forclean, even with--skip-error. Dirty findings need not be command errors, and an empty selection isunknown(exit1).- In text mode an unknown command exits
3(urfave/cli). In ndjson mode it is a usage error and exits1.
Delivery
- Events are counted before delivery, so a slow or closed stdout or webhook never changes the outcome or the exit code.
- The stdout writer has a bounded queue (1024 events). When the reader falls behind, events are dropped instead of stalling chaos;
run.end.events_droppedcounts them. run.endis flushed for at most 2 seconds at exit. Its timeout warning is best-effort and may be lost at exit; a blocked warning write does not extend the flush bound. A missingrun.endmeans the output is incomplete (crash,kill -9, closed pipe): treat the outcome as unknown and use the exit code.- SIGPIPE is ignored in ndjson mode, so a closed stdout does not kill Pumba with faults still active.
Webhook
--webhook URL is a second, independent sink. It works in every --output mode without adding output to stdout.
- One POST per event,
Content-Type: application/json. The body is the event's ndjson line, trailing newline included. - Ordered: one sender, so events arrive in emit order.
- Lossy: its own bounded queue (1024 events). When the receiver falls behind, events are dropped instead of stalling chaos.
- A transport error, a timeout (5 seconds per request) or any non-2xx answer drops the event. No retries. Redirects are not followed and count as failures.
- The first drop or failure requests one best-effort warning to stderr. Enabling the webhook ignores SIGPIPE so a closed stderr cannot terminate chaos before cleanup. A blocked stderr never holds injection, cleanup, or bounded shutdown; the warning can be lost at exit. The URL, the error text and the bodies are never printed or logged.
run.endis flushed for at most 5 seconds at exit, alongside the stdout flush. Itsevents_droppedis the webhook's own count. With a stalled--slackhooktoo, exit can take about 10 seconds (Slack flush first, then events).- No custom headers: put a token in the URL, and use HTTPS.
Events include container names and IDs, the action and its parameters, and they leave the host. Send them only to a receiver you trust.
Dry-run plans
pumba --dry-run --run-id preview-1 -o ndjson iptables --duration 30s loss --probability 0.2 webA successful netem/iptables dry-run emits run.start, a target.result with
status: "planned" per selected target, then run.end. It emits no
target.applied, reports cleanup: null, and does not wait for --duration.
Selection, caps and interval scheduling are unchanged. Lifecycle/stress
results carry resolved targets and run.start.params, not argv plans.
The additive target.result.plan field in pumba.event/v1 is:
{"via":"sidecar","image":"ghcr.io/alexei-led/pumba-alpine-nettools:latest","apply":[["iptables","-I","INPUT","-i","eth0","-m","comment","--comment","pumba:preview-1","-m","statistic","--mode","random","--probability","0.20","-j","DROP"]],"revert":[["iptables","-D","INPUT","-i","eth0","-m","comment","--comment","pumba:preview-1","-m","statistic","--mode","random","--probability","0.20","-j","DROP"]]}via:sidecar(withimage) orexecin the target (imageomitted).apply,revert: ordered argv arrays, binary first. Netem uses["sh", "-ec", "<ownership-checking tc script>"]; iptables has one argv per rule, with matching apply/delete specs and run comments.- These are the same argv builders execution uses, not reconstructed display
strings. Tool probes such as
which sh, image setup, and sidecar lifecycle are excluded. - Planning performs no network-namespace inspection or mutating runtime calls. Target listing and optional container-name resolution still happen. A plan does not verify image/tool availability, permissions, interfaces or qdisc ownership. Rootless Podman refuses plans just as it refuses execution.
- With the default
--output text, plans instead print shell-quoted would run, apply and revert lines on stdout, visible at warning log level. Do not parse those human-facing lines; use NDJSON for automation.
Go API: container.Netem/container.IPTables (and composed container.Client)
add pure PlanNetemContainer(*NetemRequest) and
PlanIPTablesContainer(add, del *IPTablesRequest) methods returning
(*CommandPlan, error). Implementers must use the same argv builders for
planning and execution; the iptables pair must describe the same target and
sidecar, with the delete request mirroring the add request.
Run budget (--max-duration)
The budget starts before the first tick. When it expires, Pumba stops admitting new ticks and fault execs and requests cancellation of in-flight work. Already-admitted tc/iptables execs may continue under their separate two-minute timeout before cleanup. The run ends with run.end status aborted, code timeout, exit 1.
Limits:
- It works only while Pumba is alive: it does not protect against
kill -9. - It does not cap total wall time: admitted fault execs and cleanup can run past the budget.
- It does not undo
kill,rm, orstopwithout--restart.
Interactions
| Flag | Effect on events |
--interval | one run.start and run.end per process; target.* per target per tick |
--random, --limit | only selected targets produce events |
--max-targets | refusal: no target events, run.end refused |
--dry-run | target.result planned, no target.applied; returns without waiting for --duration |
--skip-error | chaos failures still recorded in events; exit 0 (not refusals, usage errors or a non-clean status --check verdict) |
| SIGINT/SIGTERM | in-flight targets finish cleanup and emit target.result; run.end aborted unless something failed |
--help and --version are not runs and emit no events. A top-level pumba --help still prints to stdout.
Status (pumba status [--check])
pumba status [--run-id ID] [--check] [--tc-image IMG] [--pull-image] [containers…] reports the Pumba faults left on running containers: iptables rules tagged pumba:<run-id>, qdiscs under Pumba's root handle 504d:, and sidecars labeled com.gaiaadm.pumba.*. Selection works as for chaos commands; no containers means all running. --max-targets applies. --random and --dry-run are ignored. The status --run-id is a filter for rules and sidecars; the global --run-id only names the status run.
Each inspected container gets one target.result with state:
{"rules":[{"run_id":"ci-42","chain":"INPUT","spec":"-A INPUT -i eth0 -m comment --comment \"pumba:ci-42\" -m statistic --mode random --probability 1.00000000000 -j DROP"}],
"qdiscs":[{"device":"eth0","kind":"netem","ownership":"pumba-owned","run_id":null}],
"sidecars":[{"id":"f965…","name":"/vigilant_mahavira","kind":"stress","state":"running","target_id":"72c5…","run_id":"ci-42"}]}qdiscs[].ownership:pumba-owned(Pumba's topology) orsuspicious(Pumba's handle, other topology). qdiscs have no comment field:run_idis alwaysnulland the run filter never hides them.sidecars[].run_idisnullfor an untagged sidecar. Status's owninspectsidecars are never reported.- A failed inspection makes the target
failedwitherror.phaseinspect; itsstatethen holds only sidecars.
run.end.coverage holds the verdict and what belongs to no inspected target:
| Field | Meaning |
verdict | clean, dirty or unknown; present with or without --check |
reasons | why dirty or unknown; [] when clean |
run_filter | the status --run-id, omitted when unset |
orphan_sidecars | sidecars whose target was not inspected (gone or stopped); only when the selection is empty: no names, no re2: pattern and no --label |
missing_targets | named containers that do not exist or are not running |
listing_gaps | containers the runtime could not read (id, error) |
| Verdict | When |
clean | every selected target was inspected, coverage has no gaps, nothing matched |
dirty | a tagged rule or labeled sidecar matched (or an orphan sidecar); without a run filter, also a pumba-owned qdisc |
unknown | a listing or an inspection failed, a target is missing, a listing gap, a suspicious qdisc, nothing selected, or with a run filter only qdiscs found |
dirty wins over unknown. clean is never vacuous: an empty selection is unknown.
With --check, the verdict is the run.end.status and the exit code: 0 only for clean, also with --skip-error. A real error stays in run.end.error. A failed listing gives unknown unless already discovered sidecars establish dirty; either way it includes the reason listing failed: .... A refused (--max-targets) or usage error keeps its own status. --check with --interval is a usage error. Without --check, status exits like any command (1 only when an inspection or the listing failed) and the verdict is only in coverage.
In text mode status prints a TARGET KIND DETAIL RUN table to stdout, plus a verdict: line with --check. In ndjson mode stdout carries only events.
Known limits: iptables rules from Pumba 1.4 and earlier have no comment; containerd stress with --stress-image "" leaves no container; containers sharing a netns report the same rules and qdiscs. Rootless Podman is refused, as for netem.
Recipes
Wait until the fault is active, then probe:
pumba -o ndjson pause --duration 30s web-1 2>/dev/null | while read -r ev; do
case $(jq -r .type <<<"$ev") in
target.applied) ./probe.sh & ;;
run.end) jq -r '"status=\(.status) code=\(.error.code // "-")"' <<<"$ev" ;;
esac
doneFail a CI step on anything but a clean run:
pumba -o ndjson netem --duration 20s loss --percent 10 web-1 2>pumba.log >events.ndjson
tail -n1 events.ndjson | jq -e '.type == "run.end" and .status == "ok"'Preview targets without touching anything:
pumba -o ndjson --dry-run kill 're2:^web-' | jq -r 'select(.type=="target.result") | .target.name'Check that a run left nothing behind, even after a crash:
pumba -o ndjson --run-id ci-42 iptables --duration 5m loss --probability 0.2 web-1 >/dev/null &
# ... the run is killed with -9 ...
pumba -o ndjson status --check --run-id ci-42 web-1 | tail -n1 | jq '{status, reasons: .coverage.reasons}'Bound a recurring run:
pumba -o ndjson --max-duration 10m --interval 1m kill --signal SIGTERM 're2:^worker-'See also examples/pumba_agent_output.sh.
Discovering the CLI (pumba schema)
pumba schema prints one JSON document (pumba.cli/v1) to stdout and exits 0. It needs no container runtime: no socket is opened, so it works on a machine without Docker. The output is the same in --output text and ndjson modes, and on success it emits no events. A failure exits 1 and, in ndjson mode, writes only run.end.
With --webhook, schema also emits no success events; the unused sender is closed before exit. The document is built from the running binary, so it always matches its version.
| Field | Meaning |
schema | pumba.cli/v1 |
pumba_version | same value as run.start.pumba_version |
event_schema | pumba.event/v1 |
error_codes | every error.code value (see Errors) |
run_statuses, target_statuses | every run.end.status and target.result.status value |
usage, args_usage | top-level help text |
global_flags | flags valid before the command name |
commands | command tree, in --help order |
Each command: name, path (as in event action, e.g. netem delay), usage, description, args_usage, flags, subcommands. Flags on a parent command (netem --duration) go before the subcommand name.
Each flag: name, aliases, type, default, env_vars, repeatable, usage.
type:string,bool,int,number,duration(Go duration string, e.g."30s"),string[].repeatable: the flag may be given more than once (string[]flags).- Lists are
[]when empty, nevernull. Hidden flags,--helpand thehelpcommand are left out. tlscacert,tlscertandtlskeydefaults followDOCKER_CERT_PATH, so they vary by machine.
pumba schema | jq -r '.. | objects | select(has("path")) | .path' # every command path
pumba schema | jq '.commands[] | select(.name=="netem") | .subcommands[]
| select(.name=="delay") | .flags[] | {name, type, default}' # flags of one command
pumba schema | jq -r '.global_flags[] | select(.env_vars != []) | "\(.name)\t\(.env_vars[0])"'
pumba schema | jq -e '.event_schema == "pumba.event/v1"' # check before parsing eventsEnum values and constraints (allowed signals, ranges) are not described yet; usage carries them as text.
Versioning
Within pumba.event/v1, fields and event types may be added; ignore what you do not know. Renaming, removing or re-meaning a field, or adding a status or code value, bumps the schema to v2.
pumba.cli/v1 follows the same rule for its own fields. Commands and flags it describes may be added in any release; read pumba schema from the binary you run.
Trending
More talk lately.about the whole repository
Who's talking about alexei-led/pumba
- Stack Overflow“Is it possible to simulate connection timeout using wiremock tools?”Stack Overflow · Feb 12, 2020 · 10 votes
- @vepo.dev“Que coisa linda isso aqui!! Perfeito pra quem estuda otimização de sistemas distribuídos!!! 😍 …”Bluesky · Oct 3, 2024 · 8 likes
- VictoriaMetrics/VictoriaMetrics“Introduce chaos testing”GitHub · Oct 22, 2025 · 4 reactions
- Stack Overflow“How to simulate network drops for each individual Docker container at will?”Stack Overflow · Apr 19, 2020 · 4 votes
- Homebrew/homebrew-core“pumba 1.4.0”GitHub · Oct 29, 2026
The biggest 5 of 54 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 54
Talked about on GitHub, Stack Overflow and Bluesky (54 times).
On GitHub · 50
- Oct 22, 2025Introduce chaos testing — VictoriaMetrics/VictoriaMetricssays it tested it4 reactions · 2 comments
- Oct 29, 2026pumba 1.4.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 29, 2026pumba 1.3.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 29, 2026pumba 1.3.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 26, 2026[WJ-485] Pumba — Rokurolize/wikijump0 reactions
45 more on GitHub
- Oct 1, 2026[task] ExecContainer fails when executing a command with arguments in a container (non-… — l8o90oybae/alexei-led__pumba.362dc38d0 reactions
- Oct 1, 2026[task] Stress command stops the target container instead of the stress sidecar and igno… — l8o90oybae/alexei-led__pumba.362dc38d0 reactions
- Sep 22, 2026Candidate entries for review — hexsecs/awesome-embedded-security0 reactions · 1 comment
- Aug 27, 2026M2: MCP server exposing chaos tools — mikelord007/Chaos_Notary0 reactions · 4 comments
- Aug 23, 2026pumba 1.2.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Jun 6, 2026E2E test + benchmark harness across container topologies (manual, not CI-gated) — FreeTAKTeam/LXMF-rssays it tested it0 reactions
- May 5, 2026pumba 1.1.7 — Homebrew/homebrew-core0 reactions · 1 comment
- May 1, 2026pumba 1.1.6 — Homebrew/homebrew-core0 reactions · 1 comment
- Apr 30, 2026pumba 1.1.4 — Homebrew/homebrew-core0 reactions · 1 comment
- Apr 29, 2026AUR Bump: pumba — aminvakil/nvchecker0 reactions · 1 comment
- Apr 28, 2026pumba 1.1.3 — Homebrew/homebrew-core0 reactions · 1 comment
- Apr 26, 2026pumba 1.1.2 — Homebrew/homebrew-core0 reactions · 1 comment
- Apr 26, 2026AUR Bump: pumba — aminvakil/nvchecker0 reactions
- Apr 24, 2026pumba 1.1.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Mar 14, 2026pumba 1.0.6 — Homebrew/homebrew-core0 reactions · 1 comment
- Mar 14, 2026AUR Bump — aminvakil/nvchecker0 reactions
- Mar 13, 2026pumba 1.0.5 — Homebrew/homebrew-core0 reactions · 1 comment
- Mar 2, 2026AUR Bump — aminvakil/nvchecker0 reactions
- Mar 1, 2026pumba 1.0.4 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 28, 2026AUR Bump — aminvakil/nvchecker0 reactions
- Feb 27, 2026pumba 1.0.3 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 27, 2026pumba 1.0.2 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 26, 2026AUR Bump — aminvakil/nvchecker0 reactions
- Feb 25, 2026pumba 1.0.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 25, 2026pumba 1.0.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 18, 2026pumba 0.12.3 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 17, 2026pumba 0.12.2 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 17, 2026pumba 0.12.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 16, 2026pumba 0.11.10 — Homebrew/homebrew-core0 reactions · 1 comment
- Feb 15, 2026AUR Bump — aminvakil/nvchecker0 reactions
- Mar 17, 2025pumba 0.11.6 — Homebrew/homebrew-core0 reactions · 1 comment
- Mar 17, 2025AUR Bump — aminvakil/nvchecker0 reactions
- Mar 16, 2025pumba 0.11.3 — Homebrew/homebrew-core0 reactions · 1 comment
- Mar 16, 2025AUR Bump — aminvakil/nvchecker0 reactions
- Mar 16, 2025pumba 0.11.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 24, 2024Integrate network chaos testing for proxy — neondatabase/neonsays it tested it0 reactions · 1 comment
- Aug 24, 2024Introduce Pumba for local chaos testing — marcus-sa/deepkit-ftgo-appsays it tested it0 reactions
- Sep 7, 2023AUR Bump — aminvakil/nvchecker0 reactions
- Jan 10, 2023AUR Bump — aminvakil/nvchecker0 reactions
- May 17, 2022fixed cgroup issue because cgroup tree has changed, which integrated … — alexei-led/stress-ng0 reactions · 1 comment
- Mar 3, 2022Axon hangs after period of slow DB responses — AxonIQ/AxonFramework0 reactions · 9 comments
- Aug 18, 2021pod-network-latency fail cause socket is not given to test container + security issue — litmuschaos/litmus0 reactions · 2 comments
- Jun 10, 2021add examples on how to use `pumba netem` for link impairments — srl-labs/containerlab0 reactions · 6 comments
- May 20, 2021Python infra: add ability to spawn containers — microsoft/CCF0 reactions · 4 comments
- Dec 17, 2020pumba: fix sha256 mismatch — Homebrew/homebrew-core0 reactions · 3 comments
On Stack Overflow · 3
- Feb 12, 2020Is it possible to simulate connection timeout using wiremock tools?10 votes
- Apr 19, 2020How to simulate network drops for each individual Docker container at will?4 votes
- Oct 28, 2019Chaos testing of Vertx Applicationsays it tested it0 votes
On Bluesky · 1
- Oct 3, 2024Que coisa linda isso aqui!! Perfeito pra quem estuda otimização de sistemas distribuídos!!! 😍 github.com/alexei-led/p... — @vepo.dev8 likes and reposts
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

