Oleafly:开源科研写作工作台,整合 LaTeX、Typst、Markdown 与 AI 助手
Oleafly/Oleafly
Oleafly 是一款免费开源的研究写作桌面应用,把 LaTeX、Typst、Markdown 源码、PDF、引用、图表、检查、Git 历史和可选 AI 工具放在同一个项目里。核心工作默认留在本地,无需账号,仅在文献检索、GitHub 操作、托管 AI 等场景联网。该 beta 版尚未提供实时协同编辑与后台设备同步。
Oleafly beta
Deutsch | English | Español | Français | 日本語 | 한국어 | Português | Русский | 中文 | العربية
Write your next paper with less busywork with a modern scientific writing workspace.
Oleafly is a free, open-source app for research writing. Use it for papers, theses, reports, presentations, books, resumes, and other technical documents. Work in LaTeX, Typst, or Markdown. The source, PDF, citations, figures, checks, Git history, and optional AI tools stay in the same project.
Download free · Read the guides · Build from source
Free forever · Open source · No accounts · No sign-ups · No tracking
Start here
| If you are... | Start with... |
|---|---|
| Writing a paper or thesis | An editable LaTeX, Typst, or Markdown starter |
| Bringing existing work onto your computer | A ZIP, GitHub repository, Word, HTML, or Markdown file, Typst document, arXiv source, or PDF import |
| Working in LaTeX, Typst, or Markdown | The source editor, visual editor, live preview, and engine picker |
| Building a structured manuscript | The project outline, cross-file search, reference navigation, and local proofing |
| Finding sources or citations | Citation Search, a document support scan, citing from your Zotero library as you type, or a bibliography import from a file |
| Working with AI | The built-in assistant, isolated Research Tasks, a CLI agent, or MCP |
| Running a longer research task | A separate worktree or staged copy, reviewed results, and selective file application |
| Reusing a research workflow | The bundled skill pack, slash commands, or a saved skill folder |
| Building a figure or table | Diagram Composer, LaTeX Preview, Image to LaTeX, or LaTeX Table Generator |
| Preparing a submission | Preflight for compile, references, privacy, accessibility, and venue checks |
| Recovering or versioning work | Checkpoints for local recovery and Git for intentional history and collaboration |
| Linking papers, data, or analysis | Read-only linked research folders beside the manuscript |
| Exporting or converting documents | PDF, PNG, and source ZIPs, plus supported Word, HTML, Markdown, LaTeX, Typst, text, PPTX, or EPUB outputs |
| Looking for a local toolchain | Bundled Tectonic, Typst, and Pandoc, plus an optional system TeX or a TinyTeX install the app manages, which you can make the default for new projects |
Start from the kind of work you actually have: a new research project, an existing project, or a template.
Why Oleafly
Most research-writing workflows are a chain of separate tools: an editor, a compiler, a PDF reader, a bibliography manager, a diagram tool, Git, a review checklist, and perhaps an AI chat that cannot see the project. The work gets spread across windows just when the argument is getting complicated.
Oleafly keeps those tools around one project. The source is still plain text. The PDF sits beside it. You can find a citation from the sentence in front of you, keep a figure as TikZ, and review an assistant's changes before they reach the project.
Three ways to work
| Workflow | What it gives you | What you still have to solve |
|---|---|---|
| Hosted cloud editor | Fast setup, browser access, and a managed service | Trusting a hosted data layer and fitting your workflow into its limits |
| DIY local stack | Control over files, tools, and infrastructure | Choosing, installing, configuring, and maintaining every piece yourself |
| Oleafly | A local desktop workspace with the editor, engines, PDF, citations, figures, checks, Git, and optional agents together | Live co-editing and background device sync are not shipped in this release |
Oleafly gives you a guided workspace without putting your manuscript behind a proprietary format or a permanent service.
What stays on your computer
Core work stays on your computer: project files, indexing, compilation with an available local engine, PDF preview, spellchecking, grammar checking, preflight, Git history, checkpoints, and the terminal. An account is not required for these tasks.
The app reaches the network only for actions that need it: literature lookup, DOI metadata, GitHub operations, hosted AI, a zotero.org account, MCP servers you connect, Typst Universe and CTAN package lookups, and optional engine, package, and template downloads. Release builds also check for an update each time the app starts. Local Ollama models keep model traffic on your computer, and citing from the Zotero app on the same computer stays local too. When one of these services is unavailable, the app shows an offline or unavailable state.
| Stays local by default | Happens only when you choose it |
|---|---|
| Project source and metadata | Literature and citation lookup |
| Editor state and project index | GitHub sign-in, push, pull, and publish |
| LaTeX compilation with the bundled engine when packages are available | Hosted AI providers |
| Typst compilation when packages are cached or kept in the project | Optional engine, package, and template downloads |
| PDF rendering and text inspection | Domain-shelf skill downloads |
| Spellchecking, grammar checking, and preflight | External MCP clients on localhost |
| Git history and automatic checkpoints | alphaXiv and other MCP servers you connect |
| Citing from the Zotero app on this computer | Zotero citing and import through a zotero.org account |
Provider connections are explicit and separate from the manuscript on disk.
Begin with a real project
Templates you can edit
Start with an article, journal paper, thesis, literature review, report, book, Beamer presentation, poster, assignment, letter, bibliography, resume, or diagram. Templates are ordinary source projects with a declared engine, main document, document kind, assets, and preview metadata. Before you create the project, you can see a rendered preview and the engine it uses.
The gallery filters by engine, category, offline readiness, and ATS suitability. Bundled templates work without a template account. Optional template packs, fonts, and assets download only after you select them.
Bring the work you already have
Import a project ZIP or GitHub repository, convert a DOCX with Pandoc, or use a PDF as the starting point for editable LaTeX. Imports become local project files, so the original source remains untouched while you inspect the result. You can also open a folder where it already is. Oleafly keeps its builds, settings, and checkpoints for that folder in its own data folder, and limits Git, external agents, and system LaTeX there until you choose Trust this folder.
For a PDF with a text layer, reconstruction is deterministic. It extracts the text, layout, equations, and figures it can identify, reports its limits, and leaves you with editable LaTeX instead of an opaque document. A scanned PDF can be transcribed by a vision model running locally. If you connect a vision-capable provider, it can help refine an imported project afterward.
Bring an existing project or document into an ordinary local workspace.
Every project is an accessible folder on your disk
Oleafly's library tracks project identity, engine, document kind, bookmarks, preview state, and history. The manuscript itself remains a normal directory. The source can be opened in another editor, inspected in a terminal, shared with a coauthor, or committed with ordinary Git. Oleafly does not require a proprietary document database to compile your work.
The app keeps its own build artifacts and local metadata separate from the source. A project can carry its engine and main-document choices in project.json, so a clone or exported source archive can open with the same project settings.
Write the paper and keep its structure
A source editor for structured documents
The CodeMirror editor is backed by a project-wide index. The index covers headings, labels, citation keys, macros, environments, included files, and compile diagnostics across the manuscript.
In LaTeX, Typst, Markdown, and BibTeX you get:
- Engine-aware syntax highlighting for commands, environments, math, comments, markup, and bibliography entries.
- Completion for labels, citation keys, and project file paths. LaTeX files also complete commands and environments, and Typst files complete functions, packages, and bibliography styles.
- Live diagnostics for syntax, compile errors, undefined citations, duplicate keys, duplicate labels, and broken references.
- A local and global document outline with symbols, labels, citations, macros, and file relationships.
- Search and replace, code folding, multi-file tabs, Vim or Emacs keybindings, word count, slash-command insertion, and configurable keyboard shortcuts.
- LaTeX structural helpers for
\item,\begin/\end, environments, math delimiters, captions, and common insertion patterns. - Typst helpers:
$pairs for math, lists continue on Enter, and/opens snippets. - Hovers for compiled label numbers and pages, equation previews, and image thumbnails for
\includegraphicstargets. - When you rename or move a file, Oleafly can update the paths that point to it in
\input,\includegraphics,#include,image(), and Markdown links. Press F2 on a path to rename its file.
Insert LaTeX blocks, formatting, and symbols
The LaTeX editor keeps common structures one click away while leaving the source in your hands. Switch between Code and Visual view, undo or redo, choose a heading level, format text, insert references, and build a table or figure without memorising every command. Typst files get the same tools on their own toolbar, which writes Typst markup.
Build a structured LaTeX document from the toolbar, then keep editing the source directly.
| Area | Available controls |
|---|---|
| Editing and modes | Code view, Visual view, undo, redo |
| Document structure | H1–H7 insertion: \part, \chapter, \section, \subsection, \subsubsection, \paragraph, \subparagraph |
| Inline formatting | Bold \textbf{}, italic \textit{}, underline \underline{}, inline code \texttt{} |
| References and notes | Links \href{}{}, project citations, cross-references \ref{}, footnotes \footnote{} |
| Content blocks | Block quotes with quote, figures with \includegraphics, captions and labels, visual tables with selectable rows and columns, bulleted itemize lists, numbered enumerate lists |
| Math blocks | equation, align, and fraction \frac{}{} insertion |
| AI-assisted insertion | Image to LaTeX for an equation, table, or visible text when a vision-capable provider is configured |
| Code intelligence | Go to definition, find references, project-wide symbol rename, and path updates when a file moves |
| Project tools | Draw a diagram, LaTeX packages, Document insights, and Document settings |
A searchable LaTeX symbol palette
The symbol picker contains 236 unique commands in its All view. The category lists contain 238 entries because \nabla and \partial are useful in both Operators and Calculus. Search by the symbol name or its LaTeX command, then insert it at the cursor. In a Typst file, the palette shows, searches, and inserts each symbol's Typst name.
| Category | Count | Available symbols and commands |
|---|---|---|
| Greek lowercase | 29 | \alpha, \beta, \gamma, \delta, \epsilon, \varepsilon, \zeta, \eta, \theta, \vartheta, \iota, \kappa, \lambda, \mu, \nu, \xi, \pi, \varpi, \rho, \varrho, \sigma, \varsigma, \tau, \upsilon, \phi, \varphi, \chi, \psi, \omega |
| Greek uppercase | 11 | \Gamma, \Delta, \Theta, \Lambda, \Xi, \Pi, \Sigma, \Upsilon, \Phi, \Psi, \Omega |
| Operators | 19 | +, -, \times, \div, \cdot, \pm, \mp, \ast, \star, \circ, \bullet, \oplus, \ominus, \otimes, \odot, \dagger, \ddagger, \nabla, \partial |
| Relations | 21 | =, \neq, <, >, \leq, \geq, \ll, \gg, \approx, \sim, \simeq, \cong, \equiv, \propto, \prec, \succ, \preceq, \succeq, \perp, \parallel, \mid |
| Arrows | 23 | \leftarrow, \rightarrow, \uparrow, \downarrow, \leftrightarrow, \Leftarrow, \Rightarrow, \Uparrow, \Downarrow, \Leftrightarrow, \mapsto, \longmapsto, \longrightarrow, \longleftarrow, \hookrightarrow, \hookleftarrow, \nearrow, \searrow, \nwarrow, \swarrow, \rightleftharpoons, \leftharpoonup, \rightharpoonup |
| Set theory | 19 | \in, \notin, \ni, \subset, \supset, \subseteq, \supseteq, \cup, \cap, \bigcup, \bigcap, \setminus, \emptyset, \varnothing, \mathbb{N}, \mathbb{Z}, \mathbb{Q}, \mathbb{R}, \mathbb{C} |
| Logic | 16 | \forall, \exists, \nexists, \neg, \land, \lor, \wedge, \vee, \implies, \iff, \therefore, \because, \top, \bot, \vdash, \models |
| Calculus | 18 | \int, \iint, \iiint, \oint, \sum, \prod, \coprod, \lim, \infty, \nabla, \partial, \sqrt{}, \frac{}{}, \binom{}{}, \sup, \inf, \max, \min |
| Functions | 19 | \sin, \cos, \tan, \cot, \sec, \csc, \arcsin, \arccos, \arctan, \sinh, \cosh, \tanh, \log, \ln, \exp, \det, \dim, \ker, \arg |
| Brackets | 16 | (, ), [, ], \{, \}, \langle, \rangle, \lfloor, \rfloor, \lceil, \rceil, literal vertical bar, |, \left( \right), \left[ \right] |
| Accents | 14 | \hat{}, \bar{}, \tilde{}, \vec{}, \dot{}, \ddot{}, \acute{}, \grave{}, \breve{}, \check{}, \overline{}, \underline{}, \overbrace{}, \underbrace{} |
| Dots and spacing | 13 | \cdots, \ldots, \vdots, \ddots, \quad, \qquad, \,, \;, \!, \text{}, \mathrm{}, \mathbf{}, \mathcal{} |
| Miscellaneous | 20 | \hbar, \ell, \wp, \Re, \Im, \aleph, \angle, \triangle, \diamond, \square, \lozenge, \clubsuit, \diamondsuit, \heartsuit, \spadesuit, ^{\circ}, \#, \$, \%, \& |
Search 236 unique LaTeX commands by category or name and insert the one you need.
Source view and visual view
Source view is the canonical representation. When the engine supports it, turn on the visual editor for LaTeX, Typst, or Markdown and edit prose, equations, citations, tables, and figures on a page-oriented surface. Math, footnotes, theorems, figures, tables and colours render as native, editable nodes; pasted rich text and images become the document's own markup, and a floating toolbar edits tables in place. The source stays available for Git, external editors, and manual edits.
Use the visual view for page-level editing. Return to source when you need exact control over commands, packages, environments, or layout.
Proofread prose locally
Hunspell handles spelling with the selected dictionary pack and personal or project additions. Harper checks grammar and style through a document-aware prose mask, so commands, comments, math bodies, and machine arguments are not treated as ordinary English sentences.
The academic profile avoids rules that fight scholarly writing, and every finding has a local action: replace it, ignore it (for now, in this project, or everywhere), or turn the rule off. Settings lists the rules you turned off, so you can turn them back on. Proofreading runs locally and does not require an AI provider.
Search across the project
Search across the project from the Search panel. The project index connects source files, headings, labels, citations, macros, and included files, so a large multi-file thesis is easier to navigate than a stack of editor tabs.
Themes, fonts, and Zen mode
The editor has one theme for light mode and one for dark mode, and it switches when the app does. Paper, a warm off-white, and One Light are the two light themes. Editor colors, in Settings > Appearance > Editor, changes any color of a theme. Colors are grouped by role, such as headings, commands, citations, or math, and a LaTeX, Typst, or Markdown sample shows each change as you make it. Oleafly keeps your changes for each theme, and theme export and import carry them.
The app and the editor can use any font installed on your computer, and the editor also lets you set letter spacing and the cursor's width and color. Cmd+= and Cmd+- zoom the whole app, the editor and PDF included, and Cmd+0 goes back to 100% (Ctrl on Windows and Linux).
Zen mode hides the toolbar, sidebar, assistant, and terminal so only the editor is left. Press Ctrl+Cmd+Shift+F (Shift+F11 on Windows and Linux) to turn it on, and press the same keys or Escape twice to leave it.
Oleafly keeps compilation close to the manuscript and turns compiler output into source-linked diagnostics. Each project keeps its own engine, and the editor, preview, SyncTeX, preflight, and export controls follow what that engine can do. New, imported, and converted LaTeX projects start on the default compile engine you pick in Settings > Engines.
| Engine | What it is good for | Important details |
|---|---|---|
| LaTeX with Tectonic | Portable, bundled LaTeX builds | Ships with the desktop app; supports multi-file projects, images, citations, Biber (except on Linux ARM64), SyncTeX, isolated figure compilation, and cached offline builds when packages are available |
LaTeX with latexmk |
Projects that need a full system TeX distribution | Uses MacTeX, TeX Live, MiKTeX, or TinyTeX, and supports glossaries, makeidx, and XeLaTeX or LuaLaTeX (chosen automatically). minted, PythonTeX, and other packages that run external commands work once you allow them on this computer |
| Typst | Fast modern document authoring | Bundled compiler with PDF, EPUB, PNG, SVG, and HTML output, project indexing, and citations. Source and PDF sync needs Typst 0.13 or newer, and builds work offline when packages are cached or kept in the project. Isolated figure compilation is not available in this release |
| Markdown with Pandoc | Lightweight prose and conversion workflows | Pandoc ships with the app. It converts to LaTeX for the bundled Tectonic to typeset, and exports Word, HTML, EPUB, PowerPoint, LaTeX, Typst, and plain text |
LaTeX projects get a compatibility scan when they open. If a project needs more than the bundled engine can handle, Oleafly explains the gap and points you to the right engine or package. System TeX blocks external commands by default. Picking system LaTeX for a project that needs them also allows them. If a compile is blocked, a banner above the editor offers Allow external commands. The permission stays on this computer and is never written into the project.
The bundled Biber sidecar is matched to the Tectonic biblatex version. Compile logs distinguish a missing Biber executable, a version mismatch, and an ordinary LaTeX error so you can choose the right fix.
Read the PDF beside the source
The PDF viewer is built into the workspace and can also open in a detached preview window. It keeps the last accepted PDF visible while a newer compile is running or has failed, so one broken edit does not erase the last readable result. A recompile keeps your place, and pages stay sharp at high zoom. Cmd+Option+P (Ctrl+Alt+P) shows or hides the PDF beside the editor.
Use continuous scroll or a one-page / two-page spread. Zoom, fit to width, fit to height, rotate, invert colors, search the document text, follow the outline, jump to a page, download with a chosen filename, or inspect the compile log in the same surface. Encrypted PDFs get a password prompt rather than a blank viewer.
Go to PDF takes you from the source to the matching spot in the PDF, and a click in the PDF takes you back to the source line. LaTeX does this with SyncTeX, and Typst does it through the Tinymist language server on Typst 0.13 or newer. Markdown and older Typst versions cannot sync, so those controls do not appear.
Literature and citations
Search from the sentence you are writing
Citation Search queries arXiv, Semantic Scholar, Crossref, PubMed, and OpenAlex in one place, and Google Scholar too when you add a Serper key. It combines duplicate results, keeps the metadata visible, and lets you save a reference to the local literature library.
You can also look up a citation by DOI, arXiv ID, URL, or title. Import an existing library from Zotero RDF, EndNote XML, RIS, or BibTeX, or connect a zotero.org account in Settings > Integrations and import your whole library from the References panel. The project index provides citation-key completion, reference navigation, hover details, and diagnostics for undefined citations, duplicate keys, and incomplete bibliography metadata.
With Zotero 7 or newer open on the same computer, type @ and part of an author, title, year, or key to cite from your whole Zotero library in LaTeX, Typst, or Markdown. Oleafly writes the citation the way the document already cites and adds only that entry to the project's .bib. Keys come from Better BibTeX when it is installed. A cited key that is missing from the .bib offers Add from Zotero, and an entry that changed in Zotero offers Update from Zotero. Search keeps working from the last sync while Zotero is closed, or you can connect a zotero.org account instead.
Scan the document for missing support
From document mode, Oleafly splits the current selection or manuscript into prose paragraphs, searches configured literature sources, removes papers already in the bibliography, and ranks the rest on a 0–100 scale. An AI provider can add short FOR / AGAINST reasoning. With AI off, the scan uses local heuristic ranking.
Save results to the local citation library, copy BibTeX, or append a selected entry to a project bibliography and insert its citation.
Review a paper in two voices
Review mode can use a configured AI provider to read the current document or a captured selection in two styles:
- Friendly: strengths first, then specific and constructive suggestions.
- Fire: a strict Reviewer #2 stress-test of claims, methods, and evidence.
The review is an optional assistant action. It is not a substitute for the venue's guidelines or a human coauthor.
Keep research folders beside the manuscript
Link a dataset, source library, analysis folder, or other research directory without moving it into the project. Oleafly reads linked folders and never writes to them. They stay out of compilation, project search, and Git, with clear missing and unreadable states when a path is unavailable.
Search labs and deadlines
The tools gallery includes Lab Search for research institutions listed by OpenAlex, with country filters and links to institutional, ROR, and OpenAlex records. Conference Deadlines lets you search venues, filter them by research area, and see countdowns. The deadline data ships with the app and can be refreshed. Most venues are in computer science, with a few in areas such as neuroscience and physics.
Figures, equations, and tables
Diagram Composer
Diagram Composer first asks what the diagram is for: TikZ for LaTeX, a fletcher diagram for Typst, or a Mermaid flowchart for Markdown. Draw on a canvas with rectangles, circles, ellipses, diamonds, text, connectors, snapping, fill and border colors, undo, redo, a minimap, and a light or dark canvas. The code panel and the drawing stay in step in both directions, and code the canvas cannot draw is kept as written. TikZ figures compile in isolation, Typst diagrams preview with the project's own Typst, and Mermaid uses the app's renderer.
The saved source keeps the diagram model for another edit, and the composer imports .tikz, .tex, .typ, .mmd, and .md files. Insert the code at the cursor, or save a PNG and the source to the project's figures folder. Optional AI repair can help with figure compile errors, and a vision-capable model can inspect a render and refine its layout.
Equation and table output
The LaTeX to Image tool renders an equation and exports PNG or SVG. It can also copy MathML for Word or KaTeX HTML, and its Typst mode copies Typst math. The Table to LaTeX tool provides a visual row-and-column editor and exports ordinary LaTeX, and CSV to Typst and Excel to Typst build Typst tables. Image to LaTeX and Image to Typst transcribe an equation, table, or visible text from an image with a vision model running locally. The Image to LaTeX button on the editor toolbar uses your configured vision-capable provider instead.
These tools live in the Tools gallery, which is in beta and off by default (see Tools in the gallery below). Once it is on, they are also in the command palette and slash commands where shown in the app.
Check the document before it leaves your machine
Preflight reads the source, project structure, compiler log, and current PDF. It groups findings by problem and shows where each result came from. Checks can run together or separately, and a missing input is reported as unavailable or partial rather than counted as a pass. Typst projects get their own source checks for unresolved references and citations, missing alt text, document metadata, missing images, privacy, and blind review. Markdown projects get the compile-log and PDF checks only.
| Check | What it looks for |
|---|---|
| Compile and layout | Failed builds, unresolved citations and references, rerun warnings, missing glyphs, overfull boxes, clipped text, duplicate PDF destinations, and mixed page sizes |
| Submission readiness | Document class, abstract, keywords, figure formats, embedded fonts, PDF version and restrictions, portable filenames, captions, and clean source packaging |
| ATS readiness | Resume text extraction, contact fields, expected sections, page length, and layouts that commonly scramble applicant-tracking systems |
| Accessibility | Tags, alt text, document language and title, viewer settings, heading and table structure, link descriptions, reading order, selectable text, bookmarks, and very small text |
| References and assets | Missing files, undefined citations and cross-references, duplicate labels and DOIs, incomplete bibliography fields, uncited entries, and missing figures |
| Privacy and blind review | Credentials, private keys, sensitive files, draft markup, internal comments, author fields, acknowledgements, and PDF identity metadata |
Publication profiles cover general publication, arXiv, IEEE, ACM, other journals, and theses. You still need the venue's current author guide for its exact margins, page limits, file-size rules, and submission instructions.
The accessibility checks reference PDF/UA, Matterhorn, and WCAG and report the machine-checkable part of PDF/UA-1. Accessible export preparation can add LaTeX metadata, table-header declarations, and alt-text placeholders where the active class and packages support them. For Typst, export preparation offers PDF/A and PDF/UA.
Preflight is a set of machine checks, not a conformance certificate. It cannot judge whether alt text is meaningful, whether reading order makes sense, or whether contrast is sufficient. For a formal accessibility conformance statement, validate the final PDF with the venue's required tool.
Preflight makes machine-checkable accessibility findings visible before submission; it does not claim conformance by itself.
Version and recover your work
Use your Git repository as usual
Oleafly works with a normal Git repository. The Source Control panel can initialize a repository, show unified or side-by-side diffs, stage files, discard changes, commit, push, pull, and show ahead or behind state for a remote. You can also publish a project to GitHub or connect an existing repository. The Explorer marks changed files with the same status letters, and if Git is not installed, Source Control explains how to get it.
Projects in your library get a Git repository when you create, import, or open them, and a new or imported project usually starts with one "Create project" commit. Turn this off with Initialise Git for every project in Settings. After that, saving, compiling, or closing a project never creates a commit. A folder you open in place never gets a repository from Oleafly. Oleafly does not hide the source from your terminal or edit the project's .gitignore just to make its own metadata disappear.
See staged changes, branches, history, and commits without leaving the project.
Use checkpoints for quick recovery
After a successful compile, Oleafly can save a local snapshot of the project. Checkpoints do not initialize a repository, create commits, or change a branch. Restore a previous state transactionally, label an important version, inspect stored files, trim old history, or move a complete history in an encrypted archive.
Use Git for intentional commits, branches, remotes, and collaboration. Use checkpoints for quick local recovery while a paper is changing fast.
AI is optional
The editor, compiler, PDF preview, citations, proofing, and preflight work with AI turned off. When enabled, AI uses the same project files and tools as the rest of the app.
Ask an assistant about the open project
With a configured provider, the assistant can:
- Read a project file or search the project before answering.
- Explain a section, equation, citation, or compile error.
- Revise prose, create files, rename files, and make targeted replacements.
- Compile the project, read the log, extract PDF text, and inspect rendered pages when the PDF capture setting is enabled.
- Search literature, verify a DOI, add a citation, and map the document's headings, labels, citations, macros, and file relationships.
- Draft, compile, inspect, repair, and insert editable TikZ or PGFPlots figures in LaTeX, and CeTZ or fletcher figures in Typst.
Every file change produces a visible diff. Pick an approval mode in the chat: Ask for approval, Approve for me, Full access, or Custom, which follows the rules in approvals.toml. After a turn, a line shows how many files changed. Review each change, undo or redo one file, or undo the whole turn. Plan mode lets the assistant map the project before it can write, compile, or run commands.
Connect a hosted provider, an OpenAI-compatible endpoint, or a local Ollama model. Provider credentials live in encrypted app-managed storage and are not written into project files. The action you choose tells you when a hosted request will be made.
Choose a role for the task at hand, from research writing and document editing to critical review and figure work.
Review an edit before it is applied
In Ask for approval mode, read the proposed file diff and choose which changes to apply. In Custom mode, Always in this project saves an allow rule for that tool. Deletes remain separately visible and can require an explicit confirmation.
Run longer research tasks separately
Start a task for a literature review, evidence audit, analysis, manuscript revision, or response to reviewers. It runs in a separate Git worktree or staged copy while you continue in the original project. On Windows, CLI agents cannot run these tasks yet, and tasks run by the Oleafly Assistant cannot run shell commands. Codex cannot run them on macOS.
When the task finishes, inspect activity, outputs, and every changed file. Preview the diff, select the files worth keeping, and apply only those files. The original project stays unchanged until you apply reviewed results. If the project changed while the task was running, Oleafly detects the drift instead of applying an old diff over newer work.
Use a CLI agent from the catalog
The catalog includes 14 CLI agents. Each uses its own account, permissions, and model configuration; Oleafly supplies the project context and the surrounding workspace. In Settings you can also find more agents in the ACP registry or add a custom one.
These marks identify compatible tools and remain the property of their respective owners. They do not imply endorsement.
Open a conversation, sign in through the agent's own CLI when required, reconnect, watch tool activity, steer a running turn, stop it, and keep the transcript with the project session where supported. Permission requests show the change the agent wants to make. The agent home has research starting points such as Literature sweep and Citation audit, and you can export a conversation as Markdown or JSON.
CLI agent support is in beta. Settings shows install readiness, platform limits, and the program Oleafly found for each agent, with a Test button. The conversation tells you when an agent cannot resume a saved session.
Reuse a research workflow with skills
Oleafly includes skills for literature work, authoring, figures, review, submission, communication, and tooling. Skills are ordinary SKILL.md folders that follow the Agent Skills shape.
Use a skill with a slash command, add your own folder, record a repeatable workflow from a completed chat, or install a domain skill from the shelf when you choose to download one. Skills can be shared with compatible CLI agents on the same computer. A skill already installed keeps working offline. Search your skills and the domain shelf, and turn each skill on for all projects or only the open one.
Skills shipped with Oleafly
The bundled research-core pack ships 36 skills. The names below are the IDs used by the catalog and in project settings.
| Category | Skills |
|---|---|
| Research and literature | citation-management, exploratory-data-analysis, hypothesis-generation, literature-review, oleafly-literature-sweep, oleafly-research-loop, openresearch, paper-lookup, research-lookup, scientific-brainstorming, scientific-critical-thinking |
| Manuscript authoring and analysis | experimental-design, oleafly-data-analysis, oleafly-manuscript-scaffold, oleafly-related-work, scientific-writing, statistical-analysis, statistical-power, venue-templates |
| Figures and visualization | oleafly-figure-prep, scientific-schematics, scientific-visualization |
| Review and evidence | oleafly-response-letter, oleafly-review-manuscript, oleafly-verify-claims, peer-review, scholar-evaluation |
| Submission | oleafly-pre-submission |
| Communication | oleafly-slides-and-posters, pptx-posters, research-grants, scientific-slides |
| Import and build tooling | import-refine, oleafly-latex-build, pdf-to-latex, template-generate |
Skills turn a useful research routine into something you can reuse and share with compatible agents.
Connect an external AI client with MCP
Oleafly can run a local MCP server for an external client. It exposes the same project tools as the built-in assistant: list and read files, search the project, inspect its map, compile, read the log, extract PDF text, preview figures, and apply edits subject to Oleafly's approval policy.
The server binds to 127.0.0.1 only, uses a bearer token that you can regenerate in Settings, and runs only while the Oleafly process is open. A read-only mode removes mutating tools from the tool list. The external client brings its own model, so you do not need to put an AI API key into Oleafly for this route.
The assistant can also use outside MCP servers. Import a server's settings, or search the official MCP registry and review an entry before you add it. alphaXiv connects with an API key, so the assistant can search and read papers, and it asks you before each call.
Tools in the gallery
Tools is in beta and off by default. Turn it on in Settings > Experimentation > LaTeX tools, then open it from the omnibar or command palette. Search by name, description, or slash command. A tool that needs a network connection or an AI provider says so in its own panel.
Search the workspace from one box
Press Cmd+Shift+F (Ctrl+Shift+F on Windows and Linux) to search projects and documents, open settings, create a project, switch themes, or launch a tool from one place. Type / to narrow the list to commands and keep your hands on the keyboard while you work. The command palette, on Cmd+K (Ctrl+K), lists commands only, and Cmd+, (Ctrl+,) opens Settings.
Import and format conversion
| Tool | Use it for |
|---|---|
| PDF to LaTeX | Reconstruct editable LaTeX from a PDF, with math, figures, and structure preserved where the source allows it |
| arXiv to LaTeX | Download an arXiv source bundle by ID, or unpack a saved archive from disk |
| Image to LaTeX | Turn an image of notes, equations, or a table into editable LaTeX |
| Equation to LaTeX | Convert typed math or an equation image into LaTeX |
| Excel to LaTeX | Convert an Excel, CSV, or TSV sheet into an escaped LaTeX table |
| HTML to LaTeX | Convert pasted HTML into a standalone LaTeX document |
| Image to Typst | Turn an image of notes, equations, or a table into editable Typst |
| LaTeX to HTML | Convert LaTeX to standalone HTML with MathML equations |
| LaTeX to Image | Render an equation and export a PNG or SVG |
| LaTeX to Markdown | Convert a LaTeX document into portable Markdown |
| LaTeX to Typst | Convert LaTeX into Typst source you can copy, save, or open as a project |
| LaTeX to Word | Create a Word document with equations stored as native Word math |
| Markdown to LaTeX | Convert Markdown notes into a standalone LaTeX document |
| Markdown to Typst | Convert Markdown notes into Typst source |
| Mermaid to LaTeX | Convert a Mermaid flowchart into editable TikZ code |
| PDF to Markdown | Extract a PDF's text layer, equations, and figures into Markdown |
| PDF to Typst | Extract a PDF's text layer, equations, and figures into Typst |
| Table to LaTeX | Build a LaTeX table in a visual row-and-column editor |
| Typst Editor | Start a Typst project with source editing, live preview, and PDF export |
| Visual Typst Editor | Start a Typst document in the project editor with live preview |
| Typst to LaTeX | Convert Typst markup into LaTeX for journals and submissions |
| arXiv to Typst | Convert an arXiv source bundle to Typst, with a compile check that lists what did not convert |
| CSV to Typst | Paste CSV or TSV rows and get an escaped Typst table |
| Equation to Typst | Convert typed LaTeX math or an equation image into Typst math |
| Excel to Typst | Convert an Excel, CSV, or TSV sheet into an escaped Typst table |
| HTML to Typst | Convert pasted HTML into a standalone Typst document |
| Mermaid to Typst | Convert a Mermaid flowchart into editable fletcher code |
| Typst to HTML | Convert Typst markup into standalone HTML with MathML equations |
| Typst to Markdown | Convert Typst markup into portable Markdown |
| Typst to Word | Create a Word document with equations stored as native Word math |
| Word to Typst | Convert a Word document into Typst and keep extracted media together |
| Word to LaTeX | Convert a Word document into LaTeX and keep extracted media together |
Math, tables, writing, and validation
| Tool | Use it for |
|---|---|
| BibTeX Validator | Check .bib files for syntax errors, missing required fields, and duplicate keys |
| Statistics Calculators | Calculate p-values, sample sizes, and confidence intervals locally |
| Writing Generators | Prepare an abstract, summary, paraphrase, or thesis outline from the open document with the assistant |
| Symbol Reference | Browse LaTeX symbols and insert one at the cursor, or its Typst name in a Typst file |
Literature, references, and research
| Tool | Use it for |
|---|---|
| Find Citations | Search scholarly indexes, scan a draft for missing support, and export BibTeX |
| arXiv Citation Generator | Look up an arXiv paper and format its citation in eight styles |
| Bibliography Generator | Build, validate, sort, and export a bibliography from structured details or BibTeX |
| Citation Generator | Turn article details or a scholarly identifier into a formatted citation and BibTeX |
| Citation Generators by Style | Compare one reference across APA, MLA, Chicago, IEEE, Harvard, Vancouver, AMA, and ACS |
| DOI to BibTeX | Retrieve a DOI record, review its fields, and export BibTeX |
| ISBN to BibTeX | Retrieve book metadata from an ISBN, correct it, and export BibTeX |
| PubMed to BibTeX | Retrieve a PubMed record from its PMID, review it, and export BibTeX |
| URL to BibTeX | Recognize DOI, arXiv, and PubMed links, or build an editable webpage citation |
| Lab Search | Find research institutions through the OpenAlex directory |
| Conference Deadlines | Filter conference deadlines, mostly in computer science, and view countdowns |
The equation workspace can also export PNG, SVG, MathML for Word, or KaTeX HTML, and it has a Typst mode. Table to LaTeX outputs ordinary LaTeX, and CSV to Typst and Excel to Typst output Typst tables. Writing Generators prepare a prompt for the configured assistant; they do not provide a model by themselves.
The command palette also gives you recompile, auto-compile, SyncTeX, PDF export, clear build cache, word count, Git history, checkpoints, terminal, citation insertion, formatting helpers, environment helpers, theme controls, Vim mode, Zen mode, app zoom, the PDF preview toggle, spellchecking, and offline mode. It can also present slides, convert a LaTeX project to Typst, browse LaTeX and Typst packages, open Document insights and Document settings, close all editor tabs or only the files the assistant opened, and add missing citations from Zotero, update .bib entries from Zotero, or sync your Zotero library.
A terminal beside the paper
Open shell tabs for the active project without leaving the workspace. Up to ten terminal sessions can be open per project. Rename and color tabs, close one or several sessions, and keep those tab labels with the project.
Use a tab to run a script, inspect a dataset, check a generated file, or use another CLI tool. It is your shell, with the same project directory available to the commands you choose to run. File paths and web addresses in the output are links. Cmd-click one (Ctrl-click on Windows and Linux) to open a project file at the line and column the output names, a PDF or image in its viewer, or a web address in the browser.
Run project commands in a terminal tab without leaving the editor and PDF workspace.
Browser for computer-use tasks
The in-app browser is in beta and off by default. Turn it on in Settings > Experimentation > Web browser. It opens as a separate OS window with tabs, an address bar, navigation controls, and isolated content webviews. It is mainly the computer-use surface: an agent can open a URL and wait for it to load while you keep the manuscript in the main window.
The computer-use tool cannot read, capture, click, or script page content. Remote pages do not receive Oleafly IPC access, and external navigation follows the active approval policy. Use the literature tools when you need searchable metadata or citations.
Common research workflows
| Use case | How Oleafly helps |
|---|---|
| First paper | Start from an article template, write with the outline visible, and compile as you go |
| Thesis or dissertation | Keep chapters, figures, references, and appendices in one indexed project with checkpoints for recovery |
| Literature review | Search sources, scan paragraphs for missing support, save metadata, and organize evidence with research skills |
| Reproducible analysis | Link data and analysis folders read-only, keep the manuscript separate, and use the terminal for project commands |
| Conference paper | Use venue-oriented templates, SyncTeX, figure and table tools, and a pre-submission pass |
| Beamer talk or poster | Start from a presentation or poster template, export supported formats, and present from the compiled PDF with an optional presenter view |
| Book or long report | Use a multi-file source tree, outline, project-wide references, PDF navigation, and EPUB export where supported |
| Resume or CV | Use resume templates, local proofing, PDF text extraction, and ATS readiness checks |
| Multilingual manuscript | Choose the template's Unicode engine and system fonts when the project needs XeLaTeX or LuaLaTeX |
| Lab or team assistant | Use isolated Research Tasks, a CLI agent, or the localhost MCP server with approval controls |
Download Oleafly
Free forever · Open source · No accounts · No sign-ups · No tracking
| Platform | Package | Download |
|---|---|---|
| macOS · Apple Silicon | DMG | |
| Windows · x86_64 | MSI or EXE | |
| Linux · x86_64 | AppImage, DEB, or RPM | |
| Linux · ARM64 | AppImage, DEB, or RPM |
The desktop app includes Tectonic for LaTeX, a Typst compiler, and Pandoc for Markdown builds and document conversions. LaTeX builds offline when the bundled engine already has the packages it needs, and Typst builds offline when its packages are cached or kept in the project.
On x86_64, the Linux packages need glibc 2.35 or newer (Ubuntu 22.04 or later). ARM64 packages are built on Ubuntu 24.04 (glibc 2.39). Releases include signed update artifacts, and the in-app updater checks the signature before installation. The release notes say what is included in each installer.
Learn more
- Product guides
- Feature map
- Editor guide
- PDF preview
- Citations and literature
- Tools gallery
- Preflight and accessibility checks
- Templates
- Diagram Composer
- Git and source control
- Checkpoints
- AI Copilot
- Skills
- MCP integration
- Development setup
Current release
Oleafly is in beta. Live co-editing, comments, and background sync across devices are not available in this release. Markdown has no source and PDF sync or source preflight checks yet, and Typst sync needs Typst 0.13 or newer. Check the active engine in the app and follow the changelog for changes.
Community and support
Join the Oleafly community on Discord to ask questions, get help with a stubborn build, show what you're writing, and vote on what gets built next. It's free and open to everyone. Prefer GitHub? Report a bug or request a feature in GitHub Issues.
Oleafly is built by Prajwal Murthy and contributors. Contributions to code, templates, documentation, and feedback are welcome. Read the contributing guide to take part.
If you use Oleafly, a GitHub star helps other researchers find it.
Cite Oleafly
Copy the BibTeX entry
@software{oleafly, author = {Venkateshmurthy, Prajwal S. and {The Oleafly contributors}}, title = {Oleafly: a local-first desktop workspace for research writing}, year = {2026}, version = {0.4.6}, url = {https://github.com/Oleafly/Oleafly}, license = {AGPL-3.0-or-later} }
Security · Code of Conduct · AGPL-3.0-or-later
Star history
来源:GitHub · github.com




















