Releases: MichalRedm/overleaf-cli
v2.1.0: Zero-Config & Root Autodetection
🚀 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
🚀 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
--deleteflag 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 Requestserrors. - Implicit Config Discovery: Automatically finds configuration files relative to the source directory.
- Path Auto-Setup: New
installcommand to automatically add the CLI to your system PATH. - Config Migration: Automated migration from legacy
overleaf_config.jsonto the new.overleaf/config.json.
⚠️ Breaking Changes
- Configuration has moved from
overleaf_config.jsonin the root to.overleaf/config.json. (Migration is automatic). - The
discovery_commandworkaround has been removed as it is superseded by native discovery. - Default
pushbehavior is now incremental. Use--forceto re-upload all files.
For installation instructions and full command reference, see the README.md.
v1.1.0
fix: address final lint errors in watch and init commands
v1.0.0
fix: add contents write permission to release workflow