← Back to home@2huy4n

ProjectKaren

A DeepSeek Harness plugin that gives a roleplay character a clock: sleep/wake, greetings, idle actions, proactive small talk, and outing photos.

Stars
3
Language
JavaScript
Created
Sep 24, 2026
Updated
Oct 3, 2026
GitHub repo

Introduction

ProjectKaren

一个 DSH 插件:让角色会睡觉、会被吵醒、会自己找事做、也会先开口说话。

A DeepSeek Harness plugin that gives a roleplay character a clock: sleep / wake, greetings, idle actions, proactive small talk, and optional outing photos.

角色卡与世界观不由本插件提供——懒狗作者假设你的会话里已经有角色了。 本插件只负责「时间」这一维:什么时候睡、什么时候醒、醒来之后干什么。

功能

  • 睡眠 / 唤醒:角色也有自己的生活,会睡觉,会起床
  • 睡着:当TA睡着的时候,不要打扰TA哦
  • 吵醒:TA会因为你的“短信轰炸”醒来
  • 问候:早安、午安,还有晚安
  • 自由动作:当你不理TA的时候,TA会自己找点事做
  • 主动搭话:当你不理TA的时候,TA会主动找上来
  • 出游照片:当TA旅游到名胜景点,会给你拍照片
  • 静默指令:/mute 30 —— 你让TA闭嘴一段时间,TA就不再主动开口(你说话TA照常回)
  • 天气:填了城市,TA会知道外面什么天,问候和闲聊里会自然带上
  • 节日:节日当天有不一样的问候、话题与行动
  • 生日:支持填写你和TA的生日,
  • 中英双语:面板文案跟随 DSH 界面语言;注入给模型的提示词也跟随

安装

从 GitHub:

dsh plugin --profile <profile> add "git+https://github.com/2huy4n/ProjectKaren#v0.2.4"

安装后需要重启 DSH,在「设置 → ProjectKaren」里配置。

配置项

键含义
enabled总开关
defaultMuted新会话是否默认静音
sleepStart / sleepJitter入睡基准时刻 / 模糊 ±分钟
wakeStart / wakeJitter醒来基准时刻 / 模糊 ±分钟
greetEnabled / greetWindowMinutes早安+晚安开关 / 醒来后多久内还补早安
greetNoonEnabled / noonStart / noonJitterMinutes午安开关 / 中午基准 / 模糊 ±分钟
nightLeadMinutes睡前提前多少分钟道晚安
barrageCount / barrageWindowMinutes / barrageAwakeMinutes吵醒阈值 / 统计窗口 / 清醒时长
talkEnabled / talkIntervalMinutes / talkJitterMinutes / talkDailyMax主动搭话开关 / 间隔 / 模糊 / 每日上限
talkQuietStart / talkQuietEnd静默时段(留空 = 不设)
actionEnabled / actionIntervalMinutes / actionJitterMinutes / actionIdleMinutes自由动作开关 / 间隔 / 模糊 / 静默多久才动
actionDefaultMinutes / actionMinMinutes / actionMaxMinutes / actionDailyMax动作时长默认 / 最短 / 最长 / 每日上限
citySelf / cityUser角色所在城市 / 用户所在城市(留空 = 同城)
weatherEnabled天气开关
holidayEnabled节日开关
birthdayEnabled生日开关
birthdaySelf / birthdayUser角色生日 / 用户生日(MM-DD)
apiBase / apiPath / apiKey / model / size生图接口(OpenAI 兼容的 /images/generations)
photoPrompt没传 prompt 时用的默认画面描述
offsetMinutes时钟偏移(调试用,整体平移插件看到的"现在")

/mute 指令

让TA闭嘴一段时间。这个指令不会进模型,TA看不到。

你输入结果
/mute 30 · /mute 30m · /mute 30min · /mute 30 minutes · /mute 30分钟静默 30 分钟
/mute 2h · /mute 2 hours · /mute 2小时静默 2 小时
/mute 1d · /mute 1 day · /mute 1天静默 1 天
/mute 到22:00 · /mute until 22:00 · /mute 22:00到今晚 22:00(时刻已过则顺延到明天)
/mute off · /mute 取消解除静默

静默期间:不再主动搭话、不再问候、不再播报自由动作的收尾;你主动找TA时照常回复。 可设范围 1 分钟 ~ 7 天。不写单位按分钟算,大小写和多余空格都无所谓。

天气

在面板里填城市即可(中英文都认,如 杭州 / Hangzhou)。| 天气数据来自 Open-Meteo.com(CC BY 4.0), 免 API Key、无需注册。

  • 两个城市相同(或只填了一个):TA按「TA和你在同一个地方」来说天气。
  • 两个城市不同:TA会知道你不在TA那边,可以顺口提一句你那边的天气(比如提醒你带伞)。

天气每小时最多刷新一次,面板里有「立即刷新天气」。取不到天气时TA不会编造。

节日与生日

生日填 MM-DD,例如 05-20。

节日表内置 10 年(2026–2035),含公历节日(元旦 / 情人节 / 妇女节 / 愚人节 / 劳动节 / 儿童节 / 教师节 / 国庆 / 万圣节 / 平安夜 / 圣诞 / 跨年)与农历节日(春节 / 元宵 / 端午 / 七夕 / 中秋 / 重阳)。超出 2035 年会自动只认公历节日,面板会提示。

中英双语

  • 面板文案:跟随 DSH 的界面语言设置(客户端 ctx.locale)。
  • 注入给模型的提示词、工具描述、报错:同样跟随 DSH 界面语言;客户端还没打开过、没上报时,回退到系统语言。
  • 目前只支持中文和英文——DSH 宿主本身也只提供这两种(zh / en)。
  • 要改文案只改这两处:dsh/i18n/{zh,en}.json(宿主)与 client/client.js 里的两个字典对象。

状态与日志

配置与每会话状态存在 ~/.dsh/project-karen.json(DSH_HOME 优先)。 除配置与会话状态外,这个文件还保存照片引用、天气缓存和客户端上报的语言。 面板里有「活跃会话」列表(状态 / 入睡醒来时刻 / 正在做什么 / 今日次数 / 是否静默)和「最近动作」日志,可一键清空。

License

AGPL-3.0-or-later —— GNU Affero General Public License v3.0 或更高版本。

Copyright (C) 2026 2huy4n · 完整条文见 LICENSE