DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
人写正文,AI 理账 —— macOS 原生(SwiftUI)小说写作软件。12 项 AI 能力全部只出提案:创作法典 / 骨架闸门 / 全书连贯性审查与埋点修复 / 大纲实时对账 / 去AI味 25 项检测 / 一键成章。
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗AI 写草稿,人做定稿 —— macOS 原生(SwiftUI)小说写作软件。核心是人机协同:AI 可以搭骨架、写整章草稿、记台账、查矛盾、给建议;所有 AI 正文都以提案形态存在,作者审查、修改、采纳后才进入 prose.md——可以一键写完一章,但不能绕过人的裁决。
完整设计文档见 ARCHITECTURE.md。
官网:https://asdshuaishuai.github.io/zhibi/ —— 源码在本仓库 docs/(单文件静态页,无构建步骤),由 GitHub Pages 从 main 的 /docs 发布。
chat-archive-<时间>.md)后清空;应用内「查看归档」可回看、恢复到当前对话、在访达中定位或删除,支持按文件名/日期/大小筛选与多选批量清理;归档同时写 Markdown 与可恢复 JSON,导出/归档会附带本次对话登记过的提案快照。轨迹窗把每次 AI 运行的完整链路像聊天一样展开——上下文与工具面准备、每次工具调用与结果回灌、流式输出实时滚动、明确的「完成 / 失败」收尾;跨会话保留最近 200 条;search_knowledge 找回长程细节,回答会标来源;铁律不是「AI 不能写正文」,而是「AI 的一切产出(含整章草稿)只能以提案形态存在,作者采纳前不落盘,采纳时自动快照可回滚」。
| AI 可以(会改书的产出全部以提案交付) | AI 仍然不可以 |
|---|---|
| 构建核心大纲 / 事件时间线(作者真相 | 读者已知双栏) | ❌ 提案未经作者采纳就改任何台账、大纲或正文 |
| 盘点伏笔 / 埋点登记(F 编号、五档节奏、种下原文) | ❌ 替作者做正典决定 |
| 搭章节骨架(场景层节拍 + 章尾钩子 + 硬交付 + 伏笔触点合同) | ❌ 在作者拒绝后保留数据 |
| 规划卷级弧光(多章路标 + 伏笔收支 + 期待感账) | ❌ 声称"已完成/已保存/已采纳"——以落盘为准 |
| 一键写完整章草稿 / 按意见修订草稿(草稿提案,采纳才进正文) | ❌ 绕过提案与审查直接写 prose.md |
| 在右侧对话里查书、找伏笔、给下一步建议,必要时提交整章草稿提案 | ❌ 改正文而不留快照 |
| 提取记忆 / 旁路记录(写完点"让 AI 记一笔") | ❌ 评风格好坏来代替作者判断(审校只查客观错误) |
| 一键验证 / 全书连贯性审查(只查客观错误,只报告不代改) | |
| 埋点修复方案(只改台账与动作日志,不动正文) | |
| 大纲同步建议(只提案,采纳才写回大纲) | |
| 去AI味(逐处建议,逐条采纳,采纳前自动快照) | |
| 一键召回(上下文包 + 写作备忘) | |
| 编辑对话(查书、找伏笔、给下一步建议,引用资料库来源;可提交草稿/骨架/验证/档案卡/大纲更新提案) | ❌ 把聊天回答当成已落盘的修改 |
一切 AI 产出进入 提案收件箱,由作者接受 / 拒绝;骨架、伏笔、设定等采纳后仍可在对应台账继续修改。完成与否以落盘为准,不信模型口头声明(InkOS 纪律)。
按 fx (libfx) 的「模型提议、宿主裁决」模型设计,Swift 侧用 OpenAgentSDK 承载 agent 会话:
propose_* + 只读查询,见 NovelTools)、凭据(macOS 钥匙串)。get_latest_draft 让对话能拿到最新草稿全文与作者历次意见,get_chapter_skeleton 能读任意章骨架,再提交完整修订版;也能用 propose_skeleton 搭/改选中章骨架、propose_validation 提交本章客观错误、propose_dossier 写长程记忆卡、propose_outline_updates 提议大纲更新。回答里的【第12章】会被对齐到「第12章《雾隐》」这类完整出处;对话历史随项目保存在 chat.json,每条消息即时落盘,下次打开继续聊。search_knowledge 是横跨正文/章摘要/设定/档案卡/伏笔/事实/时间线/故事线/阶段的只读工具;对话预取 6 条资料再回答(按上下文预算自动收缩历史与资料),搭骨架/草稿/审校/对账也都能主动查。embeddingModel 后,资料库用 OpenAI 兼容 /embeddings 做远程向量重排,失败自动回退,不阻塞回答。远程请求按 16 条分批,向量按「端点 + 模型 + 原文」在进程内缓存;资料库页会明确显示本次是远程成功还是已回退本地。chat.json 重放,checkpoints/ 仍为预留目录。embeddingModel 后,走同 Base URL / Key 的 OpenAI 兼容 /embeddings 做远程重排,按 16 条分批、按原文缓存,超时或失败自动回退并在资料库页标出。search_knowledge 工具对搭骨架、写草稿、修订、审校、连贯性审查、大纲对账开放,让 AI 在长书里找回具体名词与原文。cd zhibi
xcodegen generate
xcodebuild -scheme ZhiBi -configuration Debug build # App(执笔.app)
xcodebuild -scheme ZhiBiCli -configuration Debug build # 无头自检 CLI
xcodegen generate会重写工程文件,顺带清掉 swift-mcp / swift-json-schema 的宏审批状态,之后构建会失败在Macro "MCPMacros" must be enabled before it can be used。加-skipMacroValidation即可(或在 Xcode 里点一次允许)。
运行 App:从 Xcode 打开运行,或 open 构建产物 执笔.app。
Icon 由 CoreGraphics 程序化生成(Scripts/make_icon.swift),设计即产品隐喻:宣纸底 · 圆点骨架导轨与关键节点(AI 搭骨架)· 实心墨迹笔画(作者定稿的正文)· 朱砂「执」印。
swift Scripts/make_icon.swift ZhiBi/Sources/Assets.xcassets/AppIcon.appiconset # 重新生成 1024 母版
# 再用 sips 派生 16~1024 各尺寸(见 appiconset 内现有文件),xcodebuild 重编译即可
母版预览:icon_preview.png。
ZhiBiCli --real-workspace <你的小说目录> # 只读扫描真实工作区验证导入
449 项自检全通过,覆盖:字数统计、AI味 lint 分级(25 项检测器)、章节名解析、容错 JSON、项目存取回环(含骨架/状态跨重启不丢)、快照回滚、伏笔合同验证、跨章重复检测、上下文造包、提案接受入库、归档清空后不复活、坏 JSON 隔离、写签名缓存核对磁盘、合并稿 / oh-story / 分卷导出(含档案卡、对账状态与场景层字段往返)、回退解析器、真实工作区识别,以及:老 JSON 向后兼容(project/骨架/时间线/伏笔/事实/设定/故事线/章节 meta/提案缺新键也必须解得出来,否则用户既有数据会整份丢失)、创作法典流派匹配与钩子度量、去AI味新检测器与「干净文本不误伤」、骨架闸门(合格/烂骨架/分身两地/钩子轮换)、全书连贯性 20 类检查的正反例、埋点修复落库与幂等、大纲对账(已发生/偏移/未发生/排期未到/断线/待收束)的正反例、工具面 schema 合法性与「每个能力都有生产者」、资料库十类来源索引 / 具体名词召回 / 无关词不硬凑 / 哈希向量归一化 / 同长度改字也会重建索引 / 回答短引用对齐完整出处 / 引用可定位到章节或台账 / 命中片段能在原文里定位 / 命中可交给 AI 续问 / 对话记录即时落盘与清空不复活 / 撤掉回复即时落盘 / 对话可导出 Markdown 与归档后清空 / 归档可列出回读、筛选、批量安全删除与恢复当前对话 / 导出附带提案快照 / 旧对话缺提案字段仍能解 / 对话读取最新草稿与作者意见 / 任意章骨架与场景层读取 / 对话按选中章提交草稿与骨架。
python3 Scripts/mock_model_server.py 8799 /tmp/zbdump & # 起 mock 模型端点
ZhiBiCli --mock-agent http://127.0.0.1:8799/v1 /tmp/zbdump # 122 项,退出码 0 = 通过
其余自检都是纯函数与内存 store,唯独「宿主把工具面交给模型 → 模型回调工具 → 宿主把 payload 落成提案」这条主链跑不到。而这条链上有个静默失败点:ProposalToolBridge 在 parametersJSON 解析不了时会降级成空 schema,模型拿不到字段定义、产出必然不合格,宿主却一声不响。mock 端点让它变成一条可重复的确定性回归,验证:
/embeddings 端点被真实调用,远程向量重排后仍能召回「断刀」;重复文本只请求一次;40 条输入分批请求后仍按输入顺序返回;远程不可达时回退本地并标记;isBuilding 复位,索引确实产出片段;⚠️ 不要并发跑多个
ZhiBiCli。 它们会抢同一个导出路径~/Documents/执笔导出, 全部卡死在Disk.write → FileManager.replaceItemAt(sample抓栈停在_URLReplaceObject → CFURLCopyResourcePropertyForKey), 看起来很像 iCloud/FileProvider 故障,其实清掉僵尸进程(pkill -9 -f ZhiBiCli)后单独跑 60 秒内就完成。 注意 stdout 重定向到文件时是块缓冲的,进程没结束就看不到任何 ✅,别误以为它挂了。
<书名>.zhibi/
├── project.json # 书名/题材/作者意图/当前焦点/文风主权
├── canon/ # 设定(三态确定度:已定/暂定/有意留白)
├── outline.json # 故事线 L 编号 + 事件 E 编号(作者真相|读者已知)+ 阶段
├── clues.json # 伏笔台账
├── memory.json # 双时态事实三元组 + 人物别名
├── dossiers.json # 长程记忆:每章档案卡(场景/人物/推进/拐点/钩子/物件)
├── chat.json # 作者与 AI 的对话记录(项目级,最近 200 条)
├── cover.svg # AI 封面(作者采用后落盘)
├── proposals/inbox.json # AI 提案收件箱
├── proposals/archive.json # 已裁决提案归档(清空后不复活)
└── chapters/ch-NNN/
├── meta.json # 状态/骨架/摘要/随手记
├── prose.md # 正文(权威,纯 markdown,随时可带走)
└── snapshots/ # 版本快照(去AI味采纳前自动创建,可回滚)
导入:一等支持 oh-story 目录规范(大纲/ 设定/ 正文/ 追踪/_tracking-state.json),含容错解析(字符串内裸换行、未闭合引号可自动修复);通用 markdown/txt 按 第N章 启发式分类,逐项确认后入库。
导出:① 合并稿单文件;② oh-story 目录回写(大纲/设定/正文/追踪 JSON + 伏笔.md + 上下文.md),与社区工作流互通;③ 与 AI 的对话记录导出 Markdown 或归档到作品目录,并在应用内回看归档。
三层(综合 SkillHub Humanizer v4.1 / oh-story 7 Gate / InkOS ai-tells / sepia 三 pass + 网文结构信号):
「吸收经典网文与传统文学的创作风格、哲学、理念」不是往 prompt 里塞一段鸡汤,而是沉淀成可被代码消费的知识:
CraftCodex.hookConcreteness / classifyHook / tensionDensity 被 AILint 与 SkeletonGate 直接调用,零 LLM 成本。未规划 → [AI 搭骨架·提案] → 骨架已定(人批准) → 写作中(人写,可按拍填草稿再合入)
→ 初稿 → [一键验证] → 已验证 → [去AI味·逐条采纳] → 已润色 → 定稿
↘ [让 AI 记一笔] → 记忆/伏笔提案 → 人确认入库
author_intent/current_focus 控制文档Apache License 2.0 —— 全文见 LICENSE(与 apache.org 原文逐字节一致,未作修改)。
Copyright 2026 kelthas
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
选它的理由(对一个人写出来的工具最合适的三点):可闭源商用(不像 AGPL 那样强制衍生品同样开源)、
带显式专利授权(第 3 条,避免日后被专利反咬)、改动必须注明(第 4 条,fork 出去的必须说明改了什么,保住上游署名)。
衍生作品保留 LICENSE 与 NOTICE、并在改动处注明即可。