GitRead 中文社区
首页趋势排行榜原创文章严选周刊
更多资源
新手训练营
精选专题热门话题GitHub 文档资源精选实战指南

ophel

把 AI 对话转化为可组织、可复用的工作流,适用于主流 AI 平台

  • 语言TypeScript
  • 默认分支main
  • 大小50.3 MB
  • 更新9 小时前
  • Issues25
在 GitHub 打开
avatarurzeye

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

把 AI 对话变成资产:urzeye/ophel 的技术拆解

项目背景与痛点

绝大多数人使用 AI 的方式仍然是“一次性”的:打开对话框、敲一段提示词、拿到答案、关掉页面。第二天遇到同类问题,再从头复制粘贴一次。真正有价值的提示词散落在浏览器书签、Notion 笔记和微信收藏中,且与具体的对话上下文割裂。

痛点其实有两层。第一层是资产化:提示词需要有标签、分类、版本和变量占位,才能被复用,而不是每次手工重写。第二层更棘手:跨平台。ChatGPT、Claude、Gemini、DeepSeek、Kimi 各有各的 DOM 结构、各有各的输入框实现,一份提示词资产要能“一键落到任意一个平台的输入框里”,这才是工程难点所在。

urzeye/ophel 的定位正是这条缝隙:把 AI 对话转化为可组织、可复用的工作流。它的关键选择是从浏览器扩展切入——不依赖任何官方 API,不需要把密钥交给第三方服务器。

核心技术揭秘

从项目形态判断,ophel 采用的是典型的 Manifest V3 浏览器扩展架构:后台 Service Worker 负责持久化与消息路由;侧边栏或悬浮面板承载管理界面;Content Script 注入到各个 AI 平台页面,承担 DOM 读写。真正的技术难点在于如何用一层抽象覆盖多个结构完全不同的前端站点。

graph TD A[侧边栏面板 UI] --> B[消息总线] B --> C{"任务类型"} C -->|"资产读写"| D[IndexedDB 资产库] C -->|"对话注入"| E[平台适配器注册表] D --> F[模板引擎:变量插值渲染] F --> E E -->|"ChatGPT"| G[ChatGPT 适配器] E -->|"Claude"| H[Claude 适配器] E -->|"Gemini"| I[Gemini 适配器] G --> J[输入框注入:原生 Setter 加事件派发] H --> J I --> J J --> K[SPA 路由监听:状态同步]

第一,适配器模式是系统骨架。 每个平台对应一个适配器,对外暴露统一接口:getMessages()、setInput()、getConversationId()、isReady()。平台差异被压缩成配置化的选择器映射表,宿主页面改版时只需修改映射,不必改动上层业务逻辑。这是这类工具唯一可行的架构选择,但也埋下了长期维护成本的隐患。

第二,输入框注入是这个项目最容易被低估的技术细节。 主流 AI 平台几乎所有对话输入框都是 React 或 Vue 的受控组件,不少还基于 ProseMirror、Lexical、Quill 等富文本引擎。直接赋值 input.value = text 无济于事——框架的内部 state 不会更新,发送按钮依然是灰色。正确做法只能是:调用原生 HTMLInputElement.prototype.value 的 setter 绕过框架劫持,然后手动派发 input 事件让框架同步状态;对于 contenteditable 场景,则要用 document.execCommand('insertText') 或直接构造 beforeinput 事件。这套方法对每个平台都需要单独验证,没有银弹。

第三,SPA 路由与状态同步。 AI 平台大多是单页应用,切换会话不会触发页面 reload,Content Script 只会在首次加载时执行。因此必须重写 history.pushState/replaceState 并配合 MutationObserver 监听挂载节点,才能在“用户切了一个新对话”时重新初始化适配器。这也是为什么很多同类工具会出现“第一次能用,切会话后失效”的经典 bug。

第四,MV3 的生命周期约束。 Service Worker 随时可能被浏览器回收,任何状态都不能只放在内存里。ophel 如果要支持对话抓取、工作流配置、提示词库,就必须把状态落到 IndexedDB,后台只做无状态的消息中转。这反过来推动了它“本地优先”的产品哲学。

至于“工作流”这一层,本质是模板引擎 + 步骤编排:提示词中嵌入 {{变量}} 占位符,执行时通过插值渲染生成最终文本,多条提示词则按顺序串成流水线,前一步的输出作为后一步的输入。

功能亮点与差异

