retry-utils

Execute commands with intelligent retry logic including exponential backoff, jitter, and configurable retry conditions.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "retry-utils" with this command: npx skills add winsorllc/upgraded-carnival/winsorllc-upgraded-carnival-retry-utils

Retry Utils Skill

Execute commands with intelligent retry logic including exponential backoff, jitter, and configurable retry conditions.

When to Use

✅ USE this skill when:

  • "Retry this command until it succeeds"

  • "Run with exponential backoff"

  • "Keep trying until timeout"

  • "Retry only on specific errors"

  • "Run with retry and backoff"

When NOT to Use

❌ DON'T use this skill when:

  • Simple one-shot commands ΓåÆ run directly

  • Need to persist command ΓåÆ use systemd/PM2

  • Real-time processing ΓåÆ use message queue

Commands

Basic Retry

{baseDir}/retry.sh --command "curl http://api.example.com/data" {baseDir}/retry.sh --command "npm install" --max-retries 5

Exponential Backoff

{baseDir}/retry.sh --command "npm install" --backoff exponential {baseDir}/retry.sh --command "npm install" --backoff exponential --base-delay 2 --max-delay 60

Linear Backoff

{baseDir}/retry.sh --command "npm install" --backoff linear {baseDir}/retry.sh --command "npm install" --backoff linear --base-delay 5

Custom Backoff

{baseDir}/retry.sh --command "npm install" --delays "1,2,5,10,30" {baseDir}/retry.sh --command "npm install" --delays "1,1,1,5,5,10"

Jitter

{baseDir}/retry.sh --command "npm install" --jitter full {baseDir}/retry.sh --command "npm install" --jitter equal --jitter-percent 20 {baseDir}/retry.sh --command "npm install" --jitter decorrelated

Error Matching

{baseDir}/retry.sh --command "curl api.example.com" --error-pattern "Connection refused" {baseDir}/retry.sh --command "npm install" --error-pattern "ETIMEDOUT|ENOTFOUND" {baseDir}/retry.sh --command "curl api.example.com" --exit-codes "1,7,28"

Until/While Conditions

Run until output matches pattern

{baseDir}/retry.sh --command "curl -s http://api/health" --until-pattern "ok"

Run until a timeout

{baseDir}/retry.sh --command "curl http://api/data" --timeout 300

Stop when pattern found (inverse of until)

{baseDir}/retry.sh --command "tail -f /var/log/app.log" --stop-on "error" --max-retries 100

Options

Option Description Default

--command CMD

Command to run Required

--max-retries N

Maximum retry attempts 3

--backoff TYPE

Backoff type: none, linear, exponential none

--base-delay SECS

Initial delay between retries 1

--max-delay SECS

Maximum delay cap 60

--jitter TYPE

Jitter type: none, full, equal, decorrelated none

--jitter-percent N

Jitter percentage (0-100) 20

--delays "N,N,..."

Custom delay sequence None

--error-pattern REGEX

Only retry if error matches Match all

--exit-codes "N,..."

Exit codes to retry on All non-zero

--until-pattern REGEX

Continue until output matches None

--stop-on REGEX

Stop when output matches None

--timeout SECS

Maximum total time None

--no-exit-on-failure

Don't exit on final failure Exit 1

--quiet

Suppress output on retries Show output

--verbose

Show retry attempts Silent

Backoff Types

Type Description Formula

none

No delay between retries N/A

linear

Same delay each time delay = base_delay

exponential

Doubles each retry delay = base_delay * 2^attempt

Jitter Types

Type Description

none

No randomization

full

Random delay from 0 to calculated

equal

Random delay from delay/2 to delay

decorrelated

AWS-style decorrelated jitter

Examples

Retry curl request with exponential backoff:

{baseDir}/retry.sh --command "curl https://api.example.com/data"
--backoff exponential
--base-delay 2
--max-delay 60
--max-retries 10

Retry npm install on network errors only:

{baseDir}/retry.sh --command "npm install"
--error-pattern "ETIMEDOUT|ENOTFOUND|network"
--backoff exponential
--max-retries 5

Poll for server readiness:

{baseDir}/retry.sh --command "curl -s http://localhost:3000/health"
--until-pattern "healthy|ok"
--max-retries 30
--backoff linear

Run with custom delays:

{baseDir}/retry.sh --command "npm install"
--delays "1,2,5,10,30,60"

Output

On success, outputs the command result and exit 0.

On failure after all retries:

❌ Command failed after 5 attempts: npm install Last exit code: 1 Last stderr: connection refused

Exit codes:

  • 0: Command succeeded

  • 1: All retries exhausted

Notes

  • Captures both stdout and stderr

  • Preserves command exit code on success

  • Environment variables passed through

  • Can use shell commands with pipes

  • Timeout includes all retry attempts

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

vector-memory

No summary provided by upstream source.

Repository SourceNeeds Review
General

model-router

No summary provided by upstream source.

Repository SourceNeeds Review
General

rss-reader

No summary provided by upstream source.

Repository SourceNeeds Review
General

video-frames

No summary provided by upstream source.

Repository SourceNeeds Review