Sponsor Suno AI Music arrow_forward
Skill

Browser Cdp

Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions. Covers…

Type
Skill
GitHub stars
7.1k
License
MIT
Repo last updated
Sep 27, 2026
Source file
README.md

What Browser Cdp is

Browser Cdp is a skill published in the zenstory-ai/oh-story-claudecode repository on GitHub, which has about 7.1k stars. The repository describes itself as: “Claude Code / Codex / OpenCode agent skills for writing Chinese web novels (网文): 扫榜、拆文、写作、去AI味、封面全流程,长篇短篇都支持 | 13 skills for novel writing and long-form fiction with file-based continuity tracking. MIT.”

A skill is a folder with a SKILL.md file: frontmatter with a name and a description, followed by instructions Claude follows. Claude loads a skill automatically when a task matches its description, and you can also run it directly with a slash and its name.

Skills work in Claude Code and in Claude Cowork, which makes Browser Cdp a portable way to give Claude the same method everywhere.

How to install Browser Cdp

Claude Code

  1. Download the browser-cdp folder from the repository.
  2. Save it as ~/.claude/skills/<skill-name>/SKILL.md for all projects, or .claude/skills/<skill-name>/SKILL.md for one project.
  3. Claude loads it automatically when a task matches; you can also run it with / and its name.

Claude Cowork

  1. Zip the skill folder so SKILL.md sits at the top level of the folder.
  2. Open Customize → Skills, click +, then upload the ZIP.
  3. Start a task that matches the description, or call it by name with /.

New to extending Cowork? Our plugins guide and Customize guide explain how skills, plugins, and connectors fit together.

Inside the source file

An excerpt from README.md, shared under the repository's MIT license. Read the full file on GitHub.

Oh Story

网文写作 skill 包:扫榜、拆文、写作、去AI味、封面图一套流程,装进你正在用的编程 Agent。

项目主页 &nbsp;·&nbsp; 安装 &nbsp;·&nbsp; 常见问题 &nbsp;·&nbsp; English

这是什么

Oh Story 覆盖长篇与短篇网络小说的全流程:扫榜选材 → 拆解爆款 → 搭大纲写正文 → 去AI味 → 生成封面图。 它以 13 个 skill 的形式装进你已经在用的编程 Agent,写作用的模型就是该 Agent 的模型,不需要 GPU,也不需要另外配模型。

  • 用文件系统当记忆 — 设定、大纲、正文、追踪各自独立维护。几百章的长篇不靠对话记忆硬撑,压缩上下文也不会丢伏笔。
  • 确定性检查与门禁 — 写正文前没有细纲会被拦下;写完自动扫截断、工程词和常见 AI 句式。7 个专业 Agent、8 个自动化 hook、100+ 份写作方法论按需加载。
  • 装进 8 款编程 Agent — Claude Code · Codex CLI · Google Antigravity · OpenCode · ZCode · OpenClaw · Reasonix,以及能读取项目文件的通用 Web AI / Agent 环境。
  • 面向的平台 — 起点、番茄、晋江、七猫、知乎盐言等长短篇平台。

> 套路 = 确定性的情绪满足

专业作者的方法论三步走:扫榜(洞察题材、人设、切入点)→ 拆文(拆解节奏与剧情素材,建立个人模块库)→ 商业化写作(运用钩子、爽感、期待感)。 围绕四条线展开:爆款逆向 · 剧情模块化重组 · 上下文状态分层管理 · 人机协同。

安装

npx skills add zenstory-ai/oh-story-claudecode -y -g

-g 全局安装,所有目录可用;去掉 -g 则只装到当前目录。更新时重新执行同一条命令即可。

也可以直接对 Agent 说一句话(支持导入 GitHub 仓库 / skill 的平台都适用):

安装这个 skill https://github.com/zenstory-ai/oh-story-claudecode

装好后,在写作项目根运行 /story-setup(Codex 用 $story-setup)部署 hooks / agents / references,然后新开会话。升级后同样重跑一次 /story-setup。

> 各 Agent 的部署差异、已知限制与安装排查(Windows ENOENT、Antigravity agy -p、目录残留等)见 各编程 Agent 的部署与安装排查。 > 最新版本 v0.8.1(2026-09-26);变更见 CHANGELOG.md 与 Releases。

