
| 🤖 AI Assistant | ✍️ Compile & Preview | 📚 Templates |
|---|---|---|
| Chat / Agent history |
Tools multi-step edits | TexLive / Tectonic / Auto
PDF preview & download | ACL / CVPR / NeurIPS / ICML
One-click conversion |
| 🔄 Template Transfer | ||
|---|---|---|
| Legacy (LaTeX→LaTeX) / MinerU (PDF→MD→LaTeX) |
LLM-powered migration + auto compile fix + VLM layout check | | |
| 🔧 Advanced Editing | 🗂️ Project Management | ⚙️ Configuration |
|---|---|---|
| AI autocomplete / Diff / diagnose | Multi-project + file tree + upload | OpenAI-compatible endpoint |
Local-first privacy |
| 🔍 Search | 📊 Charting | 🧠 Recognition |
|---|---|---|
| WebSearch / PaperSearch | Chart from tables | Formula/Chart recognition |
| 👥 Collaboration | 📝 Peer Review | |
|---|---|---|
| Multi-user real-time editing |
Cursor sync & online management | AI Review Report / Consistency
Missing Citations / Compile Summary | |
[!WARNING] 🚧 Template Transfer is under testing
The Template Transfer feature is currently in beta and may contain known or unknown bugs. If you encounter any issues, please report them via Issues.
[!TIP] 🆕 2025-02 · Template Transfer (Dual Mode)
Two transfer modes are now available: Legacy mode (LaTeX→LaTeX direct migration) and MinerU mode (PDF→Markdown→LaTeX via MinerU API). Both modes feature LLM-powered content migration, automatic compile error fixing, and optional VLM-based layout checking.
[!TIP] 🆕 2025-02 · Real-time Collaboration
Multi-user simultaneous editing is now available, powered by CRDT with automatic conflict resolution and cursor sync. Current version requires a server with a public IP; invite remote collaborators via token-based links.

✨ Home preview: three-panel workspace + editor + preview
OpenPrism is a local-first LaTeX + AI workspace for academic writing, optimized for fast editing, controlled changes, and privacy.
references.bib
✨ AI Assistant | LaTeX Editor | PDF Preview

✨ Synchronized editing and preview

✨ Generate diff suggestions for review

✨ Parse compile errors and jump to locations

✨ Online search with concise summaries

✨ Academic search and citation info

✨ Turn tables into charts in one step

✨ Recognize structures for editable outputs

✨ Option/Alt + / to trigger, Tab to accept

✨ AI Quality Check: Review Report / Consistency Check / Missing Citations / Compile Summary

✨ Multi-user real-time collaborative editing with cursor sync and online user management
OpenPrism requires a LaTeX engine to generate PDFs. Choose one of the following options based on your OS:
Option 1: TexLive (Recommended)
- Linux (Ubuntu/Debian):
bash
sudo apt-get update
sudo apt-get install texlive-full
- Linux (CentOS/RHEL):
bash
sudo yum install texlive texlive-*
- macOS:
bash
brew install --cask mactex
- Windows: Download TexLive installer
Option 2: Tectonic (Lightweight)
- Linux/macOS:
bash
curl --proto '=https' --tlsv1.2 -fsSL https://drop-sh.fullyjustified.net | sh
- Windows: Download Tectonic installer
Note: TexLive full installation is ~5-7GB, Tectonic is lighter but with fewer features. TexLive is recommended for Linux servers.
# 1. Clone repository
git clone https://github.com/OpenDCAI/OpenPrism.git
cd OpenPrism
# 2. Install dependencies
npm install
# 3. Start dev server (frontend + backend)
npm run dev
Access: - Frontend: http://localhost:5173 - Backend: http://localhost:8787
# 1. Build frontend and backend
npm run build
# 2. Start production server
npm start
# 1. Install Node.js (Ubuntu example)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 2. Install TexLive
sudo apt-get update
sudo apt-get install -y texlive-full
# 3. Verify installation
node --version # Should show >= 18.0.0
pdflatex --version # Should show TexLive version
# 4. Clone and deploy project
git clone https://github.com/OpenDCAI/OpenPrism.git
cd OpenPrism
npm install
npm run build
# 5. Configure environment variables (optional)
cat > .env << EOF
OPENPRISM_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions
OPENPRISM_LLM_API_KEY=your-api-key
OPENPRISM_LLM_MODEL=gpt-4o-mini
OPENPRISM_DATA_DIR=/var/openprism/data
PORT=8787
EOF
# 6. Start service
npm start
# 7. Use PM2 for process management (recommended)
sudo npm install -g pm2
pm2 start npm --name "openprism" -- start
pm2 save
pm2 startup
Create a .env file in the project root (optional):
# LLM Configuration
OPENPRISM_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions
OPENPRISM_LLM_API_KEY=your-api-key
OPENPRISM_LLM_MODEL=gpt-4o-mini
# Data storage path
OPENPRISM_DATA_DIR=./data
# Backend service port
PORT=8787
# MinerU API Configuration (for PDF→MD→LaTeX transfer)
OPENPRISM_MINERU_API_BASE=https://mineru.net/api/v4
OPENPRISM_MINERU_TOKEN=your-mineru-token
OpenPrism supports any OpenAI-compatible endpoint, including custom base_url:
Method 1: Environment Variables
# .env file
OPENPRISM_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions
OPENPRISM_LLM_API_KEY=sk-your-api-key
OPENPRISM_LLM_MODEL=gpt-4o-mini
Method 2: Frontend Settings Panel - Click the "Settings" button in the frontend interface - Fill in API Endpoint, API Key, and Model - Configuration is automatically saved to browser localStorage

✨ LLM Configuration Settings Panel
Supported Third-party Services:
- OpenAI: https://api.openai.com/v1
- Azure OpenAI: https://your-resource.openai.azure.com/openai/deployments/your-deployment
- Other compatible services: https://api.apiyi.com/v1
Supported Compilation Engines:
- pdflatex - Standard LaTeX engine
- xelatex - Supports Unicode and Chinese
- lualatex - Supports Lua scripting
- latexmk - Automated build tool
- tectonic - Modern lightweight engine
Configuration Method: 1. Select compilation engine in frontend "Settings" panel 2. Set to "Auto" for automatic fallback to available engines 3. Customize TexLive resource path
Default data storage is in ./data directory, can be modified via environment variable:
# Custom data directory
OPENPRISM_DATA_DIR=/var/openprism/data
Directory Structure:
data/
├── projects/ # User projects
│ ├── project-1/
│ │ ├── main.tex
│ │ └── references.bib
│ └── project-2/
└── templates/ # Template cache
OpenPrism includes a built-in real-time collaboration system based on CRDT (Yjs) + WebSocket, allowing multiple users to edit the same document simultaneously without any third-party service.
Add the following to your .env file:
# Token signing secret (must change for production)
OPENPRISM_COLLAB_TOKEN_SECRET=your-secure-random-string
# Require token for collaboration (default: true, set false for local dev)
OPENPRISM_COLLAB_REQUIRE_TOKEN=true
# Token TTL in seconds (default: 86400 = 24 hours)
OPENPRISM_COLLAB_TOKEN_TTL=86400
$ claude mcp add OpenPrism \
-- python -m otcore.mcp_server <graph>