Skip to content
Back to skills

Relay

BSecurity

Use claude-relay to run a long or rate-limit-prone task autonomously across subscription accounts. Invoke this skill whenever the user says "use relay", "run this with relay", "do this overnight", "run this autonomously", "use relay for X", or has a multi-hour / multi-step task they want to hand off completely. Also use proactively when a task looks like it will take many turns and the user hasn't thought about rate limits yet. Guides goal writing, picks the right flags, and starts the run.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 14, 2026
ai-agentsgoshellbashnodegitapidatabase

Works with

  • api

Security analysis

B75/100
  • criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study

Pro shows the line behind each finding and how to fix it

Scanned October 14, 2026

npx -y skills add oleg-koval/agent-skills --skill relay --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Relay?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Relay
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/oleg-koval-relay/badge)](https://www.skillsdirectory.com/skills/oleg-koval-relay)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: relay
description: >
  Use claude-relay to run a long or rate-limit-prone task autonomously across subscription accounts.
  Invoke this skill whenever the user says "use relay", "run this with relay", "do this overnight",
  "run this autonomously", "use relay for X", or has a multi-hour / multi-step task they want to
  hand off completely. Also use proactively when a task looks like it will take many turns and the
  user hasn't thought about rate limits yet. Guides goal writing, picks the right flags, and starts
  the run.
license: MIT
allowed-tools: Bash, Read, Write
metadata:
  author: Oleg Koval
  tags:
    - relay
    - autonomous
    - rate-limits
    - claude-relay
---
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->

# relay

Runs a task **unattended** using `claude-relay`: drives `claude -p` in a headless loop, writes a
handoff summary when one account's limit approaches, and switches to the next account automatically.
You watch logs; relay handles the rest.

Binary: `claude-relay` (alias `relay` if added to shell). Config: `~/.claude-relay/relay.config.json`.

---

## Step 1: Decide: relay or inline?

**Use relay when:**
- Task will take many turns or hours (big refactor, migration, research + implementation)
- The user wants to hand it off and walk away
- Rate limits are a real concern (long-running or token-heavy)

**Stay inline when:**
- Task is quick (< ~10 turns)
- User wants to review each step
- Task needs interactive input that relay can't provide

---

## Step 2: Write the goal

A relay goal is a self-contained spec a fresh Claude agent can execute cold. Write it to
`/tmp/relay-goal-<short-name>.md`. It must include:

- **What to do**: concrete deliverables, not vague intent
- **How to verify**: the exact command proving success (`npm test`, `curl /api/health`, etc.)
- **Scope**: explicit list of what NOT to do (no commits, no PRs, no migrations, unless stated)
- **Key files**: paths the agent should read first if the context isn't obvious

**Template:**
```markdown
## Goal
<1-3 sentences: the deliverable>

## Success criteria
Run `<command>` and confirm it exits 0 / returns the expected result.

## Scope
- DO: <explicit list>
- DO NOT: open PRs / push commits / run migrations / touch unrelated files

## Key files
- <path>: <why it matters>
```

Good goals are specific. "Add input validation to all POST routes in `app/api/`" beats "improve the API".

---

## Step 3: Pick flags

| Situation | Flag |
|-----------|------|
| Task needs uncommitted changes, local `.env`, or a local database | `--in-place` |
| Everything is committed; task is self-contained | *(default, isolated git worktree)* |

When in doubt: if the repo has a `.env` or `node_modules` the task depends on, use `--in-place`.

---

## Step 4: Run

```bash
claude-relay run /tmp/relay-goal-<name>.md <absolute-path-to-repo> [--in-place]
```

Relay logs stream to stderr. The run ends when the agent outputs `RELAY_TASK_COMPLETE` on its own
line, or hits a hard cap (400 turns / 48h wall clock).

---

## Step 5: Tell the user

After starting, report:
- The exact command you ran
- What to watch for: `RELAY_TASK_COMPLETE` in logs, or `claude-relay status --config ~/.claude-relay/relay.config.json`
- The flag you picked and why (especially if you chose `--in-place`)

---

## Health check

If anything seems misconfigured:
```bash
claude-relay doctor --config ~/.claude-relay/relay.config.json
```

Should show ✓ for both account slots. If a slot shows ✗, tell the user to run:
```bash
claude-relay login <email>  # must have claude.ai open in browser as that account first
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.