Skip to content

RaymonDev/soil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Soil

Soil

Open-source desktop LaTeX editor with offline two-way Overleaf sync.
Write, compile, and preview LaTeX documents locally — while staying in sync with your Overleaf projects through Git.
No Perl. No TeX Live installation. No fuss. Everything downloads automatically.

Download Latest Release »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Features
  3. Getting Started
  4. Keyboard Shortcuts
  5. Contributing
  6. License

About The Project

Soil is a self-contained Electron app built for academics, students, and anyone who writes in LaTeX. Most LaTeX workflows either force you into a browser (Overleaf) or require a heavyweight local TeX installation. Soil sits in the middle:

  • Edit locally with a proper code editor (Monaco — the same engine behind VS Code)
  • Compile locally with an auto-downloaded TinyTeX — no system-wide install required
  • Sync with Overleaf through Git so you and your collaborators stay on the same page
  • Work offline and push when you're back online — nothing is ever lost

Everything you need downloads automatically on first launch. Open the app and start writing.

(back to top)

Built With

  • Electron
  • Monaco
  • PDF.js
  • Node.js

(back to top)

Features

Overleaf Integration

  • One-click sign-in — secure browser window with reCAPTCHA, SSO, and 2FA support. Session persists across restarts.
  • Project browser — all your Overleaf projects sorted by last updated, with instant search and smart local-clone detection.
  • Clone any project — from the browser or by pasting a raw git.overleaf.com URL.
  • Push + Commit — confirmation dialog shows every changed file before syncing back.
  • Pull — fetch the latest version from Overleaf with one click.

Zero-Dependency Setup

  • Auto-downloads TinyTeX (TeX Live 2026) on first launch — no system-wide TeX installation needed.
  • Auto-downloads MinGit — portable Git binary, no git on PATH required.
  • Everything lives in %APPDATA%\Soil\tools\, fully self-contained.
  • Progress bar on first launch; retry button on failure.

LaTeX Compilation

  • Local pdflatex — no Perl or latexmk dependency.
  • Automatic package installation — missing .sty / .cls files resolved and installed via tlmgr with up to 5 cascading install rounds.
  • Multi-mirror fallback — TeX Live 2026 repo with German mirror primary, CTAN fallback.
  • Runs with -interaction=nonstopmode (Overleaf-compatible).

Editor

  • Monaco Editor with full LaTeX syntax highlighting (commands, math, comments, brackets).
  • Auto-compile: Off / Normal (5 s) / Fast (1.5 s) debounce modes.
  • Error & warning decorations — wavy underlines, glyph dots, minimap highlights, hover messages.
  • Git gutter indicators — green (added), blue (modified), red (deleted) bars matching VS Code conventions.
  • Bracket pair colourisation and word wrap enabled by default.

File Management

  • Sidebar file tree with active-file highlighting.
  • Create, upload, and download files through native dialogs.
  • Recognises .tex, .bib, .sty, .cls, and common image formats.

PDF Preview

  • Live PDF preview powered by PDF.js, rendered on canvas.
  • Page navigation, zoom controls, auto-reload after compile.

Offline Mode

  • Automatic network detection — DNS probe every 10 seconds.
  • Offline banner with unpushed commit count.
  • Local commits when offline — no work is lost.
  • Back-online sync dialog — one-click push on reconnect.

Settings & Customisation

  • Light / Dark / System theme toggle with warm neutral palette.
  • Settings panel — manage Git tokens (view masked, change, delete).
  • Recent projects quick access on the welcome screen.
  • Reset all data — factory reset with double confirmation (red danger zone).

Build-Artifact Safety

  • Compilation output (.aux, .log, .pdf, etc.) excluded from the file watcher.
  • Push pauses auto-compile and auto-commits straggler build artifacts to avoid rebase conflicts.

(back to top)

Getting Started

Get Soil running locally in under a minute.

Prerequisites

  • Node.js ≥ 18 and npm
  • An Overleaf Premium account (for Git sync — local-only editing works without one)

Installation

  1. Clone the repo
    git clone https://github.com/RaymonDev/soil.git
  2. Install dependencies
    cd soil
    npm install
  3. Run the app
    npm start

On first launch Soil will download TinyTeX (~90 MB) and MinGit (~50 MB). This only happens once.

Build Distributable

npm run dist          # current platform
npm run dist:win      # Windows (NSIS installer)
npm run dist:mac      # macOS (DMG)
npm run dist:linux    # Linux (AppImage)

Output goes to release/.

(back to top)

Keyboard Shortcuts

Shortcut Action
Ctrl + S Save current file to disk
Ctrl + B Compile LaTeX
Ctrl + Shift + S Push + Commit to Overleaf

(back to top)

Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)