Aller au contenu
Oleaflyv0.4.8

Installez la commande oleafly sous Windows, macOS ou Linux, compilez et vérifiez des projets depuis un terminal ou la CI, synchronisez avec un service LaTeX en ligne, et connectez des agents de code via son serveur MCP et sa compétence.

Oleafly est fourni avec oleafly, un outil en ligne de commande qui travaille sur les mêmes projets que l’application. Compilez ou vérifiez un article depuis un terminal, un script ou la CI. Donnez à un agent de code un accès fiable à votre projet. Synchronisez avec un service LaTeX en ligne ou un serveur Oleafly, ou lancez l’agent d’Oleafly sans ouvrir l’application.

Il est fourni dans l’application sur toutes les plateformes. Cette page couvre les commandes d’Oleafly 0.4.8 et suivantes. Les versions antérieures en avaient moins ; fixez donc votre version d’Oleafly dans les scripts qui en dépendent.

SystèmeOù l’application la gardeMettre oleafly sur votre PATH
Windowsoleafly-cli.exe à côté de l’application, dans %LOCALAPPDATA%\Oleafly pour le programme d’installation ou C:\Program Files\Oleafly pour le paquet MSIInstaller sur la ligne Commande de terminal dans Paramètres → Général la copie dans %LOCALAPPDATA%\Oleafly\bin\oleafly.exe et ajoute ce dossier à votre PATH
macOSOleafly.app/Contents/MacOS/oleafly-cliInstaller sur la ligne Commande de terminal relie oleafly à /usr/local/bin quand vous pouvez y écrire, sinon à ~/.local/bin
Paquets Linux (.deb, .rpm)/usr/bin/oleafly-cliRien à faire : le paquet installe /usr/bin/oleafly
AppImage LinuxDans l’AppImageInstaller la copie dans ~/.local/bin/oleafly

Les programmes qu’Oleafly lance, comme son propre terminal et les agents CLI, trouvent toujours oleafly dans leur PATH, même avant que vous l’installiez. La variable OLEAFLY_CLI contient son chemin complet.

  1. Ouvrez Paramètres → Général et choisissez Installer sur la ligne Commande de terminal.
  2. Ouvrez une nouvelle fenêtre PowerShell ou Invite de commandes. Les fenêtres déjà ouvertes gardent l’ancien PATH.
  3. Vérifiez que cela fonctionne :
Fenêtre de terminal
Get-Command oleafly
oleafly version

Retirer sur la même ligne supprime la copie et retire à nouveau le dossier de votre PATH. Quand Oleafly se met à jour, il actualise la copie au prochain démarrage.

Déplacez d’abord Oleafly dans votre dossier Applications. Une copie qui s’exécute depuis l’image disque affiche « Déplacez d’abord Oleafly dans le dossier Applications » au lieu de Installer.

La commande est un lien vers l’application : mettre Oleafly à jour met donc aussi la commande à jour. Si le dossier n’est pas dans votre PATH, la ligne affiche la ligne de configuration à ajouter à votre profil de shell. Vérifiez avec command -v oleafly.

Les paquets .deb et .rpm mettent oleafly sur votre PATH quand vous les installez. oleafly seul, sans rien après, ouvre l’application.

L’AppImage a besoin d’une copie, car les fichiers à l’intérieur d’une AppImage disparaissent quand elle se ferme. Quand vous remplacez l’AppImage par une plus récente, la ligne propose Mettre à jour. Si ~/.local/bin n’est pas dans votre PATH, la ligne affiche la ligne de configuration à ajouter.

oleafly version affiche la version de l’application et les moteurs que la commande utiliserait. oleafly doctor contrôle les moteurs, l’application, Git, la commande de terminal et vos clients MCP, et affiche un correctif pour tout ce qui manque. Il fonctionne aussi hors d’un projet.

oleafly . ouvre le dossier courant dans l’application. Toutes les autres commandes travaillent sur le dossier où vous êtes ; -C suivi d’un chemin les dirige ailleurs.

