中文 · 日本語 · 한국어 · Español · Français · Português
Your code gets better while you sleep.
A helper that wakes your coding agent at night, gives it one small job, and leaves pull requests by morning.
Set it up in one sentence
What is this?
Nightshift is a helper that works at night.
It wakes up your coding agent. It gives the agent one small job. The agent looks at your code and does the job. If it finds something worth fixing, it opens a pull request for you to look at. Then it moves to the next job.
In the morning, you read what it did. Many nights it finds nothing. That is fine. Nothing is better than a bad change.
Every two hours, it also reads any open pull requests and leaves a short review.
Features
Also in the box:
- Plain-English jobs — Every job is one page of plain words. Read them. Change them. Add your own.
- Learns your taste — Jobs read what you said on past pull requests before they start.
- Runs your checks — Lint, typecheck, tests. Every job must make them pass before it opens anything.
- Skips your workday — If your laptop was asleep, the night is skipped. It never runs in the middle of your day.
- Logs outside your repo — Everything it does is written to a folder on your computer, not in your code.
The jobs
| Job | What it looks for |
|---|---|
security |
Real holes a bad actor could use. Not "maybe someday" worries. |
bugs |
Bugs a user would notice. Only clear ones. |
readability |
Names that say nothing. Code that takes a second read. Fewer lines, not more. |
maintainability |
Code that is hard to change. It makes it simpler. |
performance |
Slow spots people feel. It measures first. |
conventions |
Places that break your own written rules. Safe fixes only. |
conventions-followup |
The rule breaks that need a real change. One theme a night. |
architecture |
The one big way the code could be simpler. |
smoke-tests |
A few calm tests that check the app still opens. Usually does nothing. |
issues |
One small, clear GitHub issue. Leaves the easy ones for new people. |
review |
Reads open pull requests every two hours. Quiet unless it finds something. |
Every job follows the same rules. They are in jobs/_common.md. In short:
- Read the repo's own guide files first. They win.
- Read what the owner said on past pull requests. Learn their taste.
- Never touch a file that someone else's open pull request touches.
- Run the repo's checks. Fix what breaks.
- Open a pull request, or say why not. Never push to the main branch.
Supported agents
Works with any coding agent that can run from a terminal without asking questions. Pick the matching AGENT line in nightshift.conf.example.
Claude Code
Codex
Cursor
Gemini CLI
GitHub Copilot
Hermes
OpenClaw
OpenCode
Aider
Amp
Goose
Qwen Code
Droid
Cline
+ any agent with a "yes to everything" flag
How to start
Tell your coding agent this:
Get github.com/openslop/nightshift and set it up for my code at ~/code/my-app. Read SETUP.md there and follow it.
That is it. Your agent will ask you a few questions, set two timers on your computer, and show you where the notes go.
Works on macOS, Linux, and Windows. If you would rather do it by hand, SETUP.md is the page your agent follows.
Watch it
Tell your coding agent:
Open the Nightshift console. Read ~/nightshift/tui/README.md and start it.
It needs Node. Press c on a job to talk to the agent about what it did. Press ? for the rest.
What is inside
jobs/has one page per job, in plain English. Read them. Change them if you want.jobs/_common.mdhas the rules every job follows.review/SKILL.mdsays how the reviewer acts.nightshift.conf.exampleis the settings page. Your agent fills in a copy.SETUP.mdis the page your agent follows to set things up.bin/has three small scripts the timers run. You do not need to read them.tui/is the console.tui/README.mdsays how to open it.
Is it safe?
- It only ever opens pull requests. You decide what gets merged.
- It never touches a file that another open pull request touches.
- It runs your checks before it opens anything.
- It runs once a night. If your computer was asleep, it skips that night instead of running in the middle of your day.
- Everything it does is written to a log on your computer, outside your repo.
Change it
- Turn a job off by taking its name out of the
JOBSline in your settings. - Change how a job thinks by editing its page in
jobs/. Keep the words plain. - Add a job by adding a new page in
jobs/and putting its name inJOBS. - Use a different agent by picking a different
AGENTline in your settings.
Turn it off
Tell your agent: "Turn off Nightshift." It removes the two timers. Your code is not touched.
Community & support
- Discord: Join the community on Discord.
- Ideas and bugs: Missing a job? Found a night that went wrong? Open an issue.
- Share a job: Wrote a job page that works well? Open a pull request and put it in
jobs/. - Show support: Star this repo to follow along.
Developing
Want to add a job, fix a script, or work on the console? See CONTRIBUTING.md.
Nightshift is shell scripts, plain-text job pages, and a Node console with no dependencies. There is no build step.
Star history
License
Nightshift is free and open source under the MIT License. Use it, copy it, change it.
