# character-arc
**Repository Path**: itjee/character-arc
## Basic Information
- **Project Name**: character-arc
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-13
- **Last Updated**: 2026-06-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
---
## ✨ 项目简介
CharacterArc(弧光)不是"只会对话的 AI 壳子",而是一套围绕小说项目组织、章节写作与 AI 协作搭起来的桌面工作台。
🏠 本地优先
项目数据保存在本机 SQLite,无需依赖在线服务,写作内容完全自己掌控。
|
📦 项目隔离
每个项目独立维护设定、章节、知识库与 AI 运行记录,互不干扰。
|
📖 章节导向
大纲、灵感、知识和 AI 能力最终都围绕章节创作落地。
|
🧩 Skill 驱动
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 配置到章节写作和封面生成的主要体验。
项目中心 · 集中管理所有小说项目
|
项目概览 · 基础信息、设定资产、章节进度一目了然
|
拆书与知识库 · 导入参考作品后沉淀风格分析、知识条目与仿写参考
|
Skill 系统 · 为项目启用内置或扩展 Skill,增强不同写作任务的 AI 输出
|
剧情大纲 · 双栏交错时间线,支持拖拽排序与 AI 扩写
|
章节创作 · 目录树 + TipTap 编辑器 + AI 侧边栏
|
封面工作台 · 多平台封面 Prompt 生成与历史版本对比
|
## 🧱 技术栈
| 层 | 技术 |
|---|---|
| 框架 | 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= `,或直接删除该前缀。
## ⚡ 快速开始
```bash
# 安装依赖
pnpm install
# 启动开发环境(同时启动 Electron 主进程 + Vite 渲染进程)
pnpm run dev
# 类型检查 + 构建
pnpm run build
# 打包 Windows 安装程序
pnpm run dist
```
### 🔑 配置 AI
首次进入应用后,在「设置」面板中填写:
📝 文本生成
- 支持维护多套接口配置,并在标题栏快速切换
- 协议类型:OpenAI 兼容协议 / Anthropic 协议
- Base URL(只需填域名或路径前缀,系统自动补全 /v1)
- API Key
- 模型名称(支持从接口自动拉取)
|
🖼️ 图像生成(封面工作台使用)
|
## 📁 项目结构
点击展开完整目录树
```
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 请求统一由主进程调用
## 🧰 内置 Skill 包
应用当前在 `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` | 工程化网文知识库,覆盖题材、人设、世界观、节奏、情绪、爽点、润色、平台、合规与反检测 |
### `oh-story-claudecode`
- `story-long-write`、`story-long-analyze`、`story-long-scan`
- `story-short-write`、`story-short-analyze`、`story-short-scan`
- `story-chapter-exec`、`story-chapter-repair`
- `story-blueprint`、`story-cover`、`story-deslop`、`story-format-tomato`
### `community-skills`
- `humanizer-zh`:中文小说去 AI 味润色
- `style-fingerprint`:提取参考文本的风格指纹
- `style-fusion`:组合多个来源的风格特征
### `Distilled-Novel-Toolbox`
- `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.md` 会被自动扫描为内置 Skill;同级的 `scripts/` 等辅助目录不会被当成 Skill。
>
> 还可以导入独立的 Skill 包,作用范围仅限该项目。
## 💾 数据存储
应用数据保存在 Electron 用户目录下:
- 📊 **数据库**:`/data/workspace.db`(SQLite)
- 📦 **项目 Skill**:`/project-skills/`
> 🔒 所有数据完全本地,不上传任何第三方服务。
## 🙏 鸣谢
- [oh-story-claudecode](https://github.com/worldwonderer/oh-story-claudecode) — 提供了核心写作 Skills 的方法论与 prompt 工程基础
- [dama-cyber/Distilled-Novel-Toolbox](https://github.com/dama-cyber/Distilled-Novel-Toolbox) — 提供了小说工作流与创作辅助方向的参考
## 🔗 友情链接
- [LINUX DO](https://linux.do) — 新的理想型社区
## 💬 交流群
点击链接加入群聊:https://qm.qq.com/q/lTQfy3AYvY
## 📄 License
[MIT](./LICENSE) © zhouyeshan
如果这个项目对你有帮助,欢迎 Star ⭐ 支持一下