Fenêtre de terminal
cd ~/papers/thesis
oleafly init --engine typst
oleafly build
oleafly log --diagnostics
oleafly -C ~/papers/review --json build
  • oleafly init fait du dossier courant un projet. --engine accepte tectonic, latexmk, typst ou markdown.
  • oleafly new suivi d’un dossier, de --template et d’un identifiant de modèle crée un projet à partir d’un modèle. oleafly templates list --all liste les modèles.
  • oleafly build utilise le moteur et les réglages du projet, comme le fait l’application : le Tectonic, le Typst et le Pandoc fournis avec Oleafly, ou le LaTeX que vous avez installé. --main compile un autre document du projet, --compiler choisit le compilateur LaTeX pour les projets latexmk, -o copie le PDF ailleurs et --timeout fixe la limite en secondes.
  • Un dossier que vous avez ouvert sur place dans l’application se compile avec le moteur et le document principal que vous y avez choisis, dans le propre dossier de compilation de l’application.
  • L’application et la commande ne compilent jamais le même projet en même temps : la seconde attend la première. Une compilation échouée conserve le dernier bon PDF.
  • oleafly watch recompile à chaque enregistrement. oleafly log --diagnostics liste les erreurs et les avertissements avec le fichier et la ligne, et oleafly clean supprime la sortie de compilation.

Pour les spécificités de Typst, voir Projets Typst.

Les agents de code travaillent mieux avec trois choses que la commande leur donne : oleafly context pour la carte du projet, --json pour des résultats lisibles, et des codes de sortie qui disent ce qui a mal tourné. Il existe trois façons de connecter un agent.

Oleafly fournit une compétence appelée oleafly-cli. Elle apprend à un agent les commandes, la sortie JSON et les codes de sortie, ainsi que la boucle qui marche le mieux : lire le contexte, modifier, compiler, lire les diagnostics, corriger la première erreur.

Dans le terminal d’Oleafly et les agents CLI qu’il lance, choisissez la compétence comme n’importe quelle autre. Pour un agent que vous lancez vous-même, activez Paramètres → Assistant IA → Compétences → Partager les compétences avec les autres agents de cet ordinateur. Oleafly relie alors ses compétences, oleafly-cli comprise, aux dossiers que lisent les autres agents de code, comme ~/.claude/skills, ~/.codex/skills et ~/.agents/skills. oleafly skills path affiche où se trouvent les compétences, pour les agents qui lisent un autre dossier.

oleafly mcp est un serveur MCP qui communique par l’entrée et la sortie standard. Quand l’application a votre projet ouvert, il transmet les appels au serveur MCP de l’application elle-même, si bien que l’agent obtient tous les outils de l’application et vos demandes d’approbation. Sinon, il fonctionne seul, avec des outils de lecture (état du projet, carte du projet, fichiers, recherche, journaux, rapport de diagnostic, recherche de citations) et compile. Il n’y a ni URL ni jeton à copier, ni Node.js à installer.

Le plus rapide est oleafly mcp config --client suivi de claude-code, claude-desktop, codex, cursor ou gemini. La commande affiche l’entrée pour ce client ; ajoutez --write pour qu’elle soit ajoutée à votre place, avec une sauvegarde du fichier du client. Redémarrez ou reconnectez ensuite le client. Dans un projet, elle écrit les réglages du projet ; ailleurs, elle écrit vos réglages utilisateur, avec le chemin complet de la commande, parce que les applications que vous lancez depuis le bureau peuvent ne pas voir votre PATH.

Fenêtre de terminal
claude mcp add --scope user oleafly -- oleafly mcp

Dans un projet, oleafly mcp config --client claude-code --write ajoute plutôt le serveur au fichier .mcp.json du projet.

Claude Desktop lance les serveurs sans dossier de projet, donc son entrée passe toujours par l’application : gardez Oleafly ouvert avec votre projet. Utilisez le chemin complet de oleafly. Sous Windows, doublez chaque barre oblique inverse dans le chemin.

claude_desktop_config.json
{
"mcpServers": {
"oleafly": {
"command": "/usr/local/bin/oleafly",
"args": ["mcp", "--bridge", "always"]
}
}
}

Le fichier se trouve dans ~/Library/Application Support/Claude sous macOS et %APPDATA%\Claude sous Windows.

~/.codex/config.toml
[mcp_servers.oleafly]
command = "oleafly"
args = ["mcp"]
tool_timeout_sec = 300

Utilisez ~/.cursor/mcp.json pour tous les projets, ou .cursor/mcp.json dans un seul projet.

~/.cursor/mcp.json
{
"mcpServers": {
"oleafly": {
"command": "oleafly",
"args": ["mcp"]
}
}
}
~/.gemini/settings.json
{
"mcpServers": {
"oleafly": {
"command": "oleafly",
"args": ["mcp"],
"timeout": 300000
}
}
}