看看它的输出

下面每一份都是 skill 跑出来的文件,完整样例在 demo/。

续写状态卡:为什么几百章不会崩

下面这本是项目作者自己的长篇,用 /story-import 把已发布的前 20 章反向重建成可续写工程。 下面是写第 21 章之前的状态卡。/story-long-write 不靠对话记忆,它把连续性写进 追踪/上下文.md,下一章只读这一份——固定 7 栏、硬上限 12KB,不进正文 prompt:

## 当前位置
- 当前章:第20章   卷:第一卷·军宣整顿   故事时间:《如愿》点击破亿后的第二天

## 长期约束
- 军宣爽点必须通过作品效果、传播数据和围观反应链兑现,不能只靠系统播报。
- 钟嘉嘉未公开的军方培养安排属于作者真相,正文揭示前不能当成读者已知。

## 活跃伏笔
- F016|钟嘉嘉并非普通军报实习生,她的军方家庭背景仍未完全公开|埋第7章|回收章未定|高
- F049|吴伟收到寻衅滋事公诉通知,最终法律结果尚未落地|埋第18章|回收章未定|高
- F054|一位老兵邀请江晨上门听当年的故事,为后续创作提供入口|埋第20章|回收章未定|高

## 下一章承诺
- 先补第21章细纲,再承接老兵邀请、新歌伴奏和钢琴能力。

「作者真相」和「读者已知」是分开记的——这是角色提前知道答案、伏笔写飞的主要来源。 完整文件:demo/长篇/.../追踪/上下文.md

续写第 21 章:从门禁到回写,一条链走完

上面的视频录的就是这一段。/story-long-write 写第21章 在一次真实会话里的产出与每一道检查:

细纲       细纲_第021章.md              追踪里写着「第21章尚无细纲」,skill 先补纲:单元 L1-03、目标情绪、本章标价、闭环状态、10 个情节点四列表格(外加可选的分辨率列)
章级检查   storyctl.py chapter check   ready · 字数 2068 / 目标 2300
             ├ check-ai-patterns.js     0 命中
             ├ check-degeneration.js    0 命中
             └ normalize-punctuation    0 命中
追踪提交   storyctl.py chapter commit  tracking_committed=true · state_revision 0 → 1
派生视图   tracking_commit.py check    上下文.md / 伏笔.md / 角色状态/ / 时间线/ / 逐章记录/ 全部由 state 重生成,逐字一致

写正文前 guard-outline-before-prose.sh 会拦住缺细纲的章节;细纲过结构验收后,才由 narrative-writer 分两批写正文, 再由 consistency-checker 查事实与伏笔、去味审查改读感,最后跑确定性收尾脚本与 chapter check。

提交之后,追踪状态是工具从 _tracking-state.json 整份重新渲染的,手改派生文件会被 check 拒绝。 对照上面的状态卡,回写实际改了什么(节选,省略了同批滚动的近三章速记与角色状态):

 ## 当前位置
-- 当前章:第20章   场景:火箭军文工团,钟嘉嘉送来老兵书法礼后
+- 当前章:第21章   场景:火箭军文工团办公室,江晨收到谭守义地址回信后
 ## 活跃伏笔
-- F054|一位老兵邀请江晨上门听当年的故事,为后续创作提供入口|埋第20章|回收章未定|高
+- F054|谭守义已给邻市地址,江晨定次日上门听故事|埋第20章|第22章|高
+- F057|谭守义有个讲了五十年没人听全过的故事,内容未揭示|埋第21章|第22章|高
+- F058|任务三:离别主题作品、开放日当天热度1000万+、限时14天|埋第21章|第27章|高
 ## 下一章承诺
-- 先补第21章细纲,再承接老兵邀请、新歌伴奏和钢琴能力。
+- 江晨向周薄森请假出营,赴邻市听谭守义讲完整故事并录音,揭示F057。
 ## 连贯性风险
-- 第21章尚无细纲,不能直接写正文。
+- 谭守义故事的作者真相为候选(E015),作者可在第22章细纲前改;揭示前不当读者已知。

新角色谭守义有了自己的设定卡和角色状态文件;他那个「讲了五十年没人听全过」的故事,真相候选(E015)记在 时间线/作者真相.md 并标为未揭示,读者已知.md 那一栏只有江晨看到的那句话。被退役的那条风险写进了 逐章记录/第021章.md 的「本章退役登记」——状态不会静默消失。

