Back to skills
SkillHub ClubShip Full StackFull Stack

overleaf

Sync and manage Overleaf LaTeX projects from the command line. Pull projects locally, push changes back, compile PDFs, and download compile outputs like .bbl files for arXiv submissions. Use when working with LaTeX, Overleaf, academic papers, or arXiv.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,126
Hot score
99
Updated
March 20, 2026
Overall rating
C5.5
Composite score
5.5
Best-practice grade
S96.0

Install command

npx @skill-hub/cli install openclaw-skills-overleaf-skill

Repository

openclaw/skills

Skill path: skills/aloth/overleaf-skill

Sync and manage Overleaf LaTeX projects from the command line. Pull projects locally, push changes back, compile PDFs, and download compile outputs like .bbl files for arXiv submissions. Use when working with LaTeX, Overleaf, academic papers, or arXiv.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: MIT.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install overleaf into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding overleaf to shared team environments
  • Use overleaf for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: overleaf
description: Sync and manage Overleaf LaTeX projects from the command line. Pull projects locally, push changes back, compile PDFs, and download compile outputs like .bbl files for arXiv submissions. Use when working with LaTeX, Overleaf, academic papers, or arXiv.
license: MIT
metadata:
  author: aloth
  version: "1.1"
  cli: olcli
  install: brew tap aloth/tap && brew install olcli
---

# Overleaf Skill

Manage Overleaf LaTeX projects via the `olcli` CLI.

## Installation

```bash
# Homebrew (recommended)
brew tap aloth/tap && brew install olcli

# npm
npm install -g @aloth/olcli
```

## Authentication

Get your session cookie from Overleaf:

1. Log into [overleaf.com](https://www.overleaf.com)
2. Open DevTools (F12) → Application → Cookies
3. Copy the value of `overleaf_session2`

```bash
olcli auth --cookie "YOUR_SESSION_COOKIE"
```

Verify with:
```bash
olcli whoami
```

Debug authentication issues:
```bash
olcli check
```

Clear stored credentials:
```bash
olcli logout
```

## Common Workflows

### Pull a project to work locally

```bash
olcli pull "My Paper"
cd My_Paper/
```

### Edit and sync changes

```bash
# After editing files locally
olcli push              # Upload changes only
olcli sync              # Bidirectional sync (pull + push)
```

### Compile and download PDF

```bash
olcli pdf                      # Compile and download
olcli pdf -o paper.pdf         # Custom output name
olcli compile                  # Just compile (no download)
```

### Download .bbl for arXiv submission

```bash
olcli output bbl               # Download compiled .bbl
olcli output bbl -o main.bbl   # Custom filename
olcli output --list            # List all available outputs
```

### Upload figures or assets

```bash
olcli upload figure1.png "My Paper"          # Upload to project root
olcli upload diagram.pdf                      # Auto-detect project from .olcli.json
```

### Download specific files

```bash
olcli download main.tex "My Paper"           # Download single file
olcli zip "My Paper"                          # Download entire project as zip
```

## arXiv Submission Workflow

Complete workflow for preparing an arXiv submission:

```bash
# 1. Pull your project
olcli pull "Research Paper"
cd Research_Paper

# 2. Compile to ensure everything builds
olcli compile

# 3. Download the .bbl file (arXiv requires .bbl, not .bib)
olcli output bbl -o main.bbl

# 4. Download any other needed outputs
olcli output aux -o main.aux    # If needed

# 5. Package for submission
zip arxiv.zip *.tex main.bbl figures/*.pdf

# 6. Verify the package compiles locally (optional)
# Then upload arxiv.zip to arxiv.org
```

## Commands Reference

| Command | Description |
|---------|-------------|
| `olcli auth --cookie <value>` | Authenticate with session cookie |
| `olcli whoami` | Check authentication status |
| `olcli logout` | Clear stored credentials |
| `olcli check` | Show config paths and credential sources |
| `olcli list` | List all projects |
| `olcli info [project]` | Show project details |
| `olcli pull [project] [dir]` | Download project files |
| `olcli push [dir]` | Upload local changes |
| `olcli sync [dir]` | Bidirectional sync |
| `olcli upload <file> [project]` | Upload a single file |
| `olcli download <file> [project]` | Download a single file |
| `olcli zip [project]` | Download as zip archive |
| `olcli compile [project]` | Trigger compilation |
| `olcli pdf [project]` | Compile and download PDF |
| `olcli output [type]` | Download compile outputs |

## Tips

- **Auto-detect project**: Run commands from a synced directory (contains `.olcli.json`) to skip the project argument
- **Dry run**: Use `olcli push --dry-run` to preview changes before uploading
- **Force overwrite**: Use `olcli pull --force` to overwrite local changes
- **Project ID**: You can use project ID instead of name (24-char hex from URL)
- **Debug auth**: Run `olcli check` to see where credentials are loaded from


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### README.md

```markdown
# Overleaf Skill

[![npm version](https://img.shields.io/npm/v/@aloth/olcli.svg)](https://www.npmjs.com/package/@aloth/olcli)
[![Homebrew](https://img.shields.io/badge/homebrew-aloth%2Ftap-orange)](https://github.com/aloth/homebrew-tap)
[![AgentSkills](https://img.shields.io/badge/AgentSkills-compatible-blue)](https://agentskills.io)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

An [Agent Skill](https://agentskills.io) for managing Overleaf LaTeX projects.

<p align="center">
  <img src="https://raw.githubusercontent.com/aloth/olcli/main/screenshots/demo.gif" alt="olcli demo" width="600">
</p>

## What it does

- Pull Overleaf projects to work locally
- Push local changes back to Overleaf
- Compile PDFs and download them
- Download `.bbl` files for arXiv submissions
- Bidirectional sync with conflict detection
- Upload figures and assets to projects

## Installation

### For agents (via skills CLI)

```bash
npx skills add aloth/overleaf-skill
```

### CLI tool only

**Homebrew (macOS/Linux):**
```bash
brew tap aloth/tap && brew install olcli
```

**npm (all platforms):**
```bash
npm install -g @aloth/olcli
```

## Quick start

```bash
olcli auth --cookie "SESSION_COOKIE"  # One-time setup
olcli list                             # See all projects
olcli pull "My Paper"                  # Download project
cd My_Paper && vim main.tex            # Edit locally
olcli sync                             # Push changes
olcli pdf                              # Download PDF
olcli output bbl                       # Get .bbl for arXiv
```

## arXiv Submission Workflow

Complete workflow for submitting to arXiv:

```bash
# 1. Pull and compile your paper
olcli pull "My Paper"
cd My_Paper
olcli pdf

# 2. Download .bbl (required by arXiv instead of .bib)
olcli output bbl -o main.bbl

# 3. Package for arXiv: .tex files + .bbl + figures
zip arxiv-submission.zip *.tex main.bbl figures/*

# 4. Upload to arxiv.org
```

## Links

- [olcli on GitHub](https://github.com/aloth/olcli)
- [olcli on npm](https://www.npmjs.com/package/@aloth/olcli)
- [Homebrew tap](https://github.com/aloth/homebrew-tap)
- [Agent Skills specification](https://agentskills.io/specification)

## License

MIT

```

### _meta.json

```json
{
  "owner": "aloth",
  "slug": "overleaf-skill",
  "displayName": "Overleaf",
  "latest": {
    "version": "1.1.0",
    "publishedAt": 1770455456936,
    "commit": "https://github.com/openclaw/skills/commit/27f1de7d6cbb0bd6acf264ed34433ea86fbf016e"
  },
  "history": []
}

```

### references/API.md

```markdown
# Overleaf API Reference

## Authentication

olcli uses session cookie authentication via `overleaf_session2`.

### Getting the cookie

1. Open browser DevTools (F12)
2. Go to Application → Cookies → www.overleaf.com
3. Copy the value of `overleaf_session2`

The cookie is a URL-encoded signed session, starting with `s%3A`.

### Cookie storage

Credentials are checked in order:
1. `OVERLEAF_SESSION` environment variable
2. `.olauth` file in current directory
3. Global config: `~/.config/olcli-nodejs/config.json`

## Project sync metadata

When you `pull` a project, olcli creates `.olcli.json`:

```json
{
  "projectId": "64a1b2c3d4e5f6789abcdef0",
  "projectName": "My Paper",
  "lastPull": 1706868000000
}
```

This enables auto-detection for subsequent commands.

## Compile outputs

The `output` command downloads files from the compile endpoint:

| Type | Description |
|------|-------------|
| `bbl` | Bibliography output (for arXiv) |
| `log` | LaTeX compilation log |
| `aux` | Auxiliary file |
| `blg` | BibTeX log |
| `pdf` | Compiled PDF |
| `out` | Hyperref output |

## Rate limiting

Overleaf has rate limits. olcli spaces requests automatically, but if you hit 429 errors, wait a few seconds.

```

### scripts/install.sh

```bash
#!/bin/bash
# Quick setup script for olcli

set -e

# Check if olcli is installed
if command -v olcli &> /dev/null; then
    echo "✓ olcli is already installed ($(olcli --version))"
    exit 0
fi

# Try Homebrew first
if command -v brew &> /dev/null; then
    echo "Installing olcli via Homebrew..."
    brew tap aloth/tap
    brew install olcli
    echo "✓ Installed olcli $(olcli --version)"
    exit 0
fi

# Fall back to npm
if command -v npm &> /dev/null; then
    echo "Installing olcli via npm..."
    npm install -g @aloth/olcli
    echo "✓ Installed olcli $(olcli --version)"
    exit 0
fi

echo "Error: Neither Homebrew nor npm found. Please install one of them first."
exit 1

```

overleaf | SkillHub