delayed-command

📁 paulrberg/dot-agents 📅 3 days ago
1
总安装量
1
周安装量
#48120
全站排名
安装命令
npx skills add https://github.com/paulrberg/dot-agents --skill delayed-command

Agent 安装分布

amp 1
opencode 1
kimi-cli 1
codex 1
gemini-cli 1

Skill 文档

Delayed Command Execution

Wait for a specified duration, then execute a Bash command.

Arguments

  • duration: Time to wait before execution (e.g., 30s, 5m, 1h, 1h30m)
  • command: The Bash command to run after the delay

Duration Format

Format Example Meaning
Xs 30s 30 seconds
Xm 5m 5 minutes
Xh 1h 1 hour
XhYm 1h30m 1 hour 30 minutes
XhYmZs 1h5m30s 1 hour 5 min 30 s

Workflow

1. Parse Duration

Convert the duration argument to seconds:

  • Extract hours (h), minutes (m), and seconds (s) components
  • Calculate total seconds: hours * 3600 + minutes * 60 + seconds

Parsing logic:

duration="$1"
seconds=0

# Extract hours
if [[ $duration =~ ([0-9]+)h ]]; then
  seconds=$((seconds + ${BASH_REMATCH[1]} * 3600))
fi

# Extract minutes
if [[ $duration =~ ([0-9]+)m ]]; then
  seconds=$((seconds + ${BASH_REMATCH[1]} * 60))
fi

# Extract seconds
if [[ $duration =~ ([0-9]+)s ]]; then
  seconds=$((seconds + ${BASH_REMATCH[1]}))
fi

2. Execute with Delay

For durations up to 10 minutes (600 seconds):

Run synchronously using the Bash tool with appropriate timeout:

sleep <seconds> && <command>

Set the Bash tool’s timeout parameter to at least (seconds + 60) * 1000 milliseconds.

For durations over 10 minutes:

Run in background using run_in_background: true:

sleep <seconds> && <command>

Inform the user the command is running in background and provide the task ID for checking status.

3. Report Result

After execution completes:

  • Display command output
  • Report exit status
  • Note total elapsed time

Examples

Short Delay (Synchronous)

User: /delayed-command 5m npm test

  1. Parse: 5 minutes = 300 seconds
  2. Execute: sleep 300 && npm test (timeout: 360000ms)
  3. Report test results

Long Delay (Background)

User: /delayed-command 1h git commit -m "auto-commit"

  1. Parse: 1 hour = 3600 seconds
  2. Execute in background: sleep 3600 && git commit -m "auto-commit"
  3. Return task ID for status checking

Combined Duration

User: /delayed-command 1h30m ./deploy.sh

  1. Parse: 1h30m = 5400 seconds
  2. Execute in background (>600s): sleep 5400 && ./deploy.sh
  3. Inform user of background task

Error Handling

Error Response
Invalid duration format Show supported formats and examples
Missing command argument Prompt for the command to execute
Command not found Report error after delay completes
Duration exceeds 24h Warn user and suggest alternative (cron, at)