Unified Multi-Format Desktop Document Studio & Autonomous AI Research Partner
Features • Installation • Building Releases • Shortcuts • API Setup • Tech Stack
OmniDoc Studio is an open-source, cross-platform desktop application designed to eliminate context-switching across diverse document workflows. Built with Electron 33, React 18, and TypeScript, OmniDoc unifies document viewing, WYSIWYG editing, data manipulation, deep web research, and collaborative workspace management inside a refined, high-contrast Midnight Instrument environment.
Whether reading scientific papers in PDF, authoring technical documentation in Markdown with live KaTeX math, editing DOCX memos, analyzing CSV/JSON datasets in an interactive grid, or conducting autonomous deep research with synthesis citations, OmniDoc Studio handles it all locally with zero latency.
- Markdown Studio (
.md,.markdown):- Live split preview with synchronized bi-directional scrolling.
- Full KaTeX mathematical formula rendering and Mermaid diagram visualizer.
- Markdown table creator, task lists, blockquotes, and quick formatting action bar.
- High-Performance PDF Viewer (
.pdf):- Native PDF.js 4.x rendering with hardware-accelerated canvas output.
- Selectable text layer for precise selection and inline AI assistant prompts.
- Zoom controls (fit-to-width, fit-to-page, custom scaling) and quick page navigation.
- DOCX Word Processor (
.docx):- Rapid document parsing via Mammoth.js into a Tiptap v2 WYSIWYG editor.
- Full text styling, head-level formatting, and bullet/numbered lists.
- Native DOCX document serialization preserving styling and structure on export.
- Interactive Data Grid (
.csv,.json):- Tabular spreadsheet editor with instant cell editing and keyboard navigation.
- Multi-column sort, dynamic row/column addition, and schema validation.
- Seamless bidirectional conversion between CSV and JSON formats.
- Code Studio (
.ts,.py,.rs,.go,.cpp,.json, etc.):- Syntax highlighting powered by Shiki with themes like
one-dark-pro. - Line counter, code folding, and in-file regex search.
- Syntax highlighting powered by Shiki with themes like
- Multi-Provider LLM Gateway: Connect seamlessly to Google Gemini (2.5 Flash / Pro), Anthropic Claude (3.5 Sonnet / Haiku), OpenAI (GPT-4o), or 100% local, private endpoints (LM Studio, llama.cpp, Ollama) with 1-click server presets and auto-model discovery.
- Autonomous Deep Web Research: Powered by Tavily and Exa search engines to extract real-time web intelligence, cross-verify claims, and compile synthesized reports complete with live citations and domain filters.
- Save to Workspace or Device: Flexibility to save generated research briefs straight into an active team workspace or download them directly to your disk.
- Inline Selection Assistant: Highlight any paragraph or snippet in your document to trigger quick rewrites, explanations, translations, or technical proofs.
- Persona Modes: Adapt Omni's persona on the fly (Co-writer, Researcher, Technical Proofreader, Brainstormer).
- Team Workspaces & Invite Codes: Create isolated collaborative workspaces and generate share codes for teammates to join instantly.
- Git Sync Integration: Pull, commit, and push updates directly to remote Git branches with conflict detection.
- Team Kanban Board: Manage project progress with customizable columns (Backlog, In Progress, Review, Done) and priority tags.
- Review Inbox & Threaded Comments: Leave highlighted feedback, resolve comments, and track reviewer approvals across documents.
- Ergonomic dark aesthetic with high-contrast typography designed for long reading and writing sessions.
- Tab management with change detection (
•unsaved indicator) and format-coded accents. - Recent files quick access with individual hover dismiss (
✕) and bulk clear. - Contextual Command Palette (
Ctrl+K/⌘K) and Shortcuts cheat sheet (?/⌘/).
- Node.js: v18.0.0 or later (v20+ recommended)
- npm: v9.0.0 or later
- Git: Installed and configured
# 1. Clone the repository
git clone https://github.com/Sumeet-basfore/omnidoc.git
cd omnidoc
# 2. Install dependencies
npm install
# 3. Launch in development mode with Hot Module Replacement (HMR)
npm run dev# Type check both Node (Electron main/preload) and Web (React renderer)
npm run typecheck
# Verify zero violations on UI design system guardrails
npm run guard:ui
# Full production build bundle check
npm run buildOmniDoc Studio is pre-configured with electron-builder to produce production-ready desktop installers for Linux, Windows, and macOS.
A pre-configured GitHub Actions workflow (.github/workflows/release.yml) compiles binaries across Ubuntu, macOS, and Windows simultaneously and creates a draft release on GitHub with all binaries attached.
- Tag your release with semantic versioning:
git tag v2.0.0 git push origin v2.0.0
- Navigate to your repository's Actions tab on GitHub:
- The Release workflow will execute automatically.
- It runs UI guard checks, TypeScript checks, builds the app, and publishes to GitHub Releases.
- Once finished, visit your repository's Releases page (
https://github.com/Sumeet-basfore/omnidoc/releases):- Review the generated release draft.
- Edit the release notes if desired, and click Publish Release!
You can compile installers locally on your machine and upload them manually to your GitHub Release.
- Linux (produces
.AppImage,.deb,.rpm):npm run build:linux
- Windows (produces
.exeNSIS installer and portable executable):npm run build:win
- macOS (produces
.dmgand.zipfor Intel and Apple Silicon):npm run build:mac
- Unpacked Directory (for quick local testing without creating an installer):
npm run build:unpack
All compiled binaries and installers will be generated in the dist-electron/ folder:
dist-electron/
├── OmniDoc Studio-2.0.0.AppImage
├── omnidoc-studio_2.0.0_amd64.deb
├── omnidoc-studio-2.0.0.x86_64.rpm
├── OmniDoc Studio Setup 2.0.0.exe
└── OmniDoc Studio-2.0.0.dmg
- Go to your repository on GitHub:
https://github.com/Sumeet-basfore/omnidoc/releases - Click Draft a new release.
- In Choose a tag, enter a new version tag (e.g.,
v2.0.0) and selectCreate new tag on publish. - Add a release title (e.g.,
OmniDoc Studio v2.0.0 - Official Release). - In the description, summarize key additions or improvements.
- Drag and drop the compiled files from your local
dist-electron/directory into the Attach binaries box:- For Linux users:
.AppImageand.deb - For Windows users:
.exe - For macOS users:
.dmg
- For Linux users:
- Click Publish release.
You can publish directly from your terminal using a GitHub Personal Access Token (GH_TOKEN):
# 1. Export your GitHub Personal Access Token with 'repo' scope
export GH_TOKEN="ghp_yourPersonalAccessTokenHere"
# 2. Build and publish automatically
npm run releaseelectron-builder will upload the binaries directly to GitHub and create a draft release for you.
OmniDoc Studio works out-of-the-box as a local document viewer and editor. To enable AI assistance and deep research, configure your preferred providers in Settings:
| Provider | Purpose | Where to Get API Key |
|---|---|---|
| Google Gemini | Chat, document editing, high-speed reasoning | Google AI Studio |
| Anthropic Claude | In-depth analysis, document critique, coding | Anthropic Console |
| OpenAI | General intelligence, GPT-4o synthesis | OpenAI Platform |
| Tavily Search | Real-time deep web search and fact extraction | Tavily AI |
| Exa Search | Neural and semantic web scraping | Exa AI |
| Local AI (LM Studio / llama.cpp / Ollama) | 100% offline, privacy-first local LLM inference | LM Studio (:1234), Ollama (:11434), llama.cpp (:8080) |
Note: API keys are encrypted and stored exclusively in your local application data storage. They are never transmitted to any third-party telemetry servers.
| Shortcut | Windows / Linux | macOS | Action |
|---|---|---|---|
| Command Palette | Ctrl + K |
⌘ + K |
Open universal command palette |
| Open File | Ctrl + O |
⌘ + O |
Open file picker from local disk |
| New Document | Ctrl + N |
⌘ + N |
Create a new Markdown document |
| Save Document | Ctrl + S |
⌘ + S |
Save active file to disk |
| Export Document | Ctrl + E |
⌘ + E |
Open format export modal |
| Toggle Sidebar | Ctrl + B |
⌘ + B |
Show / hide navigation sidebar |
| Toggle AI Companion | Ctrl + Shift + R |
⌘ + Shift + R |
Open / close Omni AI research drawer |
| Close Active Tab | Ctrl + W |
⌘ + W |
Close currently focused tab |
| Shortcuts Reference | ? or Ctrl + / |
? or ⌘ + / |
View full keyboard shortcuts dialog |
| Layer | Technologies |
|---|---|
| Desktop Runtime | Electron 33 with secure IPC streaming |
| Frontend Framework | React 18, TypeScript 5.6, Vite 6 |
| Build Tooling | electron-vite 3, electron-builder 25 |
| Styling & UI | Tailwind CSS v4, Lucide React Icons |
| State Management | Zustand 5 with persistent local storage |
| Document Processors | Tiptap v2, PDF.js 4.x, Mammoth.js, docx, KaTeX, Shiki |
| AI & Research SDKs | @google/generative-ai, @anthropic-ai/sdk, openai, @tavily/core, exa-js |
Contributions, feature suggestions, and bug reports are warmly welcomed!
- Fork the repository (
https://github.com/Sumeet-basfore/omnidoc/fork) - Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m "feat: add amazing feature") - Ensure all checks pass (
npm run typecheck && npm run guard:ui) - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.