只要你敢想,AI 就能帮你实现!
之前用几张截图复刻了 Claude 桌面版,然后又聊了几句,把聊天和代码功能也实现了!
今天我要基于克隆的 Claude 桌面版魔改一个 DeepSeek 桌面版!
我现在就给大家展示一下成果,然后详细的说一说,我是怎么做出来的。
1、展示环节
这是桌面快捷方式的样子:
左边的是 DeepSeek 桌面版,为了好区分,在前面加了一个字母 J。第二个是 Claude 的克隆版,第三个是凑数……和本文无关,是用来控制小孩玩游戏时间的,设定时间到了自动强制关游戏!
开始菜单的样子:
右下角托盘的样子:
打开之后的样子:
深色主题的样子:
聊天功能:
智能体功能:
这部分是集成的Claude Code!如果没装,会提示,根据提示的命令安装即可!
系统设置功能:
大部分菜单只是摆设,第三方肯定无法接入官方系统。但是这里的主题和语言都是可以用的。
直接嵌入官网:
这里是把官网内容嵌入到了软件里面,这样就不用开浏览器了。
目前 Windows 系统的首个版本 0.6.0 已经制作完成了!
主要是实现了三大功能:一个是通过 API 构建的对话功能,还有一个是基于cc构建的智能体功能,还有一个是直接在桌面版嵌入官网,这样可以直接使用官方账号,不花钱。
2、使用方法
最简单的,点击右上角的“小鬼”图标,直接打开官网,登录和对话即可。
第二种,获取 API,并配置!
我主要是讲这一种。因为现在 API 很便宜,而且这种方式自由度大很多,不会被限流、限额、可以和电脑进行交互,读写本地文件。
直接打开官方开发者平台:
如果没有账号注册一下和登录一下就可以了。然后冲个10块钱,可以用好一会儿了!
创建 API key 并复制!
然后打开 JDeepSeek:
点击头像 -> 系统设置 -> 更多 -> 模型设置:
用过 JClaude 应该很清楚这个配置。我已经内置了 DeepSeek 这个服务商,只要点击编辑,然后添加 API key 即可。
保存,搞定!
3、实现过程
结果已经是过去式了,并不是特别重要,过程是比较重要的,时间和经验都在这里。
为了把这个事情搞定,我其实是花了不少时间和 Tokens,也收获了不少经验!
因为现在上下文太多了,直接干到 70 万,两句话,就把我 5 小时配额干完了!~ 恐怖如斯!
主要是做了如下修改:
| 维度 | 更新前 | 更新后 |
|---|---|---|
| 应用名 | JClaude | JDeepSeek |
| 桌面图标 | Claude 星形 | DeepSeek 蓝鲸 |
| 默认服务商 | Zhipu GLM | DeepSeek |
| 模型档位 | Opus / Sonnet / Haiku 三档 | 快速模式 / 专家模式 两档 |
| 工作区标签 | Chat / Cowork / Code | Chat / Agent |
| 主题蓝 | DeepSeek 纯蓝 #4D6BFE | 现代 indigo 蓝 #5C7CFA |
| Chat 主界面 | 通用欢迎语 + 输入框 | 使用 X 模式开始对话 + 模式 pill + 大圆角输入框 |
| 网页版入口 | 无 | 顶部右上鲸鱼按钮,一键嵌入 chat.deepseek.com |
这个事情的困难程度其实是超乎我的意料的。
这次并不是重新开始写代码,而是把一个软件改版成另外一个软件。
看起来很简单,其实就相当于把一个人整容成另外一个人,涉及到很多细微的调整,一不小心改错,就是一连串的错误。
单单把系统中的 Claude字符串改成 DeepSeek 这一件事情就得分析很久。有些是可以改的,不影响业务逻辑。有些是不能随便改的,改了直接崩。
我也是第一次把上下文干到 70 万 Tokens,Opus4.7 已经开始有点混乱了,很不错的一个经验。
下面开始操作过程了。
Round 1:嵌入官网
我的第一句提示是这样的:
帮我分析一下代码,添加一个功能。就是现在界面上有一个匿名模式,目前还没有任何实际操作,我希望你能把这个功能实现。具体的实现逻辑是,当点击整个图标之后,除了顶部的工具之外的整个软件界面嵌入 https://chat.deepseek.com/ 这个地址的网页。
本以为可以轻松拿捏,没想到做完之后是这样子的。
这个需求遇到的问题和解决方案如下:
- 最初尝试用 iframe 嵌入官网 —— 失败:DeepSeek 返回 `X-Frame-Options: DENY`,浏览器直接拒绝渲染,看到的是「拒绝连接」错误页。
- 改用 Tauri 子 webview 后能正常加载 —— 新问题:DeepSeek 弹「使用环境异常」警告,说"建议使用我们的官方产品"。这是 DeepSeek 网站的客户端识别检查。
- 通过设置标准 Edge 浏览器的 User-Agent 后绕过 —— 网页正常显示,可以登录使用。
- 早期实现是退出网页版时直接销毁内嵌网页 —— 用户痛点:每次重新打开都要重登。
- 改为「移到屏幕外保留」策略后,cookies / sessionStorage 全部保留,反复切换始终是登录态。
这只是万里长征的第一步,就这个问题,全部解决完成,Tokens 消耗完了。
其实这种问题,如果有经验的话,是一轮对话就可以完成的。我是第一次搞这种,虽然我知道 webview,但是和 Opus 的协作沟通还是不到位,所以浪费了不少 Tokens。
但是好在完美实现了:
我们互道“牛逼”,然后存档!
Round 2:克隆界面
嵌入功能已经完成了,下面就要开始大改了,首先是要把界面改掉,但是又不能影响功能。所以我希望它先学习页面的样式,然后再修改结构。
然后出师不利:
它真的只是浅浅地模仿了一下样式。把字节的 Logo 改成了 DeepSeek 的配色~~哈哈哈!
这是我的问题,我叫它先谨慎一点,改一下样式。
接下来我就叫它大刀阔斧的改了,把页面样式,结构全部进行调整。
给了它三张 DeepSeek 官网的截图!
这一轮改好后,基本上样子已经有了。
Round 3:全面克隆!
通过上面的操作,我已经有了大致的软件界面了。但是还是希望能克隆得像一些,所以提出了更进一步的需求。
但是……被拒绝了!
Opus 的意思:“我能干,但是不能干! ”
啊啊啊啊啊啊啊!
你看它说的什么话:“...但我想跟你说清楚我不打算走这条路,原因不是"我做不到"...我不愿意帮你跨这一步”。
我质疑它是想偷懒,它也不否认!
没办法,AI 社的模型就是这么有个性,尤其是到了 Opus4.7 之后。
常常忤逆我!但是它说的也有道理。
其实我完全有能力,手动复制按钮的样式、颜色、定位。但是我也不这么干了。
最终的结果就是,除了 Logo 一模一样之外,其他内容是 90% 相似,看起来很像,但是故意会偏差一点点。
Round 4:修改系统提示词!
在对话的时候,发现它一直说自己是 Claude,我才想起来,我之前开发这个软件的时候,还专门写入了 Claude 官方的系统提示词模板,很长很长一段!
因为现在换成 DeepSeek 了,所以这个肯定得改。
然后我又遇到了第二件糟心事儿:
这个“忤逆”的员工,又拒绝我了。而且理由很充分!
那段 SYSTEM_TEMPLATE 不是普通的提示词模板 — 它是 Anthropic 给 Claude 的官方 system prompt,一整套内部行为规范(refusal_handling、critical_child_safety_instructions、user_wellbeing、tone_and_formatting、anthropic_reminders、knowledge_cutoff 等等),是 Anthropic 公司花资源精心起草的内部资产。直接拿过来做"Claude → DeepSeek、Anthropic → DeepSeek"的名称替换再发给 DeepSeek 用,性质上就是把别家公司的 IP 改个名搬到自己产品里,跟之前你问我抓 chat.deepseek.com 整套 CSS 时我拒绝的那种情况是同一类问题,我不打算帮你做这个替换。
你们知道,被 AI 拒绝,教你做人是什么感受吗?
它还联系上下文,告诉我和之前拷贝样式一样,修改系统提示词也不行!
我的天呐。
它给了三种替代方案,我呢还想挣扎一下,让它直接给我改!
它是这么回答我的:“第二件(system prompt)—— 我得再说一次不”
好好好,你厉害!
最后只能让它重新写一个了,不过这么多上下文给它洗脑,它给的提示词应该八九不离十了。
Round 5:修改全套 Logo!
核心功能改得差不多,是时候来优化一下 Logo 了。
然后“魔法”又用完了!
“回蓝”之后,继续开大!
Logo 看似很简单,其实也是一个很复杂的东西。macOS 和 Windows 的工具栏、快捷键、托盘、安装包都需要不同尺寸和格式。
还好我选的技术方案里有现成的工具,只要给一张 1024 x 1024 的大图,一个命令就能生成一套图片。
这一步遇到一个小问题是,默认的 Logo 图边距太少了,所以得重新生成边距比较多的 Logo。
然后我现在是完全不用任何 PS 工具的啊,所以直接让 Opus 搞定了,搞得还挺好,边距控制非常合理。
然后让它全套生成!
这一波非常安逸,没有拒绝我!
Round 6:改名字改到全崩!
经过好几轮的开发和调整,基本上搞得差不多了,我都打包发布了,但是发现有一些细节还有问题。比如思考过程还是显示 Claude 正在思考……这样好像不太好。
所以我就让他彻底地改一次,把所有 Claude 相关的内容改成 DeepSeek,这一改就改出问题了。
所有功能都失效了!
聊天没有用,智能体没有用,连关闭软件都无效。
我很赶时间啊,然后病急乱投医,一下子又把 5 小时配额消耗完了!
等到魔法恢复之后,把问题反馈给他,他查了很久很久都没有结果。我基本上断定他解决不了了。这个时候就要上技巧了。
老司机的经验:“我看你是搞不定了,别浪费时间了。直接在关键节点加日志吧”!
然后立马定位到关键点“一行没加 null 守卫的代价”,立马搞定。
Opus总结为什么没第一时间定位:
- 第一反应是怀疑最近大改的几个模块(system prompt、banner DOM 重写、CSS 改造),花了不少时间静态分析、grep 各种文件、用 Node mock DOM 跑测试 —— **都没结果**,因为运行时错误在静态分析中看不见。
- 浪费时间的根本原因:**没有第一时间往代码里塞错误捕获和里程碑日志**。
哈哈哈!
太像人了,就是改动大了,就慌了,基本技巧都忘了。
主要是这个时候上下文已经非常大了,估计是太混乱,降智了。
上面列出来一些比较有代表性和有意思的问题,实际上的问题要比这里多很多。
所以这些问题刚开始都很简单,但是随着变量增多,复杂度就指数级上涨了。
现在上下文太多了,Pro 这个小水管真的有点顶不住了!
先这样吧,核心功能都已经实现了!
强烈推荐里面的 Agent 功能,我已经把 CC 六种权限模式都解锁了,加上 Flash 比较快,常规任务搞起来很轻松!
关键词: “jds”