nightshift

GitHub
945 38 简单 2 次阅读 今天MITAgent插件
AI 解读 由 AI 自动生成,仅供参考

Nightshift 是一款自动化代码维护工具,它会在夜间利用你 Claude 或 Codex API 剩余的配额,自动扫描代码库并创建改进建议的 Pull Request。

每周你的 API 配额都会重置,不用白不用。Nightshift 正是抓住了这个时间窗口,默默帮你发现死代码、文档与实现脱节、测试覆盖不足、安全隐患等 20 多类常见问题。它就像一个勤劳的清洁机器人,第二天早上给你留下一份“惊喜”——一个可以合并也可以关闭的 PR。

Nightshift 适合使用 Claude 或 Codex API 的开发者,特别是有剩余配额、希望保持代码库整洁的团队和个人。所有改动都以 PR 形式呈现,不会直接写入主分支,不满意关掉就好,真正做到零风险。

它还支持多项目管理、预算上限控制(默认 75%),并提供直观的 CLI 工具来预览任务、查看预算、运行检查。安装方式也很简单,Homebrew 或 Go 直接安装即可。

使用场景

某中型 SaaS 公司的后端团队维护着 5 个微服务仓库,每周都有 Claude API 配额剩余,但团队忙于功能开发,代码质量逐渐下滑。

没有 nightshift 时

  • 预算浪费:每周近 40% 的 Claude 配额的剩余 tokens 被闲置,到周五自动重置,团队从未想过如何利用这些资源
  • 技术债务堆积:死代码、过时的注释、未更新的 API 文档在各个仓库中悄悄积累,团队总是忙于新功能开发,无暇顾及这些"不紧急"的问题
  • 问题发现滞后:测试覆盖率缺口、安全隐患、潜在的 bug 往往在上线后才被发现,修复成本远高于提前发现
  • 文档维护困难:代码和文档不一致是常态,每次接手别人的模块都要花大量时间猜文档描述的是否还是当前实现
  • 清理工作无人负责:代码重构和清理任务永远排在待办事项最后,团队成员都不愿意主动揽这种"吃力不讨好"的活

使用 nightshift 后

  • 预算变废为宝:剩余的 Claude 配额被自动用于代码扫描和修复,每周自动生成 PR,团队周一上班只需花 15 分钟审核
  • 持续代码清理:死代码、重复逻辑、废弃的 API 端点被自动识别并整理成 PR,代码库始终保持健康状态
  • 问题提前暴露:测试缺口、潜在的安全漏洞、异常处理遗漏在它们还是小问题时就被发现并修复
  • 文档自动同步:代码变更后,nightshift 会检查对应的文档是否需要更新,确保文档始终与实现保持一致
  • 零额外负担:所有工作都在后台完成,团队成员无需投入任何额外精力,PR 来了就审,不满意直接关闭

nightshift 把每周浪费的 AI 预算变成自动化的代码质量守护者,让技术债务在无声中持续被偿还。

运行环境要求

操作系统
  • Linux
  • macOS
GPU

不需要(该工具调用 Claude Code、Codex 或 GitHub Copilot 等远程 AI 服务)

内存

未说明

依赖
notes该工具为 Go 语言编写的代码分析工具,不依赖本地 GPU 或 Python 环境。需要配置以下 AI provider 之一:Claude Code、Codex 或 GitHub Copilot。首次使用需运行 `nightshift setup` 进行配置,包括 provider 认证、项目路径设置、预算配置等。配置文件默认位于 ~/.config/nightshift/config.yaml,数据存储在 ~/.local/share/nightshift。支持通过 cron 或 daemon 定时运行。
python不需要(Go 语言编写)
Go 1.21+(编译需要)
Claude Code(可选)
Codex CLI(可选)
GitHub Copilot CLI(可选)
gum(可选,用于美化输出)
nightshift hero image

快速开始

Nightshift

它能找到你忘了寻找的东西。

nightshift.haplab.com · 文档 · 快速开始 · CLI 参考

