Skip to content
Back to skills

Restart

ASecurity

Restart the detached clawback proxy and reconnect its monitor. Stops the proxy previously started with run_monitor.sh --detach (if any), then starts a fresh one in the background; the run log is recreated in place so a tail -F follower (run_monitor.sh --attach, or an agent's Monitor tool) re-attaches automatically. Honors the same --log-file/--pid-file options and `--` passthrough as run_monitor.sh. Use after a config or code change to cycle the proxy without disrupting the monitor. Pass --wa...

  • 5 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added August 31, 2026
ai-agentsbashnodegit

Works with

  • claude code

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add zapgun-ai/clawback --skill restart --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Restart?

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

Security grade badge for Restart
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zapgun-ai-restart/badge)](https://www.skillsdirectory.com/skills/zapgun-ai-restart)

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: restart
description: Restart the detached clawback proxy and reconnect its monitor. Stops the proxy previously started with run_monitor.sh --detach (if any), then starts a fresh one in the background; the run log is recreated in place so a tail -F follower (run_monitor.sh --attach, or an agent's Monitor tool) re-attaches automatically. Honors the same --log-file/--pid-file options and `--` passthrough as run_monitor.sh. Use after a config or code change to cycle the proxy without disrupting the monitor. Pass --watch to keep restarting automatically whenever a source file under src/ or bin/ changes.
---

# clawback restart

Run `.skills/restart/scripts/restart.sh` from the project root. It is exactly
`run_monitor.sh --stop` followed by `run_monitor.sh --detach`: it stops the
currently detached proxy (graceful SIGTERM, then SIGKILL after ~5s) and
starts a fresh one in the background, printing the new PID and log path.

```bash
.skills/restart/scripts/restart.sh                              # restart with current config
.skills/restart/scripts/restart.sh -- --port 8090 --log-level debug
.skills/restart/scripts/restart.sh --log-file data/other.log    # target a non-default log/pidfile
```

## Watch mode (`--watch`)

`.skills/restart/scripts/restart.sh --watch` restarts once now, then keeps restarting
automatically whenever a source file under `src/` or `bin/` changes — handy
when another `clawback claude` session is editing the code and you want the
proxy to pick it up hands-free.

```bash
.skills/restart/scripts/restart.sh --watch                      # auto-restart on src/ + bin/ edits
.skills/restart/scripts/restart.sh --watch -- --port 8090       # passthrough is forwarded to every restart
```

It runs in the foreground and prints each restart as it happens. **Ctrl-C
stops watching but leaves the proxy running** (restarts are spawned in their
own session, so the signal can't reach them) — same survivability as a plain
`--detach`.

Mechanics, in case you need to reason about it:

- Only `src/` and `bin/` are watched, recursively. The proxy's own writes
  live under `data/`, which is deliberately **not** watched, so there is no
  restart loop.
- Watching is limited to `.js`/`.mjs`/`.cjs` files; editor swap/backup files
  (`.swp`, `~`, vim's `4913` probe) and `node_modules`/`.git` are ignored, so
  a single `:w` triggers exactly one restart.
- A burst of edits is debounced (300 ms) into one restart, and restarts are
  serialized: a change arriving mid-restart queues exactly one more once the
  current one finishes, so two restarts never race on the pidfile.
- Implemented by `.skills/restart/scripts/watch.mjs` (zero deps, built-in recursive
  `fs.watch`). It is a general debounced run-on-change runner — `restart.sh`
  just points it at `src/`+`bin/` with the restart command.

## Why the monitor survives a restart

`--detach` truncates and reuses the same log file (`data/clawback.run.log`
by default). A follower started with `tail -n +1 -F` re-opens the recreated
file on its own, so:

- a foreground `.skills/scripts/run_monitor.sh --attach` keeps streaming across the
  restart — no need to stop and relaunch it;
- an agent's Monitor tool watching the same path likewise keeps emitting,
  with a brief gap while the proxy is down.

## Effect on live sessions

Under clawback's probe-then-decide model, interactive `clawback claude`
sessions ATTACH to this proxy rather than running their own. A restart drops
their upstream for the ~1s the proxy is down: in-flight requests fail and
Claude Code retries, while session state is reloaded from the state file on
boot (look for `resumed N session(s)`), so the sessions continue afterward.
Restart when that brief blip is acceptable.

## Options & passthrough

`--log-file PATH` / `--pid-file PATH` are forwarded to BOTH phases, so the
stop targets the same proxy the detach replaces. Anything after `--` is
forwarded verbatim to the new `clawback` (the stop phase ignores it). See the
[monitor](../monitor/SKILL.md) skill for the full option set and the
highlighting/agent-usage notes that apply to the recreated log.

## Verify

```bash
.skills/scripts/run_monitor.sh --status     # should report RUNNING with the new pid
```

Files in this skill

  • SKILL.md4.1 KB
  • scripts/restart.sh2.8 KB
  • scripts/watch.mjs4 KB

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.