{"slug": "show-hn-nightshift-your-code-gets-better-while-you-sleep", "title": "Show HN: Nightshift – Your code gets better while you sleep", "summary": "Open-source project Nightshift, published at github.com/openslop/nightshift, runs a coding agent overnight to perform 10 job types — including security, bugs, maintainability, performance, conventions, architecture, smoke-tests, issues, and review — and opens pull requests for each fix it finds. The tool runs once a night, reviews open pull requests every two hours, never pushes to the main branch, and never touches files held by another open pull request; it works on Mac, Linux, and Windows with Claude Code, Codex, Cursor, Gemini, Copilot, Hermes, OpenClaw, and most other coding agents, and requires Node.", "body_md": "**Your code gets better while you sleep.**\n\nNightshift is a helper that works at night.\n\nIt 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.\n\nIn the morning, you read what it did. Many nights it finds nothing. That is fine. Nothing is better than a bad change.\n\nEvery two hours, it also reads any open pull requests and leaves a short review.\n\n| Job | What it looks for | \n|---|---|\n| `security` | Real holes a bad actor could use. Not \"maybe someday\" worries. | \n| `bugs` | Bugs a user would notice. Only clear ones. | \n| `maintainability` | Code that is hard to change. It makes it simpler. | \n| `performance` | Slow spots people feel. It measures first. | \n| `conventions` | Places that break your own written rules. Safe fixes only. | \n| `conventions-followup` | The rule breaks that need a real change. One theme a night. | \n| `architecture` | The one big way the code could be simpler. | \n| `smoke-tests` | A few calm tests that check the app still opens. Usually does nothing. | \n| `issues` | One small, clear GitHub issue. Leaves the easy ones for new people. | \n| `review` | Reads open pull requests every two hours. Quiet unless it finds something. | \n\nEvery job follows the same rules. They are in [`jobs/_common.md`](/openslop/nightshift/blob/main/jobs/_common.md). In short:\n\n- Read the repo's own guide files first. They win.\n- Read what the owner said on past pull requests. Learn their taste.\n- Never touch a file that someone else's open pull request touches.\n- Run the repo's checks. Fix what breaks.\n- Open a pull request, or say why not. Never push to the main branch.\n\nNightshift comes with a console. It shows every night and every job on one screen, and it lets you pick up any night's conversation where the agent left off. Tell your coding agent:\n\nOpen the Nightshift console. Read ~/nightshift/tui/README.md and start it.\n\nIt needs Node. Press `c` on a job to talk to the agent about what it did. Press `?` for the rest.\n\nTell your coding agent this:\n\nGet github.com/openslop/nightshift and set it up for my code at ~/code/my-app. Read SETUP.md there and follow it.\n\nThat is it. Your agent will ask you a few questions, set two timers on your computer, and show you where the notes go.\n\nWorks on Mac, Linux, and Windows. Works with Claude Code, Codex, Cursor, Gemini, Copilot, Hermes, OpenClaw, and most other coding agents. The full list is in [`nightshift.conf.example`](/openslop/nightshift/blob/main/nightshift.conf.example).\n\n- [`jobs/`](/openslop/nightshift/blob/main/jobs) has one page per job, in plain English. Read them. Change them if you want.\n- [`jobs/_common.md`](/openslop/nightshift/blob/main/jobs/_common.md) has the rules every job follows.\n- [`review/SKILL.md`](/openslop/nightshift/blob/main/review/SKILL.md) says how the reviewer acts.\n- [`nightshift.conf.example`](/openslop/nightshift/blob/main/nightshift.conf.example) is the settings page. Your agent fills in a copy.\n- [`SETUP.md`](/openslop/nightshift/blob/main/SETUP.md) is the page your agent follows to set things up.\n- [`bin/`](/openslop/nightshift/blob/main/bin) has three small scripts the timers run. You do not need to read them.\n- [`tui/`](/openslop/nightshift/blob/main/tui) is the console.[` tui/README.md`](/openslop/nightshift/blob/main/tui/README.md) says how to open it.\n\n- It only ever opens pull requests. You decide what gets merged.\n- It never touches a file that another open pull request touches.\n- It runs your checks before it opens anything.\n- It runs once a night. If your computer was asleep, it skips that night instead of running in the middle of your day.\n- Everything it does is written to a log on your computer, outside your repo.\n\n- Turn a job off by taking its name out of the `JOBS` line in your settings.\n- Change how a job thinks by editing its page in `jobs/` . Keep the words plain.\n- Add a job by adding a new page in `jobs/` and putting its name in`JOBS` .\n- Use a different agent by picking a different `AGENT` line in your settings.\n\nTell your agent: \"Turn off Nightshift.\" It removes the two timers. Your code is not touched.\n\n[MIT](/openslop/nightshift/blob/main/LICENSE). Free to use, copy, and change.", "url": "https://wpnews.pro/news/show-hn-nightshift-your-code-gets-better-while-you-sleep", "canonical_source": "https://github.com/openslop/nightshift", "published_at": "2026-09-10 18:18:08+00:00", "updated_at": "2026-09-10 18:37:12.596039+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools", "ai-products"], "entities": ["Nightshift", "github.com/openslop/nightshift", "Claude Code", "Codex", "Cursor", "Gemini", "Copilot", "Node"], "alternates": {"html": "https://wpnews.pro/news/show-hn-nightshift-your-code-gets-better-while-you-sleep", "markdown": "https://wpnews.pro/news/show-hn-nightshift-your-code-gets-better-while-you-sleep.md", "text": "https://wpnews.pro/news/show-hn-nightshift-your-code-gets-better-while-you-sleep.txt", "jsonld": "https://wpnews.pro/news/show-hn-nightshift-your-code-gets-better-while-you-sleep.jsonld"}}