Run long-running, unattended batch agents in Claude Code by defining tasks in a CSV table and orchestrating them through a shift-based workflow with self-validation, retries, and subprocess dispatching.
Add a task definition to an existing Nightshift shift, registering it in manager.md and adding a status column to table.csv. Use when the user invokes /nightshift:add-task.
Archive a Nightshift shift by moving its directory to .nightshift/archive/YYYY-MM-DD-<name>/. Use when the user invokes /nightshift:archive.
Create a new Nightshift shift — a structured unit of batch agent work — with manager.md and an empty table.csv. Use when the user invokes /nightshift:create.
Execute one Nightshift task on one item, self-validate, retry on failure, and emit a structured result. Invoked by manager via `claude -p` subprocess; runs in a fresh top-level Claude Code session and inherits all user-configured MCPs.
Verify that Nightshift's required system dependencies (qsv, flock, jq) are installed and on PATH. Use when the user invokes /nightshift:doctor.
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
* . . . * . +
_ _ _ _ _ ____ _ _ __ _ *
| \ | (_) __ _| |__ | |_ / ___|| |__ (_)/ _| |_ .
| \| | |/ _` | '_ \| __| \___ \| '_ \| | |_| __| (
| |\ | | (_| | | | | |_ ___) | | | | | _| |_ *
|_| \_|_|\__, |_| |_|\__| |____/|_| |_|_|_| \__|
* |___/ . + . *
Long-running unsupervised agent framework
A batch processing framework for AI agents. Define a table of items, write task instructions, and let a manager-plus-dev system work through them autonomously with built-in retries, self-improvement, and self-validation.
Nightshift runs inside Claude Code as a manager subagent that dispatches dev work as fresh top-level claude -p subprocesses. Dev subprocesses inherit your full user-level MCP configuration — any MCP you've installed in Claude Code (Slack, Drive, Playwright, internal company MCPs) is automatically available to every Nightshift task. Nightshift is distributed as a Claude Code plugin via its own marketplace.
A shift is a batch job. It contains a CSV table of items to process and one or more task definitions that describe what to do with each item. Two roles collaborate to execute the work:
claude -p subprocess via the bundled dispatch-batch.sh helper, applies step improvements from successful dev runs (unless disable-self-improvement: true is set), and reports progress. Writes manager.md and task files; reads table.csv for status information.table.csv (done on success, failed on failure). Because each dev runs as a top-level claude -p subprocess, it sees every user-configured MCP without any Nightshift-specific setup.Each item-task moves through a state machine:
todo --> done
\
-> failed
--permission-mode auto; see the Permission mode section for the fallback path on older versions or non-eligible plans).brew install qsv or download from GitHub releases for non-Homebrew platformsbrew install flock or use the version bundled with util-linux on Linuxdispatch-batch.sh) -- install via brew install jqInside Claude Code, add the marketplace and install the plugin:
/plugin marketplace add johndaskovsky/nightshift
/plugin install nightshift@nightshift
After install, restart Claude Code if it's already running (so the new skills are discovered), then verify your system has the required dependencies:
/nightshift:doctor
The doctor skill checks for qsv, flock, and jq on PATH. It prints brew install hints for any that are missing.
You're ready when /nightshift:doctor reports all three present. Move on to Quick Start.
Nightshift's skills declare the Bash commands they need (qsv, flock, claude, jq) via allowed-tools frontmatter. Claude Code should honor these declarations automatically. If you see repeated permission prompts during a shift, add the entries to ~/.claude/settings.json once:
{
"permissions": {
"allow": ["Bash(qsv *)", "Bash(flock *)", "Bash(claude *)", "Bash(jq *)"]
}
}
Marketplaces auto-update on Claude Code startup. To pull the latest plugin version manually:
/plugin marketplace update
Earlier Nightshift versions (1.x–3.x) shipped as the npm package @johndaskovsky/nightshift with a nightshift init command. This path is deprecated as of 4.0.0. The npm package still exists but nightshift init only prints these instructions and exits. Migrate to the plugin install path above.
If you have a previous project-local install (<project>/.claude/skills/nightshift-*/), it will shadow the plugin via Claude Code's skill precedence. Delete those directories from your projects to let the plugin take over. Your .nightshift/<shift>/ data is unaffected.
All commands run inside Claude Code.
npx claudepluginhub johndaskovsky/nightshift --plugin nightshiftMulti-agent workflow orchestration with natural language creation, parallel execution, conditional flows, and visual progress tracking
Use Superset to spawn agents, create workspaces, manage tasks, and schedule automations from Claude Code.
Orchestrate complex workflows with DAG-based execution, parallel tasks, and run history tracking
Autonomous task execution daemon that monitors Claude usage windows and executes predefined tasks automatically. Keep Claude working 24/7 on your projects.
Multi-agent workflow orchestration via YAML. Ships the conductor skill so the assistant can validate, run, debug, and author workflow files for the conductor CLI.
Context hub for agentic workflows - manage projects, tasks, sessions, and multi-agent coordination