本地小说写作与章节管理器 —— 面向创作者的离线桌面应用,数据完全存储在本地,无需联网、无账号、无云端依赖。
- 结构化管理:书籍(书名/作者/简介)→ 卷 → 章节的树形组织,支持章节在卷内/跨卷可视化拖拽排序
- 全文搜索:跨所有章节标题与正文检索关键词,带上下文摘要与快速跳转
- 回收站/软删除:卷与章节删除后进入回收站,支持恢复、彻底删除与一键清空
- 专注写作模式:一键隐藏侧边栏与设定面板,加宽正文、微增字号,Esc 快速退出
- 设定库:右侧可折叠面板,按人物/世界观等分类的卡片式设定管理,即时编辑、防抖保存
- 看板(Board):卡片式情节/任务看板
- 软木板(Corkboard):章节卡片概览
- 关系图谱(Graph):人物/设定关系网状视图
- 时间线(Timeline):故事事件时间轴
- 情节线索(Threads):多线叙事线索追踪
- 敏感词检测:正文敏感词扫描与定位
- 命令面板与自定义快捷键:键盘优先的高效操作
- 对接本地 llama.cpp
llama-server,完全离线推理,隐私零外泄 - 流式输出、思考链(Chain-of-Thought)折叠展示、生成可随时中断
- 自主代理循环:单次响应内多轮工具调用,可读取/修改编辑器内容并实时同步
- 划选文字悬浮操作、工序 Diff 对比、上下文预算实时显示
| 层 | 技术 |
|---|---|
| 桌面封装 | Electron |
| 前端框架 | Vue 3(Composition API)+ Pinia |
| 构建工具 | Vite + vite-plugin-electron |
| 本地存储 | better-sqlite3(章节数据)+ localStorage(界面偏好) |
项目坚持零/低第三方依赖原则:编辑器、Markdown 渲染、Diff、拖拽等能力均为自研实现,不引入额外运行时依赖。
- Node.js 18+
- Windows / macOS / Linux
# 安装依赖(postinstall 会自动为 Electron 重编译 better-sqlite3)
npm install
# 开发模式(Vite + Electron 热更新)
npm run dev
# 生产构建
npm run buildAI 功能依赖本地运行的 llama-server,生成参数全部由启动命令控制:
llama-server -m <你的模型.gguf> --port 8080 -c 8192启动后在应用内 AI 面板中即可对话与调用写作工具;不启动服务不影响其他功能使用。
├── electron/ # Electron 主进程
│ ├── main.js # 窗口与生命周期
│ ├── preload.js # 预加载桥接
│ └── db.js # better-sqlite3 数据层
├── src/
│ ├── components/ # 面板组件(编辑器/章节树/AI/看板/图谱/时间线…)
│ ├── stores/ # Pinia 状态(novel 书籍数据 / ai 对话状态)
│ ├── styles/ # 全局样式(护眼米灰主题)
│ └── shortcuts.js # 自定义快捷键系统
├── index.html
└── vite.config.js
见 LICENSE。