Skip to content

Releases: MichalRedm/overleaf-cli

v2.1.0: Zero-Config & Root Autodetection

04 May 08:07

Choose a tag to compare

🚀 Release v2.1.0: Zero-Config & Project Root Autodetection

This release significantly enhances the developer experience by introducing intelligent project discovery. You no longer need to pass the --src parameter when working within an Overleaf project!

🌟 New Features

🔍 Automatic Project Root Detection

The CLI now behaves more like Git. When you run a command:

  • It searches upwards from your current working directory for a .overleaf/ folder.
  • Once found, it automatically sets that directory as the project root.
  • All configuration, state tracking, and file discovery are resolved relative to this root.

🏠 Zero-Config Usage from Subdirectories

You can now run overleaf-cli push, watch, or compile from any folder inside your project. This is particularly useful for large LaTeX projects with nested section folders.

🔧 Improvements

  • Root-Aware Config Resolution: Implicitly finds .overleaf/config.json relative to the detected root.
  • Enhanced Internal Logic: Refactored resolveSrcPath to handle cases where the --src flag is omitted vs. explicitly set.

📚 Documentation

  • Updated the local and global agent skills to reflect the new zero-config capabilities.
  • Improved usage examples in the SKILL.md documentation.

Special thanks to the contributors for making Overleaf-CLI even more intuitive!

v2.0.0

02 May 13:35

Choose a tag to compare

🚀 Release v2.0.0: The Universal Sync Engine

This major release transforms Overleaf CLI into a comprehensive, enterprise-ready utility for managing LaTeX projects. It introduces a fundamental architectural shift towards incremental synchronization and universal support for all Overleaf editions.

🌟 Major Highlights

⚡ Incremental Sync Engine

The core synchronization logic has been rewritten to support local state tracking.

  • .overleaf/state.json: Tracks the hash and size of local files.
  • Smart Uploads: Only modified files are uploaded, drastically reducing network traffic and avoiding rate limits.
  • Orphan Pruning: Use the --delete flag to automatically remove remote files that no longer exist locally.

🌐 Universal Entity Discovery

Introducing a native Socket.io implementation that bypasses restricted REST APIs.

  • Works out-of-the-box on standard Overleaf.com, Community Edition (ShareLaTeX), and institutional Enterprise deployments.
  • Automatically handles folder creation and hierarchy resolution without manual configuration.

🔐 Custom Authentication (SSO/SAML Support)

Added a new custom authentication type to handle institutional logins.

  • Support for external scripts (e.g., using Playwright) to capture session cookies.
  • Automated session refresh and CSRF token management.

🛠️ Full Lifecycle Management

The tool is no longer just for syncing; it now manages the entire project lifecycle.

  • compile: Trigger remote LaTeX compilation.
  • pdf: Download the latest compiled PDF.
  • logs: Stream LaTeX errors and warnings directly to your terminal.
  • project create/rm: Manage projects directly from the CLI.

🔧 Improvements & Fixes

  • .overleafignore: Granular control over which files to exclude from synchronization.
  • Exponential Backoff: Intelligent handling of 429 Too Many Requests errors.
  • Implicit Config Discovery: Automatically finds configuration files relative to the source directory.
  • Path Auto-Setup: New install command to automatically add the CLI to your system PATH.
  • Config Migration: Automated migration from legacy overleaf_config.json to the new .overleaf/config.json.

⚠️ Breaking Changes

  • Configuration has moved from overleaf_config.json in the root to .overleaf/config.json. (Migration is automatic).
  • The discovery_command workaround has been removed as it is superseded by native discovery.
  • Default push behavior is now incremental. Use --force to re-upload all files.

For installation instructions and full command reference, see the README.md.

v1.1.0

01 May 14:08

Choose a tag to compare

fix: address final lint errors in watch and init commands

v1.0.0

01 May 13:49

Choose a tag to compare

fix: add contents write permission to release workflow