🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

零耗定时脚本 monkey-sking/dsh-noagent-schedule

DeepSeek Harness
monkey-sking14 天前有提交已提供中文文档扫描:未发现敏感能力

按 cron 定时直接运行脚本,不唤醒模型也不消耗 token

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add monkey-sking/dsh-noagent-schedule
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    client.js:1101
    const response = await fetch(ROUTE, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-noagent-schedule 零 token 定时脚本调度。 到点由 DSH 宿主直接起子进程跑脚本,不唤醒模型、不消耗 token。 这是 DSH 生态里一直缺的那一格。 之所以要自己写,是因为 现有的定时插件(官方 dsh-schedule 与社区实现)全是「到点往会话投消息 / 开新会话」,产出物是唤醒模型,不是执行脚本;没有任何一个能跳过模型。 为什么放在宿主里,而不是 launchd | | launchd | 本插件 | | TCC(受保护目录) | ❌ git 等工具可能读不了外接卷 | ✅ 用宿主身份,按应用已获授权执行 | | 依赖外部运行时 | 需要自己的 venv / 脚本目录 | 不依赖 | | 改任务 | 改 plist + bootout/bootstrap | 改 JSON,10 秒内生效 | | 7×24 不依赖 GUI | ✅ | ❌ 只在 DSH 进程存活时跑 | 结论:需要 7×24、与 DSH 无关的看门狗继续用 launchd;需要宿主 TCC 身份、或与 DSH 状态相关的,放这里。
展开完整文档(README 剩余 1 节)
dsh-noagent-schedule

零 token 定时脚本调度。 到点由 DSH 宿主直接起子进程跑脚本,不唤醒模型、不消耗 token。

这是 DSH 生态里一直缺的那一格。
之所以要自己写,是因为 现有的定时插件(官方 dsh-schedule 与社区实现)全是「到点往会话投消息 / 开新会话」,产出物是唤醒模型,不是执行脚本;没有任何一个能跳过模型。

为什么放在宿主里,而不是 launchd

| | launchd | 本插件 |
| TCC(受保护目录) | ❌ git 等工具可能读不了外接卷 | ✅ 用宿主身份,按应用已获授权执行 |
| 依赖外部运行时 | 需要自己的 venv / 脚本目录 | 不依赖 |
| 改任务 | 改 plist + bootout/bootstrap | 改 JSON,10 秒内生效 |
| 7×24 不依赖 GUI | ✅ | ❌ 只在 DSH 进程存活时跑 |

结论:需要 7×24、与 DSH 无关的看门狗继续用 launchd;需要宿主 TCC 身份、或与 DSH 状态相关的,放这里。

安装

从插件市场(发现页)

在 插件 > 发现 > 管理索引源 里添加:

https://raw.githubusercontent.com/monkey-sking/dsh-noagent-schedule/main/index.json

然后插件会出现在发现列表里,带中文说明和图标,点安装即可。(发现标签需要先启用实验性的 plugin-market 组合包。)

从本地 checkout

git clone https://github.com/monkey-sking/dsh-noagent-schedule.git
plugin_manager({ action: "install_bundle", target: "<cloned directory>" })

装完在 profile 里新增一行 noagent-schedule。配置文件默认:

- 任务清单:~/.dsh/noagent/jobs.json
- 状态/日志:~/.dsh/noagent/state/

任务清单格式

{
"jobs": [
{
"id": "git-push-check",
"name": "Git push 检查", "enabled": true, "cron": "30 18 * * ", "timeZone": "Asia/Shanghai", "cwd": "/srv/app", "command": "git status --porcelain", "timeoutSeconds": 120 }, { "id": "heartbeat", "name": "心跳", "enabled": true, "everySeconds": 300, "command": "date" } ] }

字段:

| 字段 | 说明 |
| id | 唯一标识,也是日志目录名 |
| cron | 五字段 Vixie cron:分 时 日 月 周;支持 /n、a-b、a-b/n、逗号、sun..sat、jan..dec |
| everySeconds | 固定间隔(≥30 秒),与 cron 二选一 |
| timeZone | IANA 时区,默认 Asia/Shanghai |
| cwd | 工作目录,默认 $HOME |
| command | 交给 /bin/bash -lc 执行;也可改用 argv 数组直接起进程 |
| env | 追加环境变量 |
| timeoutSeconds | 超时强杀,默认 300 |

事件型任务(wakeOnChange)

wakeOnChange 让脚本输出充当指纹:只有冒出新内容时才把这段输出投进指定会话(sessionId),其余时间完全零 token。

配合 onlyOnNew 可用 keyPattern 指定「什么算新条目」:正则匹配到的片段就是这行的身份,匹配不到则退回整行。例如探针每行是 UNKNOWN | 姓名 | 公司 | 时间 | 最后一条消息,用 "keyPattern": "^[A-Z_]+ \\| [^|]+ \\| [^|]+" 就只按「状态+姓名+公司」判新:同一会话换了最后一条消息(包括我方刚回复)不会重复唤醒,只有冒出新会话才唤醒。

每次唤醒都以一次性任务投递,投递完成后由插件自动清理(唤醒前清上一条 + 每 30 秒清理已投递的旧行),不会在「自动化任务」列表里堆积同名「已结束 · 仅一次」记录;重启后第一次 tick 会顺带清掉升级前遗留的历史唤醒行。

运行产物

~/.dsh/noagent/state/
├── state.json # 每个任务最近一次:时间、退出码、耗时 ├── runs.jsonl # 每次运行一行 JSON └── runs/<id>/<时间戳>.log # 单次运行的完整 stdout / stderr

排查一次失败只要看对应 .log,不需要翻宿主日志。

在 App 里使用界面

插件带客户端半(client.js),装好并重启宿主后:

- 设置页:设置 → 「定时脚本」,列出全部任务:名称、id、cron 或 everySeconds、启用状态、上次运行时间 / 退出码 / 耗时;每条任务有「立即运行一次」和「查看最近日志」。
- 侧边栏面板:侧边栏出现一个时钟图标,点开占据中央面板,内容与设置页一致。
- 打开面板期间每 5 秒自动刷新;「立即运行一次」是前台触发,运行结果由下次刷新带回。

界面文案走 Client locale(client.js 里的 zh/en 字典,ctx.locale.register); locale/.json 是包级元数据(插件清单里的标题/描述),两处都提供中文与英文。
样式只用宿主主题 token(--dsw-alias-、--dsw-radius-*),不硬编码颜色。

数据通道与操作

同一份操作实现只写一次(index.js 里的 operations.status/run/log),两个调用方共用:

| 调用方 | 入口 |
| App 界面 | POST /api/noagent.rpc,body { op: "status" \| "run" \| "log", id?, wait?, limitBytes? } |
| agent 工具 | noagent_status / noagent_run / noagent_log |

Web 入口用 ctx.connection.fetch.register 注册精确 Fetch 路由:Connection 的 /api 前缀处理器先做 Host/Origin 围栏与签名 Cookie 鉴权(未鉴权 401、跨站 403),再把请求交给这条路由,因此插件不自己实现鉴权。浏览器侧用相对路径 api/noagent.rpc 请求,带 mount 前缀的部署同样可用(与内置 dsh-session-log-export 的写法一致)。

边界(明确不做)

- 不补跑:DSH 没运行期间错过的时点不会补。
- 不需要模型:插件不 import 任何 LLM 服务;任务失败也不会叫醒 agent。
- 不碰投递:结果只落盘。要推到手机/飞书,由一个 agent 型任务或投递脚本读 runs.jsonl 转发。

测试

node --test test/cron.test.js test/host.test.js test/client.test.js
cron.test.js 9 个:cron 解析 / 时区 / apply 执行写状态写日志 host.test.js 5 个:状态合并、日志读取、路由与工具共用同一份实现 client.test.js 4 个:ModuleLoader 协议、槽位注册、字典、组件树可渲染

覆盖:cron 解析(步长/区间/列表/月份周缩写/周日归一/dom-dow 或语义)、时区换算、任务校验、以及一次 apply 的完整执行→状态→日志写入;另加状态合并、日志读取、以及「路由与工具共用同一份操作实现」的用例。
预览分享卡片长什么样 ↓monkey-sking/dsh-noagent-schedule
分享 · DeepSeek Harness Hub
monkey-sking/dsh-noagent-schedule

按 cron 定时直接运行脚本,不唤醒模型也不消耗 token

这是你的仓库?认领条目

回到顶部