OpenContent

by Enshine LEWIS
5
4
3
2
1
Score: 50/100

Description

OpenContent — Obsidian workbench for sourced writing: materials, claims, evidence, review, and human approval.

Reviews

No reviews yet.

Stats

0
stars
4
downloads
0
forks
1
days
0
days
1
days
1
total PRs
0
open PRs
0
closed PRs
1
merged PRs
0
total issues
0
open issues
0
closed issues
20
commits

Latest Version

a day ago

Changelog

OpenContent 0.8.2 keeps writing policy 1.0.2 and addresses community review feedback.

  • Add an English overview, setup instructions and disclosures for external Python/CLI processes, network services, model accounts/costs, vault enumeration and user-triggered clipboard writes.
  • Remove an overridden duplicate CSS background declaration while retaining the gradient.
  • Preserve hash-pinned writing resources on Windows Git checkouts. Their original source hashes remain unchanged.

Validation before release: Node 47/47; targeted Python doctor, lifecycle and writing checks 41/41; real Obsidian 1.13.7 in an independent synthetic vault/profile passed 16/16 checks, including the actual 0.8.2 kernel, navigation, loaded gradient, repeated opens and exact final community assets. Recommended lint: zero errors and one existing optional declarative-settings warning. Source archive matches the exact 321-file commit, and manual runtime archive matches the explicit 74-file allowlist. No new model-generation or prose-quality acceptance is claimed for this patch; application logic is unchanged.

The three original Windows symbolic-link setup failures (WinError 1314) remain unverified, and are not counted as passed by the separate junction tests. Mobile, lower Obsidian versions, other market-platform collectors and a runtime-free installation remain unverified. The previously disclosed MiniMax endpoint and full-flow limits remain unchanged.

Requires Windows desktop Obsidian 1.13.7+, Python 3.12+ and the pinned dependencies. Community installation downloads main.js, manifest.json and styles.css only. Prepare the external runtime yourself as explained in README; when using the manual-runtime ZIP, use its extracted kernel directory for dependencies and the plugin project-directory setting. AI requests use the user's existing authorized CLI/provider and may transmit selected material to that provider. No automatic model approval or public article publication.

The source and manual-runtime ZIPs are additional manual resources; Obsidian does not download them. No GitHub artifact provenance attestation is claimed. Existing 0.8.0 and 0.8.1 tags/releases are retained; the running formal installation remains at its accepted 0.8.1 until a safe upgrade window. This GitHub release alone does not certify community review approval or installation availability.

Release commit: 6c94b67d8aed2faf2abf77d9326a27e981c78bcb.

README file from

Github

OpenContent

本 feature checkout 已接入统一图文构建、指定稿件/选区改稿和独立小红书本地图文包。三种主题的预览、富文本复制、导出与微信准备共用构建身份;图片候选需作者点击采用,渠道稿独立审查批准。小红书 PNG 使用本机字体确定性排版,并非 AI 绘图,未实现自动发帖。入口、旧 outbox 恢复与验收边界见 三阶段说明 和 验证记录。已在独立 Obsidian 1.13.7 合成 Vault 完成最终宿主检查;完整回归仍保留三项 Windows 符号链接权限失败,不表示真实微信账号或作者审美验收通过。

English overview

OpenContent is a desktop plugin for turning local notes into articles with traceable sources, review records, and a final decision by the author. It captures material, extracts knowledge and claims, drafts an article, reviews it, and proposes targeted revisions. The author must approve the current article before it can be exported as a finished work. Drafts and review records are stored as Markdown in the vault.

Requirements and setup

  • Obsidian desktop 1.13.7 or later on Windows; earlier versions and other operating systems have not been verified in the native acceptance run.
  • Python 3.12 or later and the dependencies listed in requirements.txt.
  • For AI features, an existing authenticated Codex or Claude native CLI. Manual material and review workflows remain available without an AI provider.

The community plugin download contains main.js, manifest.json, and styles.css; it does not contain the Python kernel. Download and extract the repository or the complete runtime archive to a local directory of your choice, then manually run python -m pip install -r requirements.txt in that directory. In the plugin connection settings, select the directory containing opencontent/__main__.py, templates/CONTENT.md, and requirements.txt, and provide the path to your Python executable. Run the environment check before saving the connection. When using the complete runtime archive, enter its extracted kernel subdirectory for dependency installation and select that same subdirectory as the project directory. The plugin does not download, install, or update itself, Python, its dependencies, or the agent CLIs.

Usage and disclosures

Open a note and describe the intended article on the Home page. Use Writing to inspect the source material, generate and review a draft, and apply proposed revisions. Review the evidence and the current text, then explicitly approve the article before exporting it as a finished work. The plugin does not automatically approve or publicly publish articles.

The plugin starts a local Python process and communicates with it over loopback. It reads the user-selected runtime, CLI executable, and skill directories outside the vault. Model discovery may also read local CLI configuration and model catalog caches under .codex/model-catalogs; credentials are not displayed in the plugin or added to writing material. AI tasks send the selected project material and instructions through the existing CLI to the chosen provider, normally OpenAI or Anthropic. AI and image features require that provider's existing account authorization and may incur provider charges under its terms.

Vault enumeration is used to build the local material-directory list and the user-selected ideation scope; a list of file paths is not automatically sent to a model. Selected excerpts are sent only when the user starts the corresponding AI task. Clipboard support writes article text, rich text, image Markdown, or image prompts when the user clicks a copy button; the plugin does not read the system clipboard. The Python and CLI executables are launched as configured local processes (shell: false for the plugin process launch), rather than by interpreting a command string as a shell script. These local processes still have the current user's file access; this is not a complete sandbox guarantee.

Explicit Qimao market tasks fetch public rankings from Qimao. WeChat operations use api.weixin.qq.com only after configuration and confirmation. See PRIVACY.md for data handling and NOTICE.md for third-party notices. OpenContent is licensed under MIT.

The current application release is 0.8.2, with writing policy 1.0.2. A GitHub release does not certify approval or availability in the Obsidian community directory; use the directory entry to check its current review and installation status. The three original Windows symbolic-link tests could not create their test objects because of WinError 1314; separate junction regressions passed, and do not replace those symbolic-link tests. Platform-wide market collection, mobile use, and a runtime-free installation have not been verified.

Obsidian 桌面插件:把本地笔记做成可追溯、可审查、由作者最终批准的内容项目。

首页写一句想写什么,即可用当前笔记开始。写作页集中稿件与对话,发布页处理交付与公众号草稿。材料、知识、主张、证据、草稿和审查都保存在 Vault 的 Markdown 里;Python Kernel 负责状态与门禁,外部 CLI(Codex / Claude)负责生成,人工批准才算完成。

当前版本 0.8.2,适合桌面作者试用。已在 Obsidian 社区插件目录 公开列出;当前健康、审核与安装状态请以该页面为准。MIT 许可。

它做什么

  • 从笔记到成稿:捕获当前笔记或选区,提炼知识与主张,起草文章,独立 Critic 五轴审查,作者亲自批准。
  • 证据必须来自原文:研究阶段绑定真实 Knowledge / Material;引文必须能在材料正文中定位。改写数字、否定词或编造来源会被拒绝,不会被“修好”成另一条证据。
  • 选题走正式内核:本地扫描只召回候选素材组。真正选题走 /ideation:片段编号、来源组、分类与综合。采用候选会创建绑定证据快照的项目,而不是只把一句话塞进输入框。
  • 作者始终做最终决定:改稿先出提案再应用;正文、材料或宪章变化后旧批准失效;不会自动发表。
  • 数据在你的仓库里:Markdown 是内容真源。SQLite 只保存任务与锁。卸载插件不会删除文章。

工作链:

Material → Knowledge / Idea → Claim / Evidence → Artifact → Critic → 人工 APPROVED

主入口:首页 / 写作 / 发布。

环境要求

  • Windows 桌面 Obsidian 1.13.7+(本轮原生验收为1.13.7;更低版本未做原生验收,暂不声明支持)
  • Python 3.12+
  • PyYAML 6.0.3、Mistune 3.2.0、Pillow 12.3.0(见 requirements.txt)
  • 可选:已安装并登录的 Codex 或 Claude 原生 CLI(无 AI 时仍可手动维护材料与审查)

社区安装与外部运行时

OpenContent 应用版本为 0.8.2,随附写作策略版本为 1.0.2。两者独立版本化;公开 release 的 tag 必须与应用 manifest 版本一致。

社区安装只取得 main.js、manifest.json、styles.css,不包含 Python 内核。使用完整功能前,请自行准备 Python 3.12+,将本仓库或完整运行时包解压到自己选定的本地目录,再在该目录手工执行 python -m pip install -r requirements.txt。插件不会下载、安装或更新自身、Python、依赖或 Agent CLI。

在 OpenContent 的“配置连接”中,将“OpenContent 项目目录”设为上述包含 opencontent/__main__.py、templates/CONTENT.md 和 requirements.txt 的目录,并填写自己的 Python 原生可执行文件路径。先执行环境检查,再保存并连接。缺少内核会报告路径缺失,缺少依赖会报告具体模块;不会把未准备好的环境显示为成功。手工完整 ZIP 安装及安装脚本见下节。

插件仅支持桌面端,会启动本机 Python 子进程,并按用户配置调用本机 Codex/Claude 原生 CLI。AI 功能需要该 CLI 已登录的账户及相应授权,外部服务的费用与使用条件由所选提供方决定。插件会读取用户指定的 Vault 外内核目录、CLI 可执行文件及选定 skill 目录,用于运行内核与装配指令。模型列表发现还可能读取 CLI 的本机配置,以及用户主目录下 .codex/model-catalogs 的模型目录缓存;不会把凭据内容展示给插件或装配进写作材料。插件不会安装或更新这些工具。

网络使用包括插件与本机回环内核通信;执行 AI 任务时,选定项目的材料和指令经已有 CLI 发给所选模型提供方,通常为 OpenAI 或 Anthropic;图像生成同样经现有 CLI 已授权工具完成。明确执行七猫市场任务时,内核读取七猫公开榜单。配置并确认微信公众号操作后,内核访问 api.weixin.qq.com 的微信官方接口。没有自动发表或模型自动批准。隐私边界见 PRIVACY.md。

安装

克隆本仓库,安装依赖,再把插件写入已有 Vault:

git clone https://github.com/cloudenshine/OpenContent.git
cd OpenContent
python -m pip install -r requirements.txt
python scripts/install_plugin.py --vault "你的 Vault 路径" --configure

如果在 Obsidian 中使用自定义配置目录,手工安装时添加 --config-dir "所选 Vault 相对配置目录"。目录必须已存在且位于该 Vault 内,安装脚本不会创建新 Vault。社区三文件安装使用 Obsidian 提供的配置目录;自定义目录的环境检查需要此版本的完整运行时。

然后在 Obsidian 中关闭安全模式,启用社区插件 OpenContent。首次打开会离线检查 Python、依赖、内核和 Vault 写权限;通过后 Kernel 才在本机回环启动。

安装脚本会把界面文件和 kernel-0.8.2/ 写入 .obsidian/plugins/opencontent/,替换前备份到 .opencontent/install-backups/。--configure 使用随包内核,并保留其他项目与账号设置。不要同时为同一 Vault 再手动启动一份 Kernel。

试用包与演示仓库见 独立试用说明。

日常使用

  1. 打开一篇笔记,首页写目标读者问题;可勾选“使用当前笔记”。
  2. 需要跨资料选题时,用命令面板 从仓库发现新选题。先核对目录与篇数,再综合生成候选;采用后会创建绑定来源快照的项目。
  3. 在写作页预览材料范围,开始创作。Kernel 按 distill → research → draft → critique 推进;每步先验证再保存。
  4. Judgment Inbox 显示待判断稿件。WARN/FAIL 时不能批准。打开证据链与 Diff,在原生编辑器修订后再审。
  5. 五轴 PASS 后,填写决定人与理由。Accept 绑定当前正文与依赖版本。
  6. 已批准版本可导出读者 Markdown,或准备公众号草稿。草稿复制与正式成品复制是两条路径:未批准稿可以复制预览,但不能当成已定稿发布。

无 AI 时,用项目视图的手动补充、原生编辑器和人工 Critic Review 走同一套门禁。

数据布局

Vault/
  CONTENT.md                         # 可编辑的共同宪章
  OpenContent/
    Material/  Knowledge/  Idea/  Project/
    Claim/     Evidence/   Artifact/  Review/  Publication/
  OpenContent-Workspace/             # 项目对话
  OpenContent-Exports/               # 已批准读者稿
  .opencontent/                      # 任务、诊断、写锁(不是内容真源)

稳定 ID 与字段见 Schema。隐私范围见 PRIVACY.md。

设计原则

  • 证据先于正文:无效 Knowledge ID 不会被改绑到项目里的另一条知识;引文必须是材料原文切片。
  • 研究底稿与读者成品分离:research 可保存问题、观察、竞争解释与缺口;这些进入后续写作与审查,但不作为读者正文。
  • 表达可以自然,事实边界不能放松:默认仍检查主张原句。opt-in 的 Artifact v2 允许忠实转述,但必须有正文片段绑定,并由 Critic 确认语义保真。
  • Kernel 是权威,插件是界面:批准、导出、发表状态以 Kernel 当前版本检查为准,不以页面上一次渲染为准。

开发与验证

python scripts/verify.py
python scripts/doctor.py --runtime .

自动套件覆盖前端/引擎测试、Python 内核与写作策略测试;实际数量以所选提交的运行日志为准。架构见 ARCHITECTURE。

当前范围

OpenContent 的论证与证据整理使用已捕获材料。Narrative 长篇市场任务另提供明确选择的七猫公开日榜采集;其他市场来源支持带来源的 JSON 导入,短篇尚无自动采集适配器。详见 市场与封面修复验收。公众号链路需要本机配置账号,模拟协议通过不代表已经发表。自动 Critic 目前限定每个项目一个 Artifact;额外稿件用人工审查。

尚未完成:无 Python 的一键分发、多产物自动审查、大规模 Vault / 移动端 / 团队验收。已知缺口与发布标准见 公开发布准备度。

文档

主题 文档
完整使用指南 USER-GUIDE
创意能力包架构 CAPABILITY-PACK-ARCHITECTURE
叙事能力包 (Narrative) NARRATIVE-PACK-v1
安装与试用 TRIAL-QUICKSTART
项目工作台 PROJECT-WORKBENCH-v0.5
跨资料选题 CORPUS-IDEATION-v0.6
公众号接入 WECHAT-SETUP
隐私 PRIVACY.md
架构 ARCHITECTURE

许可

MIT。第三方声明见 NOTICE.md。