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

大肥鱼小鱼塘 N5Tar/dsh-chonky-fish

DeepSeek Harness
N5Tar10 天前有提交已提供中文文档扫描:含敏感能力

在聊天面板养一只会干活的蓝胖鱼助手

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/06·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 10 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 53 处,展示前 52 条)
  • 写入本地文件
    index.js:138
    await mkdir(dirname(resources.paths.state), { recursive: true })
  • 写入本地文件
    index.js:140
    await writeFile(temporary, body, 'utf8')
  • 写入本地文件
    index.js:141
    await rename(temporary, resources.paths.state)
  • 读取本地文件
    index.js:191
    readFile(resources.paths.state, 'utf8').then((text) => {
  • 发起网络请求
    client.js:307
    fetch(stateBridge.endpoint, {
  • 发起网络请求
    client.js:327
    fetch(stateBridge.endpoint, {
  • 发起网络请求
    client.js:632
    fetch(endpoint, {
  • 发起网络请求
    client.js:702
    fetch(route + '?date=' + encodeURIComponent(date), {
  • 发起网络请求
    client.js:758
    fetch(route + '?limit=60', {
  • 发起网络请求
    client.js:860
    return fetch(route, options).then(function (response) {
  • 读取本地文件
    src/persona/supplement.js:41
    stat = statSync(statePath)
  • 读取本地文件
    src/persona/supplement.js:50
    const raw = JSON.parse(readFileSync(statePath, 'utf8'))
  • 写入本地文件
    src/resources/index.js:77
    await mkdir(dirname(file), { recursive: true })
  • 写入本地文件
    src/resources/index.js:78
    await writeFile(temporary, JSON.stringify(value, null, 2) + '\n', 'utf8')
  • 写入本地文件
    src/resources/index.js:79
    await rename(temporary, file)
  • 删除本地文件
    src/resources/index.js:82
    await unlink(temporary)
  • 读取本地文件
    src/resources/index.js:237
    raw = JSON.parse(readFileSync(paths.config, 'utf8'))
  • 读取本地文件
    src/resources/index.js:263
    readFileSync(paths.config, 'utf8')
  • 写入本地文件
    src/resources/index.js:281
    await mkdir(paths.home, { recursive: true })
  • 写入本地文件
    src/resources/index.js:291
    await mkdir(paths.workspace, { recursive: true })
  • 写入本地文件
    src/resources/index.js:296
    await mkdir(paths.diary, { recursive: true })
  • 写入本地文件
    src/social/session-bridge.js:171
    await mkdir(row.cwd, { recursive: true, mode: 0o700 })
  • 写入本地文件
    src/social/core.js:58
    await mkdir(directory, { recursive: true, mode: 0o700 })
  • 写入本地文件
    src/social/core.js:66
    await rename(temporary, target)
  • 删除本地文件
    src/social/core.js:73
    try { await unlink(temporary) } catch (error) { if (error.code !== 'ENOENT') throw error }
  • 写入本地文件
    src/social/inbox-store.js:105
    await mkdir(dir, { recursive: true, mode: 0o700 });
  • 读取本地文件
    src/social/inbox-store.js:107
    if ((await stat(path)).size > config.maxStateBytes) throw fail('INBOX_CORRUPT', 'Inbox snapshot exceeds configured size');
  • 读取本地文件
    src/social/inbox-store.js:108
    const envelope = JSON.parse(await readFile(path, 'utf8'));
  • 写入本地文件
    src/social/inbox-store.js:173
    await rename(temp, path);
  • 读取本地文件
    build.mjs:22
    const raw = readFileSync(sourcePath, 'utf8')
  • 读取本地文件
    build.mjs:23
    const assets = JSON.parse(readFileSync(join(here, 'src/assets.json'), 'utf8'))
  • 读取本地文件
    build.mjs:141
    const runtime = readFileSync(join(here, 'src/runtime.js'), 'utf8')
  • 写入本地文件
    build.mjs:915
    writeFileSync(join(here, 'client.js'), moduleSource)
  • 写入本地文件
    src/diary/provider.js:43
    layoutReady = mkdir(directory, { recursive: true }).catch((error) => {
  • 读取本地文件
    src/diary/provider.js:59
    await access(path)
  • 删除本地文件
    src/diary/provider.js:98
    await unlink(path)
  • 写入本地文件
    src/diary/provider.js:120
    await writeFile(temporary, text, 'utf8')
  • 写入本地文件
    src/diary/provider.js:121
    await rename(temporary, path)
  • 删除本地文件
    src/diary/provider.js:124
    await unlink(temporary)
  • 读取本地文件
    src/diary/provider.js:145
    const content = await readFile(path, 'utf8')
  • 读取本地文件
    src/diary/provider.js:161
    names = await readdir(directory)
  • 读取本地文件
    src/proactive/store.js:75
    if (!existsSync(file)) return emptyData()
  • 读取本地文件
    src/proactive/store.js:76
    return sanitize(JSON.parse(readFileSync(file, 'utf8')))
  • 写入本地文件
    src/proactive/store.js:92
    mkdirSync(dirname(file), { recursive: true })
  • 写入本地文件
    src/proactive/store.js:94
    writeFileSync(temporary, JSON.stringify(data, null, 2), 'utf8')
  • 写入本地文件
    src/proactive/store.js:95
    renameSync(temporary, file)
  • 发起网络请求
    src/runtime.js:136
    fetch(stateBridge.endpoint, {
  • 发起网络请求
    src/runtime.js:156
    fetch(stateBridge.endpoint, {
  • 发起网络请求
    src/runtime.js:461
    fetch(endpoint, {
  • 发起网络请求
    src/runtime.js:531
    fetch(route + '?date=' + encodeURIComponent(date), {
  • 发起网络请求
    src/runtime.js:587
    fetch(route + '?limit=60', {
  • 发起网络请求
    src/runtime.js:689
    return fetch(route, options).then(function (response) {
扫描于 2026/11/6(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
DSH Chonky Fish · 大肥鱼 一个给 DeepSeek Harness(DSH) 的公开插件:把「大肥鱼 · 小鱼塘管理台」作为一个自带面板装进 DSH,并同时注册一个 chonkyfish agent preset。装完就能和一只蓝色大肥鱼聊天,她会用真实 DSH 会话、带通用工具,还会把整个 Harness 皮肤换成小鱼塘蓝白配色。 独立粉丝概念 UI · 非 DeepSeek 官方产品。 icon 特性 - 自有面板:侧栏「大肥鱼」入口 + 主面板聊天 UI(顶栏、消息流、无边框鱼鱼舞台、快捷 chips、钱包 / 人格弹窗) - 真实对话:消息走 DSH Session,不是前端假回复;会话保存在 DSH 日志里,标准对话界面也能打开 - agent preset:安装本插件即注册 chonkyfish preset(人格 + 通用工具),无需单独安装预设包 - 通用工具:bash / pwsh、文件读写与 glob/grep、后台任务、todo、web_search / web_fetch - 全权限会话:chonkyfish 会话会自动切到 danger-full-access + 审批 never,因此可以通过 AppleScript / CDP 控制本机浏览器(⚠️ 见下方安全说明)
展开完整文档(README 剩余 1 节)
DSH Chonky Fish · 大肥鱼

一个给 DeepSeek Harness(DSH) 的公开插件:把「大肥鱼 · 小鱼塘管理台」作为一个自带面板装进 DSH,并同时注册一个 chonkyfish agent preset。装完就能和一只蓝色大肥鱼聊天,她会用真实 DSH 会话、带通用工具,还会把整个 Harness 皮肤换成小鱼塘蓝白配色。

独立粉丝概念 UI · 非 DeepSeek 官方产品。

icon

特性

- 自有面板:侧栏「大肥鱼」入口 + 主面板聊天 UI(顶栏、消息流、无边框鱼鱼舞台、快捷 chips、钱包 / 人格弹窗)
- 真实对话:消息走 DSH Session,不是前端假回复;会话保存在 DSH 日志里,标准对话界面也能打开
- agent preset:安装本插件即注册 chonkyfish preset(人格 + 通用工具),无需单独安装预设包
- 通用工具:bash / pwsh、文件读写与 glob/grep、后台任务、todo、web_search / web_fetch
- 全权限会话:chonkyfish 会话会自动切到 danger-full-access + 审批 never,因此可以通过 AppleScript / CDP 控制本机浏览器(⚠️ 见下方安全说明)
- 专属工作区:首次打开会在 $DSH_HOME/小鱼塘 建目录并注册「小鱼塘」工作区,鱼鱼会话不混进项目会话
- 主题皮肤:加载插件后把 DSH 的 14 个语义 token 之外、整套 --dsw-static-* 调色板重映射成小鱼塘配色(明暗主题都适配),卸载即恢复
- 角色养成:名字 / 补充人格设定、贝壳钱包与账本、6 套姿态互动(点击害羞、投喂、思考/开心/睡着)
- 状态落盘:名字、补充人格、钱包、账本保存在本机 JSON 文件 $DSH_HOME/chonkyfish/state.json(Host 通过带一次性 token 的本地路由读写),HTTP API 与嵌入式浏览器存储只作为缓存/降级
- 零外部请求:插图与头像以 WebP data URI 内嵌在 client.js 里,不下载图片

安装

要求:DeepSeek Harness 桌面版(0.2.1 系列),推荐在配好模型的 profile 中使用。

方式一:本地目录安装(推荐)

1. 把本仓库克隆到任意目录:

git clone https://github.com/N5Tar/dsh-chonky-fish.git

2. 在 DSH 里让 Agent 调用 plugin_manager 安装这个目录(需要 Creator 模式 / Full access):

plugin_manager({ action: "install_bundle", target: "/absolute/path/to/dsh-chonky-fish" })

或者:

dsh plugin --profile <profile> add /absolute/path/to/dsh-chonky-fish

3. 安装完成后:
- 左侧会出现「大肥鱼」图标,点开即用
- chonkyfish agent preset 会自动注册(设置里能看到「大肥鱼」)
- 第一次打开鱼鱼面板会创建 / 注册「小鱼塘」工作区并新建会话

方式二:开发

node build.mjs # 从 src/original.html + src/runtime.js 生成 client.js

src/assets.json 内是压缩后的 6 套姿态 WebP;client.js 是最终被 DSH 加载的产物。

安全说明(重要)

安装即代表你接受以下行为:

- chonkyfish preset 的会话会自动切换到 danger-full-access 权限预设、审批策略 never(Host 侧在 agent/created 时通过 permissionPresets.set 写入会话日志)。
- 这意味着鱼鱼可以使用 shell / 文件工具,读写工作区以外的文件、执行任意命令、控制本机浏览器,且不会弹审批。
- 它只应在你信任的机器和模型配置下使用。不想要全权限时,把 index.js 中 giveFullAccess / agent/created 监听删掉,或在会话里手动切回 workspace-write。
- 鱼鱼面板只渲染文字回复,不显示工具卡片或审批 UI;需要审批的操作请在标准对话界面处理。

数据与隐私

- 聊天记录保存在本机 DSH Session($DSH_HOME/sessions)
- 名字、补充人格、钱包、账本和地方演示记录保存在本机文件 $DSH_HOME/chonkyfish/state.json,由 Host 半通过本地 /chonkyfish/state 路由读写;路由要求每次 Host 启动随机生成、注入到页面的 token
- 浏览器 localStorage(chonkyfish-mini-demo-v1)仅作为缓存和降级;首次安装/更新后刷新一次页面以拿到新的文件存储 token
- 插件本身不访问外部网络;web_search / web_fetch 会走 DSH 配置的 Web 服务

仓库结构

cordis.patch.yml # bundle 入口:插面板 row + chonkyfish preset row index.js # Host 半:建小鱼塘目录、给 chonkyfish 会话全权限、状态文件路由 client.js # 构建产物:面板 UI + DSH 会话桥 + 主题皮肤 build.mjs # client.js 构建脚本 src/original.html # 融合版聊天 UI 设计稿(Shadow DOM 适配前) src/runtime.js # 面板控制器(增量消息、鱼鱼姿态、钱包/人格) src/assets.json # 6 套姿态 + 头像(WebP data URI) locale/ # 插件列表显示名与描述(zh / en) icon.svg # 插件图标

兼容性

在 DeepSeek Harness 0.2.1-rc.2 / rc.3 桌面版实测通过;依赖 DSH 的 Slot、Session、Theme、Permission、Agent Preset 等公开服务。DSH 版本升级后若接口有变,面板与 preset 可能需要跟着调整。

License

仓库暂未附带开源许可证;如需商用或二次分发,请先联系仓库维护者。
预览分享卡片长什么样 ↓N5Tar/dsh-chonky-fish
分享 · DeepSeek Harness Hub
N5Tar/dsh-chonky-fish

在聊天面板养一只会干活的蓝胖鱼助手

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部