Nightshift logo

你的 tokens 每周都会重置,不用白不用。Nightshift 会在夜间运行,找出死代码、文档漂移、测试缺口、安全问题以及其他 20 多类在功能开发过程中悄然积累的问题。就像你代码库的 Roomba——夜间运行,最坏情况也就是你关掉 PR。

所有内容都会以分支或 PR 的形式呈现。它永远不会直接写入你的主分支。不喜欢某个改动?关掉它就行。这就是完整的回滚方案。

功能特点

  • 预算感知:使用剩余的每日配额,从不超过可配置的最大值(默认 75%)
  • 多项目支持:指向你的仓库,它就知道要找什么
  • 零风险:一切都以 PR 形式呈现——合并让你惊喜的,关掉其余的
  • 优秀的开发者体验:精心设计的 CLI 默认值,输出清晰,有详细报告

安装

完整指南:安装文档

brew install marcus/tap/nightshift

二进制下载可在 GitHub releases 页面获取。

手动安装:

go install github.com/marcus/nightshift/cmd/nightshift@latest

快速开始

完整指南:快速开始文档

安装后,运行引导式设置:

nightshift setup

这将引导你完成提供商配置、项目选择、预算校准和守护进程设置。完成后可以预览 nightshift 将要执行的操作:

nightshift preview
nightshift budget

或者立即开始运行:

nightshift run

常用 CLI 用法

完整参考:CLI 参考文档

# 预览下次计划运行,带提示预览
nightshift preview -n 3
nightshift preview --long
nightshift preview --explain
nightshift preview --plain
nightshift preview --json
nightshift preview --write ./nightshift-prompts

# 引导式全局设置
nightshift setup

# 检查环境和配置健康状态
nightshift doctor

# 预算状态和校准
nightshift budget --provider claude
nightshift budget snapshot --local-only
nightshift budget history -n 10
nightshift budget calibrate

# 浏览和检查可用任务
nightshift task list
nightshift task list --category pr
nightshift task list --cost low --json

# 显示任务详情和规划提示
nightshift task show lint-fix
nightshift task show skill-groom
nightshift task show lint-fix --prompt-only

# 立即运行任务
nightshift task run lint-fix --provider claude
nightshift task run skill-groom --provider codex --dry-run
nightshift task show lint-fix --prompt-only

如果 gum 可用,预览输出会通过 gum 分页器显示。使用 --plain 可以禁用。

nightshift run

在执行前,nightshift run 会显示一个 飞行前摘要,展示所选的提供商、预算状态、项目和计划任务。在交互式终端中会提示确认;在非 TTY 环境(cron、守护进程、CI)中确认会自动跳过。

参数 默认值 描述
--dry-run false 显示飞行前摘要并退出,不执行
--project, -p (所有已配置的) 定位单个项目目录
--task, -t (自动选择) 按名称运行特定任务
--max-projects 1 最大处理项目数(设置 --project 时忽略)
--max-tasks 1 每个项目的最大任务数(设置 --task 时忽略)
--random-task false 从符合条件的任务中随机选择,而非得分最高的
--ignore-budget false 绕过预算检查(谨慎使用)
--yes, -y false 跳过确认提示
# 交互式运行,带飞行前摘要 + 确认提示
nightshift run

# 非交互式:跳过确认
nightshift run --yes

# 试运行:显示飞行前摘要并退出
nightshift run --dry-run

# 最多处理 3 个项目,每个 2 个任务
nightshift run --max-projects 3 --max-tasks 2

# 随机选择符合条件的任务
nightshift run --random-task

# 绕过预算限制(显示警告)
nightshift run --ignore-budget

# 直接定位特定项目和任务
nightshift run -p ./my-project -t lint-fix

其他有用参数:

  • nightshift status --today 查看今日活动摘要
  • nightshift daemon start --foreground 用于调试
  • --category — 按类别过滤任务(pr, analysis, options, safe, map, emergency)
  • --cost — 按成本层级过滤(low, medium, high, veryhigh)
  • --prompt-only — 仅输出原始提示文本用于管道传输
  • --providertask run 必需,选择 claude 或 codex
  • --dry-run — 预览提示而不执行
  • --timeout — 执行超时时间(默认 30 分钟)

