Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

limecloud/lime-novel

Repository files navigation

Lime Novel

Lime Novel 是一个面向长篇小说创作的 AI Agent 桌面工作台,围绕"写作、设定、修订、发布"四条主链,把正文编辑器、章节代理、设定记忆和发布整理收在同一套本地优先的 Electron 桌面壳里。

当前仓库版本基线已提升到 0.5.0,并补齐了适合桌面应用的发布流水线:

  • Quality:面向 pull_requestpush main 和手动触发的持续集成校验
  • Release:面向 v*.*.* tag 或手动触发的跨平台桌面构建与 GitHub Draft Release

技术栈

  • Electron + React + TypeScript
  • electron-vite
  • Tiptap Headless
  • TanStack Query
  • 本地优先的项目工作区与代理运行时

仓库结构

  • apps/desktop Lime Novel 桌面端主进程、preload 与 renderer
  • packages/application 应用用例、DTO、端口协议
  • packages/domain-novel 小说领域模型与业务语义
  • packages/agent-runtime 代理任务、记忆与运行时编排
  • packages/infrastructure 本地数据、文件系统和项目初始化
  • docs/prd 产品与交互事实来源
  • docs/tech 技术架构文档

本地开发

npm ci
npm run dev

常用校验命令:

npm run typecheck
npm run verify:local
npm run verify:gui-smoke

Live Agent 配置

当前 agent-runtime 支持两条执行路径:

  • legacy 不配置模型时,继续使用仓库内置的规则型本地 runtime
  • anthropic 对齐 CC 的 Claude / Anthropic messages + tool use 主链
  • openai-compatible 配置模型后,启用真实的单代理 + tool calling 执行内核

最小配置示例:

export LIME_NOVEL_AGENT_PROVIDER=anthropic
export LIME_NOVEL_AGENT_API_KEY=your_anthropic_key
export LIME_NOVEL_AGENT_MODEL=claude-sonnet-4-6
export LIME_NOVEL_AGENT_PROVIDER=openai-compatible
export LIME_NOVEL_AGENT_BASE_URL=https://api.openai.com/v1
export LIME_NOVEL_AGENT_API_KEY=your_api_key
export LIME_NOVEL_AGENT_MODEL=gpt-4.1-mini

桌面端也可以直接在左上角品牌按钮打开"工作台设置",在 AI Agent 引擎 中保存 provider / API Key / model / Base URL。保存后只影响新发起的任务,当前运行中的任务不会被中断。

可选环境变量:

  • LIME_NOVEL_AGENT_MAX_STEPS 单次任务最多模型轮次,默认 6
  • LIME_NOVEL_AGENT_MAX_TOOL_CONCURRENCY 只读工具最大并发数,默认 4
  • LIME_NOVEL_AGENT_MAX_STRUCTURED_OUTPUT_RETRIES submit_task_result 最大尝试次数,默认 5
  • LIME_NOVEL_AGENT_REQUEST_TIMEOUT_MS 单次模型请求超时毫秒数,默认 90000
  • LIME_NOVEL_AGENT_TEMPERATURE 模型温度,默认 0.2

行为说明:

  • 未配置上述 provider / key / base URL 时,自动走 legacy
  • provider=anthropicmodel / baseUrl 留空时,默认使用 claude-sonnet-4-6https://api.anthropic.com/v1/messages
  • provider=openai-compatiblemodel / baseUrl 留空时,默认使用 gpt-4.1-minihttps://api.openai.com/v1
  • 已配置 live provider 时,任务会走真实模型调用;如果模型调用失败,任务会标记为 failed,不会静默伪造结果
  • 当前 live agent 只实现第一阶段能力:单代理、受控 tool calling、结构化结果回流;还没有接入多代理、MCP、远端 worktree 或插件市场

桌面安装包构建命令:

npm run dist
npm run dist:mac
npm run dist:mac:arm64
npm run dist:mac:x64
npm run dist:win
npm run dist:linux

版本管理

仓库提供了统一版本同步脚本,会同时更新根包与所有 workspace 子包:

node scripts/sync-version.mjs 0.5.0

当前建议的发布标签是 v0.5.0

CI / CD

Quality

文件位置:

  • .github/workflows/quality.yml

职责:

  • 安装依赖
  • 执行 npm run verify:local
  • 在 macOS 上执行 npm run verify:gui-smoke

Release

文件位置:

  • .github/workflows/release.yml

触发方式:

  • 推送 tag:v*.*.*
  • 手动触发 workflow_dispatch

手动触发参数:

  • tag 目标版本标签,例如 v0.5.0
  • source_ref 构建来源,默认 main
  • platform all / windows / mac / linux

发布流程:

  1. 按目标版本同步工作区 package.json 版本
  2. 在对应平台执行 electron-builder
  3. 生成 electron-updater 所需的 latest.ymllatest-mac.ymllatest-linux.yml 更新索引
  4. macOS 按 arm64x64 两条独立流水线分别产出直装包,并在发布任务里合并 latest-mac.yml
  5. 上传平台产物
  6. 汇总产物并创建 GitHub Draft Release

当前默认产物:

  • Windows:nsiszip
  • macOS ARM64:lime-novel-v0.5.0-macos-arm64.dmglime-novel-v0.5.0-macos-arm64.zip
  • macOS x64:lime-novel-v0.5.0-macos-x64.dmglime-novel-v0.5.0-macos-x64.zip
  • Linux:AppImagetar.gz

说明:

  • 桌面端启动后会在打包环境自动调用 electron-updater 检查 GitHub Release;开发环境默认不检查,可设置 LIME_NOVEL_FORCE_UPDATE_CHECK=true 使用 dev-app-update.yml 调试
  • 自动更新依赖已发布的 GitHub Release,Draft Release 对客户端不可见;Release workflow 默认仍创建 draft,人工确认后发布
  • macOS 发布链参考了 Lime 主仓库的双机型思路,分别在 Apple Silicon 与 Intel runner 上构建,避免用户下载后再做架构转换判断
  • macOS 流程当前默认关闭自动代码签名发现,优先保证 unsigned 构建可产出
  • 如果后续接入苹果签名、公证或 Windows 代码签名,只需要在 release workflow 里补环境变量与签名步骤
  • electron-builder 是当前自动更新发布链路,electron-forge 用于额外 package/make 能力

Electron Forge

Forge 配置文件:

  • forge.config.cjs

可用命令:

npm run forge:package
npm run forge:make
npm run forge:make:mac
npm run forge:make:win
npm run forge:make:linux

说明:

  • Forge 复用 electron-viteout/ 产物,输出目录为 out-forge/
  • Forge package 会携带 build/app-update.yml,但 Forge maker 不负责生成 electron-updater 的 release 更新索引
  • 需要可自动更新的正式发布包时,继续使用 electron-builder / Release workflow

发版建议

本地准备:

npm ci
node scripts/sync-version.mjs 0.5.0
npm run verify:local
npm run verify:gui-smoke

正式发布:

git tag v0.5.0
git push origin v0.5.0

也可以直接在 GitHub Actions 里手动运行 Release,指定:

  • tag = v0.5.0
  • source_ref = main
  • platform = all

About

lime 小说APP

Resources

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /