omp packages

anywriter0.1.3

AnyWriter — evidence-traced novel distillation and writing tools for OpenCode and Pi

3rdyeah Published 7 days ago ~250 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

AnyWriter Plugin

AnyWriter 是一个面向小说蒸馏、改编、续写、审校和定稿的 OpenCode 1、OpenCode 2 和 Pi 插件包。插件提供中英文双语资源、项目级系统提示词和 aw-* 命令。

平台适配器统一放在 adapters/,共享资源位于根目录 locales/ 和 shared/。

功能

  • aw-distill:从原文提取人物、世界观、情节、时间线、伏笔和风格。
  • aw-task:规划剧情修改、扩展、续写和重写任务。
  • aw-write:按场景、章节或自定义范围生成正文。
  • aw-review:独立审校、受控修订和定稿。
  • aw-byimage:以用户上传的图片为参考,提取视觉特征并生成内容。
  • aw-caption(Agent):对指定文件夹内的图片批量反推 caption,写入同名 .txt。
  • aw-config:切换语言、设置写作提示词或 caption 提示词。
  • aw-status:查看当前知识库和创作任务状态。

安装方式

默认入口(OpenCode 2,同时兼容 OpenCode 1)

发布后,在 OpenCode 2 全局配置中加入:

{
  "plugins": ["anywriter"]
}

包的默认入口是 OpenCode 2 Plugin.define 实现,并包含 OpenCode 1 兼容的 server 入口。

OpenCode 1

在 OpenCode 1 全局配置中加入:

{
  "plugin": ["anywriter"]
}

OpenCode 2

OpenCode 2 使用新的插件 API;在 opencode.json(c) 中配置:

{
  "plugins": ["anywriter"]
}

该包的 ./opencode2 导出是独立的 V2 Plugin.define 入口;默认入口还提供兼容 OpenCode 1.18.29+ 的 server 实现。

GitHub 源码

git clone <repository-url> ~/.config/opencode/plugins/anywriter

然后配置本地入口:

{
  "plugin": [
    "file:///绝对路径/anywriter/adapters/opencode/opencode.plugin.ts"
  ]
}

安装或更新插件后重启 OpenCode。

Pi

AnyWriter 同时是 Pi package,可通过 npm 或 Git 安装:

pi install npm:anywriter
# 或在仓库目录测试
pi -e .

Pi 会自动加载包中的 adapters/pi/index.ts、双语 aw-* Skills 和 slash commands。命令使用 /aw-init、/aw-distill 等;修改 .aw/config.json 后执行 /aw-reload 或重启 Pi。

项目使用

在任意项目目录中启动 OpenCode:

/aw-init

插件会创建:

.aw/
└─ config.json
files/
├─ source/
├─ reference/
├─ knowledge/
└─ work/

将 TXT 或 Markdown 原文放入 files/source/,然后按流程执行:

/aw-distill 全文
/aw-task <创作要求>
/aw-write <场景|章节|自定义范围>
/aw-review <草稿>
/aw-status

图片参考流程:在对话中上传图片后执行:

/aw-byimage <生成要求>

插件会用 aw_save_images 工具把上传图片保存到 files/reference/<slug>/;参考表经用户批准后才生成内容;独立草稿为非正典,需要进入创作流程时用 /aw-task 建立任务。

图片 caption 流程:指定一个图片文件夹,批量反推 caption 并写入同名 .txt:

/aw-caption <图片文件夹> [-r] [要求]

aw-caption Agent 的系统提示词包含 .aw/config.json 的 caption_prompt(修改后需重启 OpenCode);图片文件夹只读,已有 .txt 默认跳过,传 -r 时覆盖。

项目配置

.aw/config.json 示例:

{
  "version": 1,
  "language": "zh",
  "writer_prompt": "本项目使用克制、冷峻的叙事风格。",
  "caption_prompt": "用英文输出,逗号分隔的标签,包含主体、服装、场景、光线和镜头。"
}

命令:

/aw-config -lang zh
/aw-config -lang en
/aw-config -wsp <写作系统提示词>
/aw-config -clrwsp
/aw-config -csp <caption 系统提示词>
/aw-config -clrcsp

没有项目配置时默认使用简体中文。writer_prompt 追加到写作流程 Agent,caption_prompt 追加到 aw-caption Agent,修改后重启 OpenCode 生效。

开发与发布

完整的发布前检查、版本号、发布、验证和用户更新流程见 RELEASING.md。

快速命令:

npm pack --dry-run
npm version patch
npm publish

不要将小说原文、files/ 测试数据、.aw/ 项目配置或任何密钥提交到仓库。