VoidLight00

Nightguardian — Development skill for Claude Code

Development community

Fail-closed tmux watchdog that safely resumes rate-limited Claude Code panes.

How to install Nightguardian

This entry records only its repository, not the path inside it, so there is no exact command to give. Open VoidLight00/nightguardian and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Nightguardian does

Fail-closed tmux watchdog that safely resumes rate-limited Claude Code panes.

Alternatives in Development

  • Epic Unblock — Sweep blocked epic issues and reopen anything whose dependencies are closed 243.5k ★
  • Claude Auto Resume — A shell script utility that automatically resumes Claude CLI tasks when usage limits are lifted 732 ★
  • Maestro Ralph — Closed-loop policy over the canonical Session/Run chain 530 ★

README

[English](README.md) | [한국어](README.ko.md)

NightGuardian

**A fail-closed tmux watchdog that safely resumes rate-limited Claude Code panes.**

![NightGuardian hero](assets/hero.png)

[![CI](https://github.com/VoidLight00/nightguardian/actions/workflows/verify.yml/badge.svg)](https://github.com/VoidLight00/nightguardian/actions/workflows/verify.yml) [![CodeQL](https://github.com/VoidLight00/nightguardian/actions/workflows/codeql.yml/badge.svg)](https://github.com/VoidLight00/nightguardian/actions/workflows/codeql.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.9+](https://img.shields.io/badge/Python-3.9%2B-blue.svg)](https://www.python.org/) [![Bash 3.2+](https://img.shields.io/badge/Bash-3.2%2B-4EAA25.svg)](https://www.gnu.org/software/bash/) [![tmux 3.x](https://img.shields.io/badge/tmux-3.x-1BB91F.svg)](https://github.com/tmux/tmux) [![macOS](https://img.shields.io/badge/macOS-supported-000000.svg)](https://www.apple.com/macos/) [![Linux](https://img.shields.io/badge/Linux-supported-FCC624.svg)](https://www.linux.org/)

NightGuardian monitors Claude Code sessions running inside tmux. When it sees a supported hard rate-limit message, it parses the advertised reset time, pins the incident to the exact pane, waits, verifies that the same pane still runs Claude Code, and only then sends a configurable resume prompt.

It is built for unattended recovery without treating arbitrary terminal text as permission to press Enter.

Highlights

  • Scans every pane across every tmux session, not only active panes.
  • Detects hard session, usage, weekly, and API rate-limit messages.
  • Parses absolute and relative reset times with timezone support.
  • Pins state to the immutable tmux pane ID that produced the event.
  • Verifies the Claude process before detection and immediately before resume.
  • Fails closed when a pane disappears, changes command, or has no reset time.
  • Prevents duplicate retries wi