认证(订阅)

Nightshift 支持三个 AI 提供商:

  • Claude Code - Anthropic 的 Claude,通过本地 CLI
  • Codex - OpenAI 的 GPT,通过本地 CLI
  • GitHub Copilot - GitHub 的 Copilot,通过 GitHub CLI

Claude Code

claude
/login

支持 Claude.ai 订阅或 Anthropic Console 凭据。

Codex

codex --login

支持使用 ChatGPT 或 API 密钥登录。

GitHub Copilot

# 安装 Copilot CLI
npm install -g @github/copilot
# 或
curl -fsSL https://gh.io/copilot-install | bash

需要 GitHub Copilot 订阅。详见 docs/COPILOT_INTEGRATION.md

如果偏好基于 API 的使用方式,你可以用 API 密钥对 Claude 和 Codex CLI 进行认证。

配置

完整指南:配置文档 · 预算文档 · 调度文档 · 任务文档

Nightshift 使用 YAML 配置文件来定义:

  • Token 预算限制(Token budget limits)
  • 目标仓库(Target repositories)
  • 任务优先级(Task priorities)
  • 调度偏好(Schedule preferences)

运行 nightshift setup 创建/更新全局配置 ~/.config/nightshift/config.yaml

详细选项请参阅完整配置文档SPEC.md

最小配置示例:

schedule:
  cron: "0 2 * * *"

budget:
  mode: daily
  max_percent: 75
  reserve_percent: 5
  billing_mode: subscription
  calibrate_enabled: true
  snapshot_interval: 30m

providers:
  preference:
    - claude
    - codex
  claude:
    enabled: true
    data_path: "~/.claude"
    dangerously_skip_permissions: true
  codex:
    enabled: true
    data_path: "~/.codex"
    dangerously_bypass_approvals_and_sandbox: true

projects:
  - path: ~/code/sidecar
  - path: ~/code/td

任务选择:

tasks:
  enabled:
    - lint-fix
    - docs-backfill
    - bug-finder
  priorities:
    lint-fix: 1
    skill-groom: 2
    bug-finder: 2
  intervals:
    lint-fix: "24h"
    skill-groom: "168h"
    docs-backfill: "168h"

每个任务都有一个默认冷却间隔(cooldown interval),以防止同一任务在项目上运行过于频繁(例如 lint-fix 为 24h,docs-backfill 为 7 天)。可使用 tasks.intervals 按任务覆盖默认间隔。

skill-groom 默认启用。如果想选择退出,可将其添加到 tasks.disabled。它会使用 README.md 作为项目上下文来更新 .claude/skills.codex/skills 下的项目本地技能,并从 https://agentskills.io/llms.txt 开始 Agent Skills 文档查询。

开发

Pre-commit 钩子

安装 git pre-commit 钩子以在推送前检查格式和代码问题:

make install-hooks

这会将 scripts/pre-commit.sh 符号链接到 .git/hooks/pre-commit。该钩子会运行:

  • gofmt — 标记任何需要格式化的已暂存 .go 文件
  • go vet — 捕获常见的正确性问题
  • go build — 确保项目可以编译

如需临时绕过:git commit --no-verify

卸载

# 移除系统服务
nightshift uninstall

# 移除配置和数据(可选)
rm -rf ~/.config/nightshift ~/.local/share/nightshift

# 移除二进制文件
rm "$(which nightshift)"

许可证

MIT - 详见 LICENSE

版本历史

v0.3.42026/02/28
v0.3.32026/02/19
v0.3.22026/02/17
v0.3.12026/02/09
v0.3.02026/02/08
v0.2.02026/02/07
v0.1.12026/02/06
v0.1.02026/02/06

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.6k|★★★☆☆|今天
语言模型Agent开发框架