CharacterArc(弧光)不是"只会对话的 AI 壳子",而是一套围绕小说项目组织、章节写作与 AI 协作搭起来的桌面工作台。
|
项目数据保存在本机 SQLite,无需依赖在线服务,写作内容完全自己掌控。 |
每个项目独立维护设定、章节、知识库与 AI 运行记录,互不干扰。 |
|
大纲、灵感、知识和 AI 能力最终都围绕章节创作落地。 |
AI 调用可按任务自动匹配内置 / 项目级 Skill 包,并支持 Agent Loop 调度。 |
|
支持所有 OpenAI 兼容接口(DeepSeek、通义千问、智谱、Kimi、SiliconFlow、Ollama 等)和 Anthropic 协议(官方及中转站),只需选协议填地址即可。 |
|
📂 项目与资料
- 项目中心:创建、查看、编辑、删除小说项目
- 新建项目向导:填写题材、篇幅、简介,可调用 AI 生成首批设定与大纲
- 小说流程面板:按分卷维护流程文档,支持参考作品拆解
- 知识中心:沉淀项目事实、流程文档、参考资料与风格分析结果
- 技能系统:支持启用内置 Skill,也支持为单项目导入额外 Skill 包
🌍 世界观与结构
- 世界观 / 角色 / 组织 / 关系管理:维护小说基础设定资产
- 关系图谱:可视化角色关系与组织关联(Cytoscape)
- 剧情大纲:双栏交错时间线布局,按分卷组织剧情节点,支持拖拽排序与 AI 扩写
- 剧情线索:辅助维护伏笔、悬念和回收计划
✍️ 章节创作
- 三栏布局:目录树 + 正文编辑器 + AI 侧边栏
- 富文本编辑:基于 TipTap,支持搜索替换、格式化、选区动作
- 自动保存与历史版本:编辑后自动落盘,支持手动快照与回滚
- 阅读模式 / 专注模式:以更接近成稿阅读的方式检查节奏
- 字数目标:按章节设置目标字数并跟踪完成度
- 导出:章节正文可导出为
.txt/.docx,工作区可导出 JSON 快照
🤖 AI 辅助
- 章节润色、续写、改写、节奏调整
- 章节摘要生成、伏笔识别、后续剧情链生成
- AI 初稿流式生成、场景规划、章节分析
- 灵感发散包生成、参考作品深度拆解
- Agent Loop 模式:让模型按 Skill 索引与工具注册表循环思考
- 任务进度面板:统一查看正在运行与历史 AI 任务
🎨 封面工作台
- 面向平台(番茄、起点、晋江、知乎盐言、七猫、刺猬猫等)生成封面 Prompt
- 调用图像模型生成预览图,可在工作台中对比历史版本
下面这组截图按实际创作流程排列,基本覆盖了弧光从项目管理、拆书沉淀、Skill 配置到章节写作和封面生成的主要体验。
| 层 | 技术 |
|---|---|
| 框架 | Electron + Vue 3 + TypeScript |
| 状态管理 | Pinia |
| UI 组件库 | Naive UI |
| 构建工具 | electron-vite (Vite 7) |
| 富文本编辑 | TipTap |
| 持久化 | SQLite(主进程) |
| 关系图谱 | Cytoscape |
| AI SDK | Vercel AI SDK (@ai-sdk/openai, @ai-sdk/anthropic) |
| 文档解析 | mammoth (.docx)、marked (Markdown) |
- Node.js 18+
- pnpm 10+
- Windows(当前脚本默认 Windows 环境)
💡 macOS / Linux 开发需将
package.json中的set ELECTRON_RUN_AS_NODE=&&替换为cross-env ELECTRON_RUN_AS_NODE=,或直接删除该前缀。
# 安装依赖
pnpm install
# 启动开发环境(同时启动 Electron 主进程 + Vite 渲染进程)
pnpm run dev
# 类型检查 + 构建
pnpm run build
# 打包 Windows 安装程序
pnpm run dist首次进入应用后,在「设置」面板中填写:
📝 文本生成
|
🖼️ 图像生成(封面工作台使用)
|
点击展开完整目录树
CharacterArc/
├── electron/
│ ├── main/
│ │ ├── ai/ # AI 管线
│ │ │ ├── agent/ # Agent Loop、系统提示词、工具注册表
│ │ │ ├── prompts/ # 通用提示词片段
│ │ │ ├── runtime/ # 任务调度、上下文构建
│ │ │ ├── skills/ # Skill 加载与匹配
│ │ │ ├── tasks/ # 各 AI 任务 handler
│ │ │ └── transport/ # 模型传输层(OpenAI 兼容 / Anthropic / 图像)
│ │ ├── index.ts # 主进程入口
│ │ ├── register-main-ipc.ts # IPC 注册
│ │ ├── window-manager.ts # 窗口管理
│ │ ├── workspace-store.ts # SQLite 建表、迁移、快照读写
│ │ └── knowledge-retrieval.ts # 章节调用前的本地知识检索
│ ├── preload/ # window.characterArc 桥接层
│ └── shared/ # 主进程/渲染层共享类型
├── renderer/
│ └── src/
│ ├── components/ # 业务组件
│ │ ├── chapterWorkspace/ # 章节创作工作区
│ │ └── home/ # 首页/项目中心
│ ├── features/ # 功能模块(ai、chapters、cover、knowledge、relations...)
│ ├── pages/ # 页面级视图
│ ├── stores/ # Pinia Store
│ ├── styles/ # 全局样式
│ ├── theme/ # 主题与设计令牌
│ ├── types/ # 共享类型
│ └── utils/ # 工具函数
├── resources/
│ ├── icon.ico / icon.png # 应用图标
│ └── skills/ # 内置 Skill 包
├── electron.vite.config.ts
├── package.json
└── tsconfig.json
┌─────────────────────────────────────────────────────────┐
│ Electron 主进程 │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
│ │ 窗口管理 │ │ SQLite │ │ AI 管线 │ │
│ │ │ │ 读写/迁移 │ │ 调度 → Skill → 模型 │ │
│ └──────────┘ └──────────┘ └──────────────────────┘ │
├─────────────────── IPC 桥接 ────────────────────────────┤
│ Vue 渲染层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
│ │ Pinia │ │ TipTap │ │ Naive UI 组件 │ │
│ │ Store │ │ 编辑器 │ │ │ │
│ └──────────┘ └──────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────┘
数据流:启动 → 主进程建窗 → 渲染层初始化 Store → 从 SQLite 加载工作区 → 用户编辑 → Pinia 更新 → 防抖写回 SQLite → AI 请求统一由主进程调用
应用当前在 resources/skills/ 下内置 3 组、共 28 个 Skill。技能面板会按来源分组展示,开发版与打包版使用同一套目录结构。
| 来源 | 数量 | 代表 Skill | 说明 |
|---|---|---|---|
oh-story-claudecode |
12 | story-long-write、story-short-write、story-chapter-exec |
核心网文写作工作流,覆盖长篇、短篇、章节执行、拆文、扫榜、封面、去 AI 味、故事蓝图与番茄排版 |
community-skills |
3 | humanizer-zh、style-fingerprint、style-fusion |
通用风格与润色能力,适合中文去 AI 味、风格提取和风格融合 |
Distilled-Novel-Toolbox |
13 | novel-pacing、novel-worldbuilding、novel-commercialization |
工程化网文知识库,覆盖题材、人设、世界观、节奏、情绪、爽点、润色、平台、合规与反检测 |
story-long-write、story-long-analyze、story-long-scanstory-short-write、story-short-analyze、story-short-scanstory-chapter-exec、story-chapter-repairstory-blueprint、story-cover、story-deslop、story-format-tomato
humanizer-zh:中文小说去 AI 味润色style-fingerprint:提取参考文本的风格指纹style-fusion:组合多个来源的风格特征
novel-anti-detection:反 AI 检测与混合创作风控novel-character-design:主角、配角、反派与人物弧光设计novel-commercialization:平台选择、签约与商业化方向novel-compliance:平台规则、敏感词与内容合规novel-emotion:情绪曲线、共情点与沉浸感设计novel-genres:题材选择、子类融合与赛道判断novel-innovation:反套路、微创新与趋势参考novel-language-style:文风、视角、修辞与画面感novel-pacing:开篇、断章、高潮与整体节奏novel-pleasure-points:爽点设计与疲劳管理novel-polishing:润色、去 AI 味与风格增强novel-tools:提示词、写作工作流与发布分析novel-worldbuilding:世界观、势力、规则与设定一致性
resources/skills/<来源>/<skill-id>/SKILL.md会被自动扫描为内置 Skill;同级的scripts/等辅助目录不会被当成 Skill。还可以导入独立的 Skill 包,作用范围仅限该项目。
应用数据保存在 Electron 用户目录下:
- 📊 数据库:
<userData>/data/workspace.db(SQLite) - 📦 项目 Skill:
<userData>/project-skills/<project-scope>
🔒 所有数据完全本地,不上传任何第三方服务。
- oh-story-claudecode — 提供了核心写作 Skills 的方法论与 prompt 工程基础
- dama-cyber/Distilled-Novel-Toolbox — 提供了小说工作流与创作辅助方向的参考
- LINUX DO — 新的理想型社区
点击链接加入群聊:https://qm.qq.com/q/lTQfy3AYvY
MIT © zhouyeshan
如果这个项目对你有帮助,欢迎 Star ⭐ 支持一下







