尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Nightshift 夜班:有自己电脑的 AI 助理。多台机器一键接入,实时看屏幕、随时接管,记忆、技能、定时任务、语音。
翻译准备中
正在加载完整 README。
查看完整 README ↗1.2.146 起改名为「长明 · Evenlight」,之前叫 Nightshift · 夜班;数据和自动更新都不受影响。网站与使用文档:https://20chuangge.github.io/nightshift/
你休息时,灯还亮着。一个有自己电脑的 AI 助理:说一句要做什么,它在电脑上把事情办完。
官网和下载:https://20chuangge.github.io/nightshift/
到 Releases 下载 Evenlight-Setup-x.y.z.exe(安装版)或 Evenlight-Portable-x.y.z.exe(免安装)。首次打开后在「设置 → 模型」填一个模型密钥(DeepSeek、通义、Kimi、OpenAI 等 OpenAI 兼容接口都行)。
npm install
npm start # 服务 + 网页界面 http://127.0.0.1:4390
npm run desktop # 桌面应用
npm run smoke # 全量自测
npm run desktop:build # 出 Windows 安装包 → desktop/dist/
需要 Node ≥ 20。添加远程机器、空白机测试方案见 docs/(HUB.md、TEST-PLAN.md)。
MIT:可以自由使用、修改和再分发,保留版权声明即可。
以下是开发参考(架构、接口、扩展方式)。
# 1) 起后端 + 浏览器打开
npm start # http://127.0.0.1:4390
npm run smoke # 1043 assertions, boots the real server on a free port
# 2) 桌面应用(Electron 壳)
npm run desktop # 开发模式,等同 npm start 但带窗口/托盘
npm run desktop:build # 出 Windows 安装包 → desktop/dist/
# 3) 手机端
npm run mobile:sync # 把 public/ 同步进 mobile/www 并 cap sync
PORT=0 npm start picks a free port; the server prints one JSON line with the
actual URL and logs to stderr.
No configuration. ASSIST_MODEL_PROVIDER defaults to mock: a deterministic
planner that reads keywords out of the last user message and replays a fixed plan
of tool calls (fs_list → fs_write → memory_write → task_finish). It is not
a language model — it is a fixture that exercises every code path, which is
exactly what makes the smoke test meaningful.
Try these messages:
| Message | What it exercises |
|---|---|
List the files in the workspace and write a note | LOW-risk tools, streaming, memory write |
Remember that I prefer metric units | per-bot memory |
Write a note outside the workspace (Ops) | HIGH-risk approval card |
Hand off to the researcher: summarise welcome.md | bot-to-bot handoff, separate turn |
Save this as a skill called inbox-triage (Researcher) | skill library write, auto-approved MEDIUM |
Create a routine every 30 minutes | routine creation |
Any OpenAI-compatible /chat/completions endpoint works:
export ASSIST_MODEL_PROVIDER=openai
export ASSIST_API_KEY=sk-... # never committed
export ASSIST_MODEL=gpt-4o-mini # optional
export ASSIST_BASE_URL=https://api.openai.com/v1 # optional: any compatible endpoint
npm start
The real client sends the tool schemas, parses tool_calls, and feeds results
back exactly like the mock path. Streaming tokens from the provider is not
enabled (see "what this replica does NOT do"); the UI still streams the assistant
text because the server emits deltas for each completed message.
| Variable | Default | Meaning |
|---|---|---|
PORT | 4390 | HTTP port. 0 = any free port. |
HOST | 127.0.0.1 | Bind address. Loopback by default, on purpose. |
ASSIST_HOME | repo root | Relocates the whole installation (used by the smoke test). |
ASSIST_DATA_DIR | <home>/data | Sessions, audit, routines, memory. |
ASSIST_WORKSPACE_DIR | <home>/workspace | The shared workspace. |
ASSIST_MODEL_PROVIDER | mock | mock or openai. |
ASSIST_BASE_URL / ASSIST_API_KEY / ASSIST_MODEL | — | Real provider settings. |
ASSIST_MODEL_TIMEOUT_MS | 120000 | Per-request timeout. |
CHROME_PATH | unset | Enables the optional browser_open tool. |
ALLOW_PRIVATE | unset | 1 lets http_fetch/browser_open reach LAN addresses. |
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