与 PromptPerfect、各类“提示词管理器”相比,ophel 的差异点有三:

  • 零后端、零密钥。所有资产留在本地浏览器,这对企业内部合规场景极其重要——你不需要向任何第三方解释“为什么提示词要上传到你们的服务器”。
  • 双向打通。多数工具只做“存”,ophel 做“存 + 取 + 回填”,把提示词库和真实对话框连成闭环,这是体验上最本质的差别。
  • 对话本身也是资产。除了提示词,它能把对话导出为结构化内容,让“这段对话值得留下来”成为可执行的动作,而不是截图。

应用场景与落地建议

适合的场景很明确:个人或小团队的提示词资产沉淀、客服/运营的标准化 SOP 问答、内容创作者的多平台交叉验证(同一段提示词分别投给三家模型做对比)。

在生产环境使用前,有几点必须注意:

  1. 它不是自动化管道。依赖 DOM 的注入方式天然脆弱,平台一次 A/B 测试式的改版就可能失效。如需稳定批量调用,请走官方 API,扩展只承担“人工触发的辅助工具”角色。
  2. 权限最小化审查。Content Script 若要覆盖多个域名,需要评估其在非 AI 站点上的读取风险,建议在扩展设置中按需启用。
  3. 资产备份。本地存储意味着清空浏览器数据即等于资产蒸发,务必定期导出。
  4. 版本锁定与选择器维护。团队内部分发时,应固定扩展版本并建立“改版失效”的反馈通道。

综合评价

优点:架构选型克制而正确,适配器层把多平台复杂性收敛得干净;本地优先的设计在隐私合规上几乎无懈可击;提示词与对话的双向闭环在实际使用中确实能提升效率。

缺点:整个系统的地基是各大平台的 DOM 契约,而这份契约从不承诺稳定性。这意味着它永远处于“维护追赶”的状态,适配器的数量越多,熵增越快。此外,MV3 下跨上下文通信的调试体验不佳,二次开发门槛不低;工作流编排若只停留在顺序串联,相比脚本化的方案仍显单薄。

一句话总结:这是一个把“提示词”从临时输入升级为可管理资产的务实工具,架构思路值得学习,但请把它当作效率助手,而非生产依赖。

内容更新时间:4 天前。 编辑团队负责选题与抽样审核,详见 编辑准则。

相关仓库

freeCodeCamp/freeCodeCamp avatar
freeCodeCampfreeCodeCamp
4 小时前
458.9k
46.8k
86

freeCodeCamp.org 的开源代码库和课程体系。免费学习数学、编程和计算机科学。

learn-to-codenonprofitsprogramming+7
TypeScript
571.3 MB
9
详情
morluto/rea avatar
reamorluto
6 小时前
449.1k
110.6k
1.7k

借助智能体逆向分析任何内容,从应用行为直至原生二进制文件。

agent-skillsaiandroid+17
TypeScript
146.5 MB
0
详情
openclaw/openclaw avatar
openclawopenclaw
4 小时前
394.3k
82.9k
8.1k

真正做实事的 AI。任何 OS。任何平台。龙虾之道。🦞

aiassistantcrustacean+4
TypeScript
13.2 GB
18
详情
nilbuild/developer-roadmap avatar
developer-roadmapnilbuild
9 小时前
371.7k
43.0k
5

交互式路线图、指南及其他教育内容,帮助开发者在职业生涯中成长。

computer-scienceroadmapdeveloper-roadmap+7
TypeScript
356.1 MB
2
详情
deepseek-ai/deepseek-harness avatar
deepseek-harnessdeepseek-ai
6 天前
278.1k
34.0k
0

DeepSeek Harness:一切皆插件。

ai-agentscordisdsh+1
TypeScript
351.8 MB
3
详情
anomalyco/opencode avatar
opencodeanomalyco
4 小时前
225.8k
30.5k
4.3k

开源编码代理。

TypeScript
674.7 MB
0
详情
vuejs/vue avatar
vuevuejs
2024年10月10日
212.6k
33.8k
368

这是 Vue 2 的仓库。如需 Vue 3,请前往 https://github.com/vuejs/core

frameworkfrontendjavascript+1
TypeScript
31.4 MB
0
详情
n8n-io/n8n avatar
n8nn8n-io
4 小时前
210.0k
61.4k
1.2k

具备原生 AI 能力的公平代码工作流自动化平台。将可视化构建与自定义代码相结合,支持自托管或云端部署,提供 400+ 种集成。

automationipaasn8n+7
TypeScript
784.5 MB
3
详情

关于

ai-assistantai-studioai-workflowbrowser-extensionchatgptchrome-extensionclaudegeminigroklong-conversationoutlineproductivityprompt-management
  • GNU General Public License v3.0
  • 1.0k Stars
  • 59 Forks
  • 3 Watching

简要分析

热度分
1144
价值分
630
活跃状态
活跃
GitHub

语言占比

