overnight
Work a repo's GitHub issues unattended overnight, one fresh claude or pi process per issue, with ./verify.sh deciding what stays.
Skill by GregHilston
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/greghilston-overnight
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/overnight
What's inside
- Skill name
overnight- Description
- Work a repo's GitHub issues unattended overnight, one fresh claude or pi process per issue, with ./verify.sh deciding what stays. Use when Greg wants agents to build while he is away. Set the repo up with agent-ready first; for an attended run use /orchestrate.
- License
- MIT
- Instructions
- 101 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Overnight
One command, already on `PATH`. Run it in your shell (the `terminal` tool in
Hermes, Bash in Claude Code, `bash` in pi) from the repo root, exactly as shown:
no `python3` in front and no directory.
```bash
overnight-loop.py --harness pi # DeepSeek via the gateway's `cloud`, Claude plans and reviews
overnight-loop.py --harness pi --budget 3 --off-peak # hard $3 cap via LiteLLM, cheap hours only
overnight-loop.py --harness pi --model cloud --board 1 # also keep GitHub project 1 in sync
overnight-loop.py --harness pi --model deepseek/deepseek-flash # DeepSeek directly; needs DEEPSEEK_API_KEY
overnight-loop.py --harness claude --yolo # Claude workers; only inside a container or VM
overnight-loop.py --help # every cap and default
board-sync.py --create "<repo name>" # once per repo: make the kanban board
```
Why a script and not you: an orchestrator that is itself a model session fills
its context over a night and compacts. The script holds no context, starts every
worker clean, and trusts `./verify.sh`, never a worker saying it is done.
For each issue a reviewer, Claude by default and from another model family than
DeepSeek on purpose, writes a plan, and reviews the work once it passes the gate.
When it asks for changes, one fresh worker makes them and the gate runs again.
If that fix pass fails the gate, the loop keeps the green work from before it
and says in the issue that the findings are not addressed. A review with no
`VERDICT:` line parks the issue. A reviewer that runs out of money or hits its
usage limit is dropped for the rest of the night, and later issues go
unreviewed; the summary says from which issue.
The gate is `./verify.sh` as the issue's base had it: a worker that changes
`verify.sh` or `tests/baseline_count`, or leaves the run's branch, has its
issue parked. A `./verify.sh` slower than `--verify-minutes` (default 15)
counts as a fail. After each worker and each gate run, and on Ctrl-C, the loop
stops (SIGTERM, then SIGKILL) processes started meanwhile that run in the repo
with no terminal and no parent left, such as a server a worker backgrounded.
pi workers use the LiteLLM gateway's `cloud` model unless `--model` names
another. When Greg names a spend ("at most $3"), pass it as `--budget`: the
loop stops starting issues once this run has spent that much on the gateway.
The gateway's daily cap on `cloud` is the hard limit underneath: past it,
every request is refused. `--max-cost` (default $60) still applies alongside.
A direct `deepseek/` model needs `DEEPSEEK_API_KEY`, and the loop refuses to
start when that key's balance is under $2.
`--off-peak` works only in DeepSeek's half-price hours: it waits from 20
minutes before peak until peak ends, then carries on until `--hours` is up.
Weekends are off-peak all day; on a weeknight the off-peak windows are short.
## Before starting
Check these with Greg, then start it, and stop there:
1. **The repo passes agent-ready.** The script refuses to start without an
executable `./verify.sh` that passes, with a dirty tree, or on a branch
other than the default (pass `--base <branch>` to start from another). It
then asks the worker's and the reviewer's model for one word, and stops
with their error if either cannot answer.
2. **The queue.** Open issues with the label (default `ready-for-agent`; pass
`--label prep:ready` after `/prep`). Each needs a checkable `Done when`.
3. **The caps.** Defaults: 8 hours, 20 issues, 3 parks in a row, 90 minutes per
agent run, and $60 a night (pi priced from DeepSeek's table, Claude by its own report).
4. **The sandbox.** pi workers run with bash-guard off, and the loop gives
them the write tool inside the repo through a git-excluded
`.pi/extensions/pi-permission-system/config.json`, removed when the run
ends (a repo that commits its own keeps it). pi's own write tool is refused outside the repo, but its
bash reaches anything, and `--yolo` turns Claude's permissions off. Run
either inside a container or VM that mounts only this repo.
5. **Detach it.** Run it in `tmux new -d -s overnight '…'`, not as a harness
background task, which dies with the session.
6. **Hands off the repo.** Nobody works in it while the run goes: the loop
resets and cleans the tree between issues, and stops orphaned processes
started there.
`touch .overnight/STOP` ends the run after the current issue; the next run
clears it. Ctrl-C, or closing the tmux session, stops the worker, resets its
unjudged work, takes `overnight:working` off the issue and prints the summary.
## In the morning
The script prints which issues it finished and which it parked, any commit
subjects that are not conventional, and the command that opens one draft PR
for the `overnight/<time>` branch. `progress.md` holds each worker's notes,
and `.overnight/logs/<issue>.log` its full output. Greg playtests the branch. A parked issue keeps its label and a comment with the
verify output: fix the issue or the test, remove the label, and it rejoins the
next run.
## Parallel lanes
Several loops can run at once, each in its own clone on its own label. Run these from the repo's main checkout, exactly as shown:
```bash
lane.py start b --label lane-b -- --harness claude --model sonnet # clone beside the repo, start the loop detached
lane.py status # one line per lane: running, current issue, done, parked, branch
lane.py stop b # end the lane after its current issue
lane.py fetch b # latest overnight branch into a rebased worktree
lane.py land ../backseat-drivers-wt-b # verify, fast-forward main, raise baseline, push, close issues
```
`fetch` leaves a rebase stopped when it reports conflicts: resolve them in the worktree, then `land`.From GregHilston/toolbox, MIT.
More from GregHilston/toolbox
- 0.638score
pi-ask
GregHilston
Hand a task to a cheap DeepSeek pi worker and talk it over across several turns, for research, a PR review or a second opinion.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
image-generate
GregHilston
Make an image from a description with FLUX.2 klein on moria's GPU, about 20 seconds, and attach it.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
market-watch
GregHilston
List, add or remove the Craigslist search terms watched near Sheldon, VT, which feed the market bot's hourly Telegram alerts and the morning digest.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
swarm
GregHilston
Orchestrate a repo's backlog autonomously.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
netcheck
GregHilston
Triage a network outage from moria, offline-safe and read-only.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
hacker-news
GregHilston
Search Hacker News and read threads with their comments, no key needed.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
agent-ready
GregHilston
Set up a repo so fresh agent sessions can build it unattended, with decisions on disk, issues with checkable Done when lines, and a ./verify.sh gate.
SkillAFreshness: A★ 15Claude Code +9 - 0.635score
verify-agent-output
GregHilston
Review an agent's tree with deterministic checks first: clean-tree install, diff, output profile, dead-symbol sweep.
SkillAFreshness: A★ 15Claude Code +9 - 0.635score
reddit
GregHilston
Search Reddit and read threads with their comments, no login needed.
SkillAFreshness: A★ 15Claude Code +9 - 0.635score
lab-alerts
GregHilston
List the home lab's recent and currently firing alerts, then diagnose them from the runbooks.
SkillAFreshness: A★ 15Claude Code +9 - 0.635score
later
GregHilston
Add a someday task to Greg's later list in the notes vault, no pressure and no one waiting.
SkillAFreshness: A★ 15Claude Code +9 - 0.635score
read-page
GregHilston
Read any web page or article as clean text, from its URL.
SkillAFreshness: A★ 15Claude Code +9
Signals
- Stars
- 15
- Forks
- 5
- Open issues
- 0
- Last commit (this folder)
- Oct 16, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/GregHilston/toolbox
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from GregHilston
- 0.638score
image-generate
GregHilston
Make an image from a description with FLUX.2 klein on moria's GPU, about 20 seconds, and attach it.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
netcheck
GregHilston
Triage a network outage from moria, offline-safe and read-only.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
agent-ready
GregHilston
Set up a repo so fresh agent sessions can build it unattended, with decisions on disk, issues with checkable Done when lines, and a ./verify.sh gate.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
hacker-news
GregHilston
Search Hacker News and read threads with their comments, no key needed.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
market-watch
GregHilston
List, add or remove the Craigslist search terms watched near Sheldon, VT, which feed the market bot's hourly Telegram alerts and the morning digest.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
pi-ask
GregHilston
Hand a task to a cheap DeepSeek pi worker and talk it over across several turns, for research, a PR review or a second opinion.
SkillAFreshness: A★ 15Claude Code +9
Cite this page
overnight skill. Agent Mart. https://agentmart.dev/skills/greghilston-overnight (last updated 2026-10-24)