成品:正文/第021章_离别怎么会开花.md · 大纲/细纲_第021章.md · 设定/角色/谭守义.md · 追踪/逐章记录/第021章.md

拆文报告:评分要给得出理由

/story-long-analyze 拆《盘龙》开篇 23 章(约 6.2 万字,起点经典,仅作拆解素材),按番茄男频升级流读者口味打分:

> 综合:三章是「立人设强、给爽点零」的极端结构。直接照搬会劝退番茄读者, > 但拆出来的局部技法(导师代言设定、延迟点名、身体反应外化)高度可复用。

完整报告:demo/拆文库/盘龙/拆文报告.md

短篇拆文:把自己的作品拆成可复用的模块

/story-short-analyze 拆《曾将爱意私藏》(作者自己的短篇,约 8,500 字,追妻火葬场 · 死遁), 产出 54 个情节节点、11 项写作手法。每个节点都锚定原文,并标注情绪类型与强度(−9~+9):

同一份产出里,写作手法.md 直接点出原作的代价:

> POV 代价:男主的转变缺乏过程展示,N47 的内心独白集中倒出「早就原谅、夜不能寐、深爱」, > 略显直白说明(tell 多于 show)——这是第一人称追妻文的通病。

下游 /story-short-write 直接读这些手法写同题材新篇。 完整产出:demo/拆文库/曾将爱意私藏/

去 AI 味:逐条匹配已知句式

/story-deslop 的本地检查是写作 lint:逐条匹配已知句式模板, 给出行号、命中片段和改写方向。拿一段人工构造的 AI 腔样例扫描,8 处命中(7 blocking):

改前.md:7:20     [blocking] em-dash             (么叫做命运的安排——不是巧合,而是一)
改前.md:7:22     [blocking] not-is-comparison   (不是巧合,而是一种冥冥之中的注定)
改前.md:11:1     [blocking] negation-parade     (没有犹豫,没有生涩,)
改前.md:19:3     [blocking] voice-contrast      (声音不大,却)
改前.md:21:2     [blocking] not-is-comparison   (不是一次简单的弹奏,而是一场蓄谋已久的惊艳亮相)
改前.md:3:1      [advisory] cliche-density-tic  (仿佛 一丝 深吸一口气 缓缓 微微)

同一场戏在第 21 章正文里的原样跑同一个扫描:零命中,exit 0。 两段字数几乎一样,差别在于改前用抽象判词替读者定性,改后把同一件事交给可见的动作和物件。

完整对照与全部 9 条命中:demo/去AI味对照/

本地写作工作台与封面

/story dashboard 在本机 127.0.0.1 打开写作工作台,浏览拆文库与项目文件树,小说内容不上传。

安装后的第一条请求

复制、改一改就能用:按当前任务选一条,把〈占位内容〉换成自己的信息。

  1. 开一本新书 > 我想开一部〈类型/题材〉新书。先从我提供的材料中分开已确定事实与待决问题;只规划一个有边界的开篇,交付核心冲突、视角/信息释放限制、前三章变化和待决项。不要自动写正文;题材取舍、角色动机和长期方向留给我确认。
  2. 导入已有书稿 > 请把这份书稿整理成可续写项目。第 1–〈N〉章完整,〈文件名〉是第〈N+1〉章残稿;保留原文,不覆盖完整章节,不把残稿算作完整章,推断出的设定单列待确认。先交付识别范围、重建事实、冲突/歧义和待我确认的决定,供我审阅;暂不续写。
  3. 修一段不满意的正文 > 这段读起来〈空泛/重复/过度解释〉。先指出具体读感问题,保留故事事实、角色已知和未揭示边界;只交付这一段的修订建议、前后对照与理由,不全书改写。哪些建议采用由我决定。

流程总览

flowchart LR
    classDef entry fill:#f0f0f0,color:#333,stroke:#999,stroke-width:1px
    classDef phase fill:#e8f4fd,color:#1a1a2e,stroke:#4a9be8,stroke-width:1px
    classDef final fill:#fce4ec,color:#333,stroke:#e57373,stroke-width:1px

    entry_l{{"长篇作者"}}:::entry
    entry_s{{"短篇作者"}}:::entry
    entry_r{{"已有方向"}}:::entry
    entry_i{{"已有小说"}}:::entry

    subgraph S0 ["  环境部署"]
        setup["/story-setup"]:::phase
    end

    subgraph S1 ["  扫榜选材"]
        direction TB
        scan_l["长篇扫榜"]:::phase
        scan_s["短篇扫榜"]:::phase
