一个伪装成 Codex 对话界面的本地摸鱼阅读插件。
它会在浏览器侧栏中播放本地小说,并穿插看起来正在工作的合成内容。书籍、进度和内容缓存都留在本机,播放过程不调用模型,也不消耗 token。
Important
本项目是非官方社区工具,与 OpenAI 没有隶属或背书关系。Codex 和 OpenAI 是其各自权利人的商标。
需要 Python 3.11 或更高版本,以及支持 plugins/skills 的 Codex 或 ChatGPT 客户端。
- 下载或克隆本仓库。
- 在 Codex 中调用
$plugin-creator,让它把当前文件夹加入个人 marketplace。 - 刷新插件目录并安装
Codex Loaf Reader Skill。 - 在新任务中发送
摸了。
首次启动时,如果当前 Python 没有 Flask,启动器会在应用数据目录创建独立 venv 并自动安装依赖。
| 指令 | 行为 |
|---|---|
摸了 |
启动或复用本地服务 |
在摸吗 |
查询服务状态 |
不摸了 |
停止服务 |
摸鱼收集 / 收集一下 |
生成并保存新的工作内容样本 |
网页暂停时输入 不摸了 也会退出服务。
点击输入框左侧的加号导入书籍或选择当前书籍,然后发送任意内容开始播放。
| Codex 风格控件 | 实际作用 |
|---|---|
| 请求批准菜单 | 切换纯小说、小说混播或纯工作内容 |
| 模型版本 | 调整工作内容与小说内容的混播比例 |
| 推理低/中/高/超高 | 调整等待时间和逐字输出速度 |
| 速度普通/快速 | 切换小说段落的分割线或高亮样式 |
| 停止/发送按钮 | 暂停或继续播放 |
书籍菜单支持名称搜索、章节切换和每本书独立的阅读进度。页面语言跟随浏览器,明暗主题跟随系统设置。
- 支持 TXT、Markdown、JSONL、EPUB 和未加密 MOBI。
- 独立记录每本书的章节、位置和百分比进度。
- 工作内容池由安全词库生成,不包含真实对话或私人路径。
- 收集 skill 可根据当前可见任务生成更多中性工作内容。
- 本地缓存默认最多 20MB、500 项,超出时自动裁剪。
- 可通过本地接口接入行情、报告等其他文本源。
不安装插件也可以直接启动。
Windows PowerShell:
py -3 -m venv .venv
.\.venv\Scripts\python -m pip install -r requirements.txt
.\.venv\Scripts\python run.pymacOS / Linux:
python3 -m venv .venv
./.venv/bin/python -m pip install -r requirements.txt
./.venv/bin/python run.pypython run.py # 启动或复用服务
python run.py status # 查询状态
python run.py stop # 停止服务默认地址为 http://127.0.0.1:8765/。若端口被占用,启动器会选择后续可用端口。
.txt.md.jsonl,每行形如{"title":"章节","text":"内容"}.epub.mobi,仅支持未加密 PalmDOC/MOBI 文本
加密或带 DRM 的 MOBI 不受支持。请只导入你有权使用的内容。
界面中的模型名称来自数据目录的 config.json。停止服务后可修改 streamPolicy.modelDisplayNames,再重新启动:
{
"streamPolicy": {
"modelDisplayNames": {
"balanced": "5.6 Sol",
"work-heavy": "5.6 Terra",
"novel-heavy": "5.6 Luna",
"spark": "5.5"
}
}
}这些键对应固定的混播比例档位。修改名称不会改变比例和已保存的选择。
服务只监听 127.0.0.1,不会上传书籍、进度或缓存,也不会读取其他任务、Codex 数据库或浏览器历史。
默认数据目录:
- Windows:
%USERPROFILE%\.codex-loaf-reader - macOS / Linux:
~/.codex-loaf-reader
可通过 CODEX_LOAF_READER_HOME 覆盖。停止服务并删除该目录即可清除全部本地数据。
POST /api/send-text 可以向播放队列加入其他本地内容:
{
"source": "local-feed",
"kind": "brief",
"text": "要加入内容流的文本"
}请求需要 Authorization: Bearer <localToken>,防止其他本地程序随意注入内容。token 只保存在本地 config.json,GET /api/config 不会返回它。