oleafly context dresse la carte du projet : ses fichiers, son plan, ses étiquettes, ses citations, ses fichiers manquants, ses références non résolues et les problèmes de la dernière compilation. --format md donne du texte à coller dans une invite ; --format json donne la même carte pour un programme.

oleafly check exécute les contrôles de prévérification sur le projet, avec les mêmes résultats que le panneau Prévérification : références, citations, étiquettes, fichiers manquants, champs de bibliographie, figures et anonymat pour la relecture en aveugle. Les contrôles qui ont besoin du PDF compilé utilisent la dernière compilation.

oleafly lint exécute les contrôles LaTeX et BibTeX et, dans les versions qui l’incluent, l’orthographe et la grammaire. --fix applique les corrections qu’on peut appliquer sans risque.

Les deux acceptent --format human, json ou sarif, et --exit-code les fait sortir avec le code 9 quand ils trouvent des problèmes. SARIF fonctionne avec les services d’analyse de code comme celui de GitHub : écrivez le rapport avec oleafly check --format sarif -o preflight.sarif, envoyez-le avec l’action upload-sarif, et chaque constat s’affiche sur sa ligne dans la pull request.

oleafly remote télécharge les projets de votre compte de service LaTeX en ligne et garde un dossier synchronisé avec l’un d’eux, avec la même fusion que l’application.

Les connexions vivent dans le magasin chiffré de l’application : une connexion faite dans l’application fonctionne donc en ligne de commande, et inversement.

  • oleafly auth login online --with-token enregistre un jeton Git depuis les paramètres de compte du service. Lier et synchroniser en exigent un.
  • oleafly auth login online --from-browser firefox copie votre connexion depuis un navigateur de cet ordinateur, pour lister et télécharger des projets. Firefox fonctionne sur tous les systèmes ; Chrome, Edge et Brave fonctionnent sous macOS. --cookie-stdin lit plutôt un cookie de session.
  • oleafly auth login git --host https://gitlab.com enregistre un jeton pour un hôte Git.
  • oleafly auth status liste chaque connexion et sa provenance, sans montrer aucun secret.
  • oleafly auth logout supprime une connexion.
Fenêtre de terminal
oleafly remote list
oleafly remote import 64a1f0c2e5b7 --into ~/papers
cd ~/papers/thesis
oleafly remote link
oleafly remote sync
  • oleafly remote import télécharge des projets dans de nouveaux dossiers. Il fonctionne avec n’importe quel compte.
  • oleafly remote link relie un dossier à son projet en ligne via l’intégration Git du service, ce qui exige un jeton Git.
  • oleafly remote sync fusionne les modifications en ligne dans le dossier et envoie les vôtres. --dry-run montre ce qui changerait et --no-push fusionne sans envoyer.
  • Quand un fichier a changé des deux côtés, la synchronisation n’écrit rien et sort avec le code 8. Relancez-la avec --resolve suivi du chemin du fichier puis de =local ou =remote, pour chaque fichier.
  • oleafly remote diff montre ce qui diffère ; avec --exit-code, il sort avec le code 9 quand des fichiers diffèrent et 8 quand ils sont en conflit. --latexdiff --pdf construit un PDF annoté de vos modifications, avec latexdiff de votre distribution TeX.
  • oleafly remote status, oleafly remote unlink et oleafly remote open montrent le lien, le suppriment et ouvrent le projet dans votre navigateur.

oleafly server sign-in suivi de l’adresse du serveur connecte la ligne de commande avec un code que vous approuvez dans votre navigateur. La ligne de commande est un appareil à part sur le serveur, distinct de l’application.

  • oleafly server status et oleafly server projects montrent vos serveurs et les projets partagés.
  • oleafly server share montre le lien d’un projet et active ou désactive le partage par lien et les commentaires.
  • oleafly server members liste les personnes d’un projet et les ajoute, les retire ou les modifie. Seul le propriétaire peut changer le partage et les membres.
  • oleafly server comments liste, ajoute, résout les commentaires et y répond. Un commentaire qui ne peut pas être envoyé tout de suite est conservé et envoyé la fois suivante.

Le premier partage d’un projet se fait dans l’application. Voir Collaboration en direct.

oleafly ask répond à une question sur le projet sans rien changer. oleafly agent run effectue une tâche.

