按 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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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 的完整执行→状态→日志写入;另加状态合并、日志读取、以及「路由与工具共用同一份操作实现」的用例。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
monkey-sking/dsh-noagent-schedule
按 cron 定时直接运行脚本,不唤醒模型也不消耗 token
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目