A machine that works your GitHub issues with Claude Code
概览
A machine that works your GitHub issues with Claude Code. Label an issue agent; nightshift asks you what it needs to know on the issue, posts a plan (a spec and its tickets), builds the tickets in order once you say , and opens a pull request. You only ever reply on the issue. It runs on a machine of yours (your Mac, a Mac mini, a macOS VM), polling GitHub, so nothing is added to your repos and no admin rights are needed. A repo's runs load the Claude Code plugins its line names, and follow its own instructions on how to check and show a change, so a pull request can come with screenshots and a recording (see Plugins). It installs the latest release: the nightshift command (~/.nightshift/bin) and its Claude Code plugin (also copied to ~/.nightshift/plugin, for runs), both at that release's tag, and with --service runs nightshift watch in the background whenever you're logged in (a LaunchAgent, through nightshift start). Leave out --service to run it by hand.
README
以下为原文 README 节选,完整内容请查看原文。
nightshift
A machine that works your GitHub issues with Claude Code. Label an issue agent;
nightshift asks you what it needs to know on the issue, posts a plan (a spec and
its tickets), builds the tickets in order once you say go (or right away, when
the plan has no open choices), and opens a pull request. You only ever reply on the issue.
It runs on a machine of yours (your Mac, a Mac mini, a macOS VM), polling GitHub,
so nothing is added to your repos and no admin rights are needed. A repo’s runs
load the Claude Code plugins its .nightshift/config names, and follow its own instructions on
how to check and show a change, so a pull request can come with screenshots and
a recording (see Plugins).
Install
curl -fsSL https://raw.githubusercontent.com/hvalec427/nightshift/master/install.sh | sh -s -- --service
It installs the latest release, the nightshift command and its Claude Code plugin;
--service runs nightshift watch in the background whenever you’re logged in. A release
install updates itself with each new release. More, and what it needs, in docs/install.md.
Then:
claude setup-token, and save the token it prints to~/.nightshift/token(chmod 600).gh auth login(gh 2.99 or newer).- For each repo: a clone of it on the machine, then
nightshift add, and commit the.nightshift/configand.nightshift/CONTEXT.mdit leaves in the clone.
How it works
- Label an issue
agent(and a type label). - nightshift picks its size and asks its questions in a comment; you reply. A small issue goes straight to the build; a large one is split into sub-issues, each its own pull request.
- It posts a plan: a spec and its tickets.
- You reply go (or what to change); it builds the tickets and has the change reviewed.
- It opens a pull request that closes the issue.
- Once the checks pass and nothing needs your decision, it merges it (unless the repo has
auto_merge=false).
The whole flow, the labels and the rest in docs/working-an-issue.md.
Commands
nightshift status # the issues in progress and what each is doing
nightshift top # a live dashboard of them
nightshift start # run the service in the background
nightshift stop # stop the service, and the runs in flight
nightshift logs -f # every issue, as it happens
nightshift doctor # what this machine is missing, and how to get it
nightshift --version # the version that runs
Docs
- Install: installing and updating, what it needs, a dedicated machine.
- Working an issue: the flow, sessions and worktrees, skills,
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add hvalec427/nightshift