…

Skills

先用这几个就够写书:装一次 story-setup,之后长篇用 story-long-write、短篇用 story-short-write,写完用 story-deslop 去 AI 味;拿不准叫哪个就说 /story 加一句话。

进阶:拆对标书、扫榜、导入旧稿、多视角审稿、封面,需要时再用。

> story-deslop 的本地检查是写作 lint:blocking 只限确定性句式/标点问题,其他提示按读感判断;朱雀等外部检测只作自测参考,不替代人工读感。

自然语言同样触发:

  • 「帮我开书」→ story-long-write
  • 「这篇太 AI 了」→ story-deslop
  • 「把我的书导进来」→ story-import
  • 「打开工作台」→ story dashboard(本机浏览拆文库与写作项目,可轻量编辑)
  • 「记住我的写作习惯」→ story 作者记忆(原话证据、待确认、冲突替代)
  • 「沈栀现在什么状态」→ 自动 spawn story-explorer agent

Story Dashboard

运行 /story dashboard(Codex 用 $story dashboard)打开本地写作工作台,浏览拆文库与 长/短篇项目文件树,并完成搜索、Markdown 预览、文本编辑、冲突保护保存和确认删除; 顶栏可切换浅色、深色。 服务仅监听 127.0.0.1,小说内容不会上传。

工作原理

三层结构,细节见 工作原理:Agent、Hooks 与项目结构。

① 文件系统当记忆 — 一部长篇动辄几十万字。设定、大纲、正文、追踪拆成独立目录各自维护, 对话只负责创作,不负责记忆。追踪/ 下的 _tracking-state.json 是唯一结构化权威, 派生出上下文卡、伏笔视图、角色状态和「作者真相 / 读者已知」双时间线。

② 7 个专业 Agent 分工 — story-architect(Opus,架构)、narrative-writer(Opus,正文)、 consistency-checker(Haiku,一致性)、character-designer、story-researcher、story-explorer、chapter-extractor。 由 /story-setup 部署,必须先部署再新开会话才会生效。

③ 8 个自动化 hook 守住质量 — 其中只有一个是阻断性的: guard-outline-before-prose.sh 在缺对应细纲时阻止首次创建正文,强制先搭大纲。 其余(会话快照、缺口检测、压缩前后续接、提交校验、正文写入后扫描)都只提醒,不打断写作。

Before you install

  • Read the whole file first. Skills, commands, and subagents are instructions Claude will follow, so make sure they match what you want.
  • Check which tools, scripts, or MCP servers it uses. Local servers and scripts run with your permissions.
  • Try it in a test project or a copy of your files before pointing it at real work.
  • Pin the version you tested, and review changes before updating.
  • Watch for instructions that fetch web content or run shell commands; those are where prompt injection risks start. See our prompt injection guide.

FAQ

What is Browser Cdp?

Browser Cdp is a skill for Claude Code and Claude Cowork from the zenstory-ai/oh-story-claudecode repository on GitHub. Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions. Covers…

How do I install Browser Cdp in Claude Code?

Download the browser-cdp folder from the repository. Save it as ~/.claude/skills/<skill-name>/SKILL.md for all projects, or .claude/skills/<skill-name>/SKILL.md for one project. Claude loads it automatically when a task matches; you can also run it with / and its name.

Can I use Browser Cdp in Claude Cowork?

Zip the skill folder so SKILL.md sits at the top level of the folder. Open Customize → Skills, click +, then upload the ZIP. Start a task that matches the description, or call it by name with /.

Is Browser Cdp safe to install?

It is a third-party community resource, not reviewed by Anthropic or this site. Read the source file first, check which tools and connectors it uses, and install only from sources you trust.

Similar resources

Browse all skills, subagents, and plugins →

Listing data comes from the public GitHub repository and was last checked in September 2026. Excerpts are © their authors and shared under MIT. This directory is independent and not affiliated with Anthropic or the resource's authors.