CSS
JavaScript
TypeScript

Release

  • Ophel Atlas v1.3.21 天前
  • Ophel Atlas v1.3.15 天前
  • Ophel Atlas v1.3.01 周前
  • Ophel Atlas v1.2.132 周前
  • Ophel Atlas v1.2.68月28日

贡献者

urzeyeurzeyedependabot[bot]dependabot[bot]allcontributors[bot]allcontributors[bot]CopilotCopilotjoevalleyfieldjoevalleyfieldPiracolaPiracolaGitoffthelawnGitoffthelawnIce-wildernessIce-wildernesslanventlanventRyanLin-InfEvoRyanLin-InfEvoKanameMadoka520KanameMadoka520t0ny-pengt0ny-peng

Ophel Atlas 🚀

Turn AI chats into documents you can read, navigate, and reuse

Language: English | 简体中文

Ophel Logo

✨ Turn Conversations into Knowledge, Not Just History ✨

No more getting lost in endless scroll. Clarify context with real-time Outlines, Build your system with Chat Folders, Refine experience with the Prompt Library, Let sparkling thoughts flow freely in order.

👇 Demo: From “Infinite Scroll” to “Navigable AI Documents”

Image

Making AI chat a truly organizeable workflow for the first time

No matter which of these platforms you use, Ophel lets you organize conversations into reusable workflows with a consistent, unified experience.

ChatGPT Gemini Claude AI Studio Gemini Enterprise Gemini Notebook Grok
Doubao DeepSeek Kimi Z.ai ChatGLM Qianwen Qwen Studio Yuanbao ima
Plugin-style site adapters: more sites, plug & play
Version License Last Commit Stars Forks
Chrome Web Store Edge Add-ons Firefox Add-ons Greasy Fork ScriptCat

📣 Help promote Ophel Atlas

Core Features • Quick Start • Support Ophel Atlas • Get Involved

🌐 English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Deutsch | Français | Español | Português | Русский

✨ Core Features

Ideal for learning, research, requirements analysis, code discussions, content creation — any AI conversation that needs structure, order, and reuse.

Feature Description
🧭 Smart Outline Auto-parse conversation structure into a navigable TOC with hierarchical collapse, search, anchors, bookmarks, outline copy, and word counts
💬 Chats Folders + tags for dual-dimension management, auto-sync from source sites, search, batch ops, and drag-to-reorder
📤 Export Multi-format export (Markdown/JSON/TXT), zip packages with images and attachments, segmented export for precise content extraction
💡 Prompt Library Variable templates, categorization, one-click insert, prompt chains and queue for automated sequential sending, selection quote actions
🧩 Site Adapters Built-in adapters for 15 major AI sites; install adapter packs from the "Site Packs" section to hot-swap support for even more sites, with cloud updates that auto-fix built-in adapters
🔍 Global Search Unified search across chats, outlines, prompts, and settings with folder: tag: date: syntax filters and fuzzy matching
📖 Reading Mermaid diagram rendering, LaTeX formula support, user question Markdown styling, scroll lock
⌨️ Productivity Reading history restore, custom shortcuts, model lock, enhanced tab naming, AI completion notifications
🎨 Themes 20+ themes, custom CSS, widescreen mode, Zen mode, Option+D to toggle dark/light
🔒 Privacy & Data Local storage by default, WebDAV multi-device sync, file import/export, zero data collection

📖 Full Documentation →

Important 重要

Ophel Atlas puts privacy first: local by default, your data stays in your control.

  • Local by default: settings, prompts, and chat management data are stored in your browser
  • No account required: use it without signing up
  • Permissions on demand: optional permissions are requested only when needed and can be revoked anytime (see the Permissions page in the extension)
  • Optional WebDAV sync: use your own WebDAV for multi-device consistency (controllable, portable)
  • Export & backup: export and migrate to avoid lock-in

Support for specific AI sites depends on site matching and page structure changes

🚀 Quick Start

Tip 提示

We highly recommend using the Browser Extension version for a more complete feature set, better experience, and higher compatibility. The Userscript version has limitations.

Chrome Web Store Edge Add-ons Firefox Add-ons Greasy Fork ScriptCat

Manual Installation (Offline or Restricted Access)
Browser Extension
  1. Download & unzip from Releases
  2. Open browser extensions page, enable Developer mode
  3. Click Load unpacked and select the unzipped folder
Userscript
  1. Install Tampermonkey
  2. Download .user.js file from Releases
  3. Drag into browser or click the link to install
FAQ: How do custom SitePack domains work in the userscript build?

Userscript managers cannot let Ophel add new @match entries automatically. After adding a custom site under Settings → Site Packs, copy every rule shown in the userscript access notice and add it through your manager:

  • Tampermonkey: open the Ophel script, select Settings → Includes/Excludes → User matches, add the copied rules, and save.
  • Violentmonkey: open the Ophel script settings and add the rules under its custom @match rules.
  • ScriptCat: open the script settings and add the rules under user/custom match rules; the label can vary by ScriptCat version.

Reload each target site after saving. Prefer manager-side custom rules over editing Ophel’s metadata header directly: custom rules are retained when the userscript updates.

🙌 Support Ophel Atlas

💖 Angel Support

treasuresure
treasuresure

🌟 Supporters

Hugh
Hugh
**南
**南
anonymous
anonymous
狷客行舟🍜狂?
狷客行舟🍜狂?
**煜
**煜
Ice_wilderness
Ice_wilderness
Jeff Peng
Jeff Peng
 火华兰樱
火华兰樱
Lewu Gao
Lewu Gao
Will
Will
Steel Maestro
Steel Maestro
Count Basil
Count Basil
anonymous
anonymous
**然
**然

If Ophel Atlas has sparked joy in your workflow or saved you valuable time, consider fueling its journey with a Star or a Sponsor. ☕️

Sharing is just as powerful: We'd be thrilled if you shared your experience on Reddit, X, YouTube, Linux.do, or Appinn. Every piece of feedback and every shoutout helps Ophel grow!

Buy Me a Coffee at ko-fi.com

WeChat Pay
WeChat Pay
Alipay
Alipay
urzeye's Afdian Profile
Afdian

🤝 Get Involved

"If you want to go fast, go alone. If you want to go far, go together."

Thanks to the Linux.do community for the discussions and support. Many ideas and improvements in this project came from feedback shared by community members.
We also look forward to more developers joining us. If you are not familiar with the codebase, check out the documentation or use AI assistants to get up to speed quickly:

Official Docs   Ask DeepWiki   Ask Zread

Report Issue   Submit PR

💻 Local Development Guide

Requirements: Node.js >= 18.x, pnpm >= 9.x

# 1. Clone the repo and enter the project directory
git clone https://github.com/urzeye/ophel.git
cd ophel

# 2. Install dependencies
pnpm install

# 3. Start development server (supports browser extension HMR)
pnpm dev

# ======== Build and Package ========

# Build production versions for respective browsers
pnpm build              # Build Chrome extension
pnpm build:firefox      # Build Firefox extension
pnpm build:all          # Build for all platforms

# Package into distributeable archives (.zip)
pnpm package            # Package Chrome extension from existing build
pnpm package:firefox    # Package Firefox extension from existing build
pnpm package:all        # Package all platforms

# ======== Userscript Development ========

pnpm build:userscript:local    # Build userscript for local debugging
pnpm serve:userscript:assets   # Serve static assets locally
Tip 提示

💡 Contribution Guidelines: Before submitting a PR, we recommend forking the repo, creating a new branch, and ensuring your code passes pnpm lint:check and pnpm typecheck.


🌌 Open source is powered by the stars of its community.

Our deepest gratitude to the amazing individuals below. Your contributions make this repository shine brighter.

小 i 同学
小 i 同学
💻 🤔 🚇
treasuresure
treasuresure
🎨 💵
去年夏天
去年夏天
💻
Jianglang
Jianglang
💻 🐛
Felix Liu
Felix Liu
💻
Madoka
Madoka
💻
Lin Zit Ting
Lin Zit Ting
💻
joevalleyfield
joevalleyfield
💻
hugo2233
hugo2233
📣
t0ny-peng
t0ny-peng
💻
mrpops2ko
mrpops2ko
💻
Suxixihuanni
Suxixihuanni
📣
Ice-wilderness
Ice-wilderness
💻 🐛
Gitoffthelawn
Gitoffthelawn
📖
Dr. Sri Harsha Guthikonda
Dr. Sri Harsha Guthikonda
💻
crazyn2
crazyn2
💻
Cola
Cola
💻

⭐ Star History

Star History Chart

Made with ❤️ by urzeye · GPLv3 License

评论

登录 后发表评论
暂无评论
GitRead 中文社区
深度解读 · 趋势洞察 · 价值精选

关于

关于我们联系我们编辑准则收录标准赞赏人员

发现

技术趋势新手训练营资源精选实战指南精选专题热门话题GitHub 文档

条款

隐私政策服务条款网站地图
26.9万收录项目
5.9万中文话题
155精选专题
发现技术价值,连接开源智慧
© 2026 GitRead · GitHub 中文社区 本站与 GitHub, Inc. 无隶属关系;GitHub 是 GitHub, Inc. 的商标。