![]()
A local-first desktop workbench for LaTeX writing, synchronized PDF feedback, agent workflows, and optional cloud collaboration.
English | 中文
ViewerLeaf is a macOS-first academic writing environment built for people who want source editing, compile feedback, PDF preview, AI assistance, and project operations to stay in the same workspace.
Instead of splitting LaTeX, model clients, figure tools, and collaboration links across separate apps, ViewerLeaf keeps them attached to the same project context.
pdf.js, plus SyncTeX-style navigation between source and preview| Path | Purpose |
|---|---|
src/ |
React + Vite frontend for the desktop shell, editor panes, preview panes, sidebars, and collaboration UI |
src-tauri/ |
Rust backend for desktop commands such as file access, compile, terminal, provider, skill, sync, and agent orchestration |
sidecar/ |
Node-based sidecar runtime that executes provider-backed agent and tool workflows |
workers/ |
Optional Cloudflare Worker collaboration backend and deployment scripts |
skills/ |
Built-in writing and figure skills used by the agent workflow |
latexmksynctexRun the desktop app:
npm install
npm run tauri dev
Run only the frontend shell in a browser:
npm install
npm run dev
npm run test
npm run lint
npm run build
npm run tauri build
./workers folder when deploying from the app, but they still need Node.js and a valid Wrangler login.GitHub Actions builds are currently unsigned and not notarized. On macOS, downloading the app from GitHub may trigger a warning such as "is damaged" or prevent the app from opening.
To remove the quarantine flag locally:
xattr -dr com.apple.quarantine /Applications/ViewerLeaf.app
If you are opening a downloaded DMG first, you can also remove quarantine from the DMG:
xattr -dr com.apple.quarantine /path/to/ViewerLeaf_0.1.0_aarch64.dmg
You may also need to open the app once from System Settings -> Privacy & Security.
This project is licensed under the MIT License. See LICENSE.
ViewerLeaf 是一个面向 macOS、强调本地优先的学术写作工作台,把 LaTeX 编辑、编译反馈、PDF 预览、AI 工作流和项目级操作放进同一个桌面环境里。
它的目标不是再包一层编辑器,而是减少论文写作时在源码、模型客户端、图表工具和协作入口之间来回切换的成本。
pdf.js 的 PDF 预览,以及源码和预览之间的 SyncTeX 式跳转| 路径 | 作用 |
|---|---|
src/ |
React + Vite 前端,负责桌面工作区、编辑器、预览区、侧栏和协作界面 |
src-tauri/ |
Rust 桌面后端,负责文件访问、编译、终端、Provider、技能、同步和 Agent 编排 |
sidecar/ |
基于 Node 的 sidecar 运行时,用来执行 Provider 驱动的 Agent 与工具调用流程 |
workers/ |
可选的 Cloudflare Worker 协作后端及部署脚本 |
skills/ |
内置写作与图表技能定义 |
latexmksynctex启动桌面应用:
npm install
npm run tauri dev
只启动浏览器里的前端壳层:
npm install
npm run dev
npm run test
npm run lint
npm run build
npm run tauri build
./workers 文件夹,但仍然需要本机有 Node.js,并且已经通过 Wrangler 登录 Cloudflare。当前 GitHub Actions 构建产物还没有做 Apple 签名和公证。在 macOS 上直接从 GitHub 下载时,系统可能提示“已损坏”或阻止应用打开。
可以在本地移除 quarantine 标记:
xattr -dr com.apple.quarantine /Applications/ViewerLeaf.app
如果你是先下载 .dmg 再安装,也可以先对 DMG 执行:
xattr -dr com.apple.quarantine /path/to/ViewerLeaf_0.1.0_aarch64.dmg
必要时还可以到“系统设置 -> 隐私与安全性”中手动允许打开一次。
本项目采用 MIT 许可证,见 LICENSE。
$ claude mcp add Oh-my--paper \
-- python -m otcore.mcp_server <graph>