Fenêtre de terminal
oleafly ask "Which sections cite Smith 2021?"
oleafly agent run --allow write "Fix the overfull boxes in chapter 3"
  • L’agent peut toujours lire le projet. --allow ajoute write, commands ou network, et il refuse tout ce que vous n’avez pas autorisé. Il ne s’arrête jamais pour poser une question.
  • Les modifications vont d’abord dans un dossier de relecture sous .oleafly/agent-runs/. oleafly agent apply suivi de ce dossier les écrit dans le projet, et --apply sur l’exécution les écrit tout de suite.
  • Le fournisseur, le modèle et l’effort viennent des réglages de l’application, ou de --provider, --model et --effort. La clé vient de la variable d’environnement propre au fournisseur, comme ANTHROPIC_API_KEY, ou du magasin chiffré de l’application.
  • --json affiche un seul résultat à la fin de l’exécution, et --events ajoute une ligne JSON pour chaque événement pendant que l’agent travaille.

Garder les tâches de recherche en cours après la fermeture

Section intitulée « Garder les tâches de recherche en cours après la fermeture »

Marquez une tâche de recherche Continuer quand Oleafly est fermé. Quand vous quittez, un petit processus d’arrière-plan reprend ces tâches et leurs exécutions d’expériences continuent. Une étape qui demande votre approbation met la tâche en pause et envoie une notification. Quand vous rouvrez Oleafly, il reprend les tâches et montre ce qui s’est passé. Désactivez cela, ou lancez le processus à l’ouverture de session, sous Paramètres → Recherche → Tâches en arrière-plan. oleafly daemon status montre ce que fait le processus.

Chaque commande explique ses options avec --help. La référence complète se trouve dans le dépôt : docs/cli.md (s’ouvre dans un nouvel onglet).

CommandeCe qu’elle fait
oleafly openOuvre un dossier dans l’application (oleafly . pour le dossier courant)
oleafly initFait du dossier courant un projet
oleafly newCrée un projet, à partir d’un modèle si vous en nommez un
oleafly templatesListe les modèles et en montre un
oleafly buildCompile le projet
oleafly watchRecompile à chaque enregistrement
oleafly cleanSupprime la sortie de compilation
oleafly logMontre le journal de la dernière compilation ou ses problèmes
oleafly doctorContrôle les moteurs, l’application et votre configuration
oleafly versionMontre la version et les moteurs utilisés
oleafly project infoMontre les réglages du projet
oleafly projects listListe les projets de l’application
oleafly configLit et modifie les réglages du projet et de l’application
CommandeCe qu’elle fait
oleafly citeAffiche le BibTeX d’un DOI, d’un identifiant arXiv, d’un ISBN ou d’un identifiant PubMed ; --add l’ajoute à la bibliographie
oleafly literatureCherche dans OpenAlex, Semantic Scholar, Crossref, arXiv et PubMed
oleafly bib checkTrouve les entrées qui ne correspondent à aucune notice réelle
oleafly bib cleanCorrige les clés de citation et supprime les doublons ; --apply écrit les modifications
oleafly statsCompte les mots, les titres, les figures et les équations
oleafly synctexRelie une ligne du source au PDF et inversement
oleafly exportExporte le document vers Word, HTML, Markdown, EPUB et plus encore
oleafly convertConvertit un fichier vers un autre format
oleafly typstListe, installe et supprime des versions de Typst
oleafly checkpointListe, compare et copie les points de contrôle de l’application
CommandeCe qu’elle fait
oleafly contextDresse la carte du projet pour une personne ou un agent
oleafly mcpLance le serveur MCP ; mcp config configure un client
oleafly skillsListe les compétences et affiche où elles se trouvent
oleafly askRépond à une question sur le projet
oleafly agentLance l’agent d’Oleafly sur une tâche
oleafly daemonLance et pilote le processus qui garde les tâches en cours
CommandeCe qu’elle fait
oleafly checkExécute les contrôles de prévérification
oleafly lintExécute les contrôles LaTeX, BibTeX, d’orthographe et de grammaire
CommandeCe qu’elle fait
oleafly authConnecte aux services LaTeX en ligne, aux serveurs Oleafly et aux hôtes Git
oleafly remoteImporte, relie et synchronise des projets en ligne
oleafly serverTravaille avec les serveurs Oleafly : projets, partage, membres, commentaires
CommandeCe qu’elle fait
oleafly completionsAffiche les complétions de shell pour bash, zsh, fish, PowerShell ou elvish
oleafly manAffiche la page de manuel
oleafly help exit-codesExplique les codes de sortie
OptionCe qu’elle fait
-C suivi d’un cheminExécute la commande sur un autre dossier de projet
--jsonAffiche un seul résultat JSON
--eventsAffiche la progression en lignes JSON avant le résultat
--quietAffiche seulement le résultat
--logAffiche none, la fin (tail) ou le journal complet (full) du compilateur
--no-inputNe pose jamais de question
--colorUtilise la couleur auto, always ou never

Avec --json, chaque commande affiche un seul objet JSON : schema_version, ok, command, les champs propres à la commande et warnings. Quand une commande échoue, error contient un kind, un code stable et un message. Quand ils aident, il contient aussi un hint, des details et "retryable": true si une nouvelle tentative peut réussir. Vérifiez schema_version avant de vous appuyer sur un champ.

{
"schema_version": 1,
"type": "result",
"ok": false,
"command": "remote sync",
"error": {
"kind": "conflict",
"code": "remote.conflicts",
"message": "2 files changed both here and online.",
"hint": "Pick a side with --resolve PATH=local or --resolve PATH=remote, then sync again.",
"details": { "conflicts": ["main.tex", "refs.bib"] }
},
"warnings": []
}

--events ajoute une ligne JSON par événement de progression avant le résultat.

oleafly help exit-codes affiche le même tableau.

CodeSignification
0Ça a fonctionné
1Un problème est survenu à l’intérieur d’Oleafly
2La commande a été mal utilisée, ou elle a besoin de --yes pour continuer
3Le projet est absent ou invalide, ou un chemin sort du projet
4Un outil ou l’application Oleafly dont elle a besoin n’est pas installé
5La compilation a échoué
6Vous devez vous connecter
7Le réseau a échoué
8Autre chose retient le projet, ou une synchronisation a des conflits
9Un contrôle a trouvé des problèmes
130Vous avez appuyé sur Ctrl+C

La commande ne pose jamais de question sans terminal. --no-input désactive aussi les questions, tout comme une variable CI ; une commande qui a besoin d’un oui échoue alors avec le code de sortie 2 et demande --yes. NO_COLOR ou --color never désactive la couleur. Les chemins qui sortiraient du projet sont refusés.

VariableUsage
OLEAFLY_DATA_DIRLe dossier de données d’Oleafly, quand ce n’est pas ~/.oleafly
OLEAFLY_TECTONIC, OLEAFLY_LATEXMK, OLEAFLY_TYPST, OLEAFLY_PANDOCUn compilateur à utiliser à la place de celui qu’Oleafly trouve
OLEAFLY_APPL’application Oleafly que lance oleafly open
OLEAFLY_ONLINE_GIT_TOKENUn jeton Git pour le service LaTeX en ligne, utilisé à la place d’un jeton enregistré
OLEAFLY_CLIDéfinie par Oleafly pour les programmes qu’il lance : le chemin complet de la commande
CIQuand elle est définie, la commande ne pose jamais de question
NO_COLORQuand elle est définie, la sortie n’a pas de couleur
Ce que vous voyezCe qu’il faut essayer
oleafly est introuvableOuvrez un nouveau terminal. Vérifiez ensuite avec Get-Command oleafly sous Windows ou command -v oleafly sous macOS et Linux, et ajoutez à votre profil de shell la ligne que montrent les Paramètres
oleafly doctor signale un moteur manquantInstallez-le avec la commande qu’affiche doctor, ou ouvrez le projet une fois dans l’application
Un client MCP ne peut pas démarrer le serveurExécutez la commande configurée dans un terminal, utilisez le chemin complet donné par oleafly mcp config, et lancez oleafly doctor
Code de sortie 6Lancez oleafly auth status, puis reconnectez-vous
Code de sortie 8 pendant une synchronisationRelancez la synchronisation avec --resolve pour chaque fichier qu’elle liste
Sur macOS, les Paramètres affichent « Déplacez d’abord Oleafly dans le dossier Applications »Déplacez l’application, ouvrez-la depuis Applications, puis choisissez Installer
Aperçu de l’image

Impossible de charger les réponses de l’IA

Réessayez ou cherchez dans la documentation.