Zum Inhalt springen
Oleaflyv0.4.8

Installieren Sie den Befehl oleafly unter Windows, macOS oder Linux, bauen und prüfen Sie Projekte aus einem Terminal oder in CI, gleichen Sie mit einem Online-LaTeX-Dienst ab und verbinden Sie Coding-Agenten über seinen MCP-Server und Skill.

Oleafly bringt oleafly mit, ein Befehlszeilenwerkzeug, das mit denselben Projekten arbeitet wie die App. Bauen oder prüfen Sie ein Paper aus einem Terminal, einem Skript oder CI. Geben Sie einem Coding-Agenten einen verlässlichen Zugang zu Ihrem Projekt. Gleichen Sie mit einem Online-LaTeX-Dienst oder einem Oleafly-Server ab, oder führen Sie den Oleafly-Agenten aus, ohne die App zu öffnen.

Es kommt auf jeder Plattform mit der App. Diese Seite behandelt die Befehle in Oleafly 0.4.8 und später. Frühere Versionen hatten weniger, fixieren Sie in Skripten, die davon abhängen, also Ihre Oleafly-Version.

SystemWo die App ihn ablegtoleafly in Ihren PATH legen
Windowsoleafly-cli.exe neben der App, in %LOCALAPPDATA%\Oleafly beim Setup-Programm oder in C:\Program Files\Oleafly beim MSI-PaketInstallieren in der Zeile Terminalbefehl unter Einstellungen → Allgemein kopiert ihn nach %LOCALAPPDATA%\Oleafly\bin\oleafly.exe und fügt diesen Ordner Ihrem PATH hinzu
macOSOleafly.app/Contents/MacOS/oleafly-cliInstallieren in der Zeile Terminalbefehl legt einen Link oleafly in /usr/local/bin an, wenn Sie dort schreiben dürfen, sonst in ~/.local/bin
Linux-Pakete (.deb, .rpm)/usr/bin/oleafly-cliNichts zu tun: Das Paket installiert /usr/bin/oleafly
Linux-AppImageIm AppImageInstallieren kopiert ihn nach ~/.local/bin/oleafly

Programme, die Oleafly startet, etwa das eigene Terminal und die CLI-Agenten, finden oleafly immer in ihrem PATH, auch bevor Sie es installieren. Die Variable OLEAFLY_CLI enthält den vollständigen Pfad.

  1. Öffnen Sie Einstellungen → Allgemein und wählen Sie Installieren in der Zeile Terminalbefehl.
  2. Öffnen Sie ein neues PowerShell- oder Eingabeaufforderungsfenster. Bereits geöffnete Fenster behalten den alten PATH.
  3. Prüfen Sie, ob es funktioniert:
Terminalfenster
Get-Command oleafly
oleafly version

Entfernen in derselben Zeile löscht die Kopie und nimmt den Ordner wieder aus Ihrem PATH. Aktualisiert sich Oleafly, erneuert es die Kopie beim nächsten Start.

Verschieben Sie Oleafly zuerst in den Ordner „Programme“. Eine Kopie, die vom Disk-Image aus läuft, zeigt statt Installieren die Meldung „Verschieben Sie Oleafly zuerst in den Ordner ‚Programme‘“.

Der Befehl ist ein Link auf die App, sodass eine Aktualisierung von Oleafly auch den Befehl aktualisiert. Liegt der Ordner nicht in Ihrem PATH, zeigt die Zeile, welche Anweisung Sie Ihrem Shell-Profil hinzufügen müssen. Prüfen Sie es mit command -v oleafly.

Die Pakete .deb und .rpm legen oleafly in Ihren PATH, sobald Sie sie installieren. oleafly ohne weitere Angaben öffnet die App.

Das AppImage braucht eine Kopie, weil die Dateien in einem AppImage verschwinden, wenn es beendet wird. Ersetzen Sie das AppImage durch ein neueres, bietet die Zeile Aktualisieren an. Liegt ~/.local/bin nicht in Ihrem PATH, zeigt die Zeile, welche Anweisung Sie hinzufügen müssen.

oleafly version gibt die Version der App und die Engines aus, die der Befehl verwenden würde. oleafly doctor prüft die Engines, die App, Git, den Terminalbefehl und Ihre MCP-Clients und gibt für alles Fehlende eine Abhilfe aus. Es funktioniert auch außerhalb eines Projekts.

oleafly . öffnet den aktuellen Ordner in der App. Jeder andere Befehl arbeitet mit dem Ordner, in dem Sie sich befinden; -C gefolgt von einem Pfad richtet ihn auf einen anderen Ordner.

Terminalfenster
cd ~/papers/thesis
oleafly init --engine typst
oleafly build
oleafly log --diagnostics
oleafly -C ~/papers/review --json build
  • oleafly init macht den aktuellen Ordner zu einem Projekt. --engine akzeptiert tectonic, latexmk, typst oder markdown.
  • oleafly new gefolgt von einem Ordner und --template mit einer Vorlagen-ID erstellt ein Projekt aus einer Vorlage. oleafly templates list --all listet die Vorlagen auf.
  • oleafly build verwendet die Engine und die Einstellungen des Projekts, so wie die App es tut: das Tectonic, Typst und Pandoc, die mit Oleafly kommen, oder das LaTeX, das Sie installiert haben. --main baut ein anderes Dokument des Projekts, --compiler wählt den LaTeX-Compiler für latexmk-Projekte, -o kopiert das PDF an einen anderen Ort und --timeout setzt das Limit in Sekunden.
  • Ein Ordner, den Sie in der App an Ort und Stelle geöffnet haben, wird mit der Engine und dem Hauptdokument gebaut, die Sie dort gewählt haben, in den eigenen Build-Ordner der App.
  • Die App und der Befehl bauen nie dasselbe Projekt gleichzeitig: Der zweite wartet auf den ersten. Ein fehlgeschlagener Build behält das letzte gute PDF.
  • oleafly watch baut bei jedem Speichern neu. oleafly log --diagnostics listet Fehler und Warnungen mit Datei und Zeile auf, und oleafly clean entfernt die Build-Ausgabe.

Zu den Besonderheiten von Typst siehe Typst-Projekte.

Coding-Agenten arbeiten am besten mit drei Dingen, die der Befehl ihnen gibt: oleafly context für die Karte des Projekts, --json für Ergebnisse, die sie lesen können, und Exit-Codes, die sagen, was schiefgelaufen ist. Es gibt drei Wege, einen Agenten zu verbinden.

Oleafly liefert einen Skill namens oleafly-cli mit. Er bringt einem Agenten die Befehle, die JSON-Ausgabe und die Exit-Codes bei, dazu den Ablauf, der am besten funktioniert: den Kontext lesen, bearbeiten, bauen, die Diagnosen lesen, den ersten Fehler beheben.

Im Terminal von Oleafly und in den CLI-Agenten, die es startet, wählen Sie den Skill wie jeden anderen. Für einen Agenten, den Sie selbst ausführen, schalten Sie Einstellungen → KI-Assistent → Skills → Skills mit anderen Agenten auf diesem Computer teilen ein. Oleafly verknüpft dann seine Skills, oleafly-cli eingeschlossen, mit den Ordnern, die andere Coding-Agenten lesen, etwa ~/.claude/skills, ~/.codex/skills und ~/.agents/skills. oleafly skills path gibt aus, wo die Skills liegen, für Agenten, die einen anderen Ordner lesen.

oleafly mcp ist ein MCP-Server, der über Standardeingabe und Standardausgabe spricht. Hat die App Ihr Projekt geöffnet, reicht er Aufrufe an den eigenen MCP-Server der App weiter, sodass der Agent jedes App-Werkzeug und Ihre Freigabeabfragen bekommt. Andernfalls arbeitet er für sich, mit Lesewerkzeugen (Projektstatus, Projektkarte, Dateien, Suche, Protokolle, der Doctor-Bericht, Zitationsabfrage) und compile. Es gibt weder eine URL noch ein Token zu kopieren, und Node.js muss nicht installiert werden.

Am schnellsten richten Sie es mit oleafly mcp config --client gefolgt von claude-code, claude-desktop, codex, cursor oder gemini ein. Der Befehl gibt den Eintrag für diesen Client aus; mit --write wird er für Sie eingetragen, mit einer Sicherung der Datei des Clients. Starten Sie den Client danach neu oder verbinden Sie ihn erneut. In einem Projekt schreibt er die Einstellungen des Projekts; anderswo schreibt er Ihre Benutzereinstellungen, mit dem vollständigen Pfad des Befehls, weil Apps, die Sie vom Desktop aus starten, Ihren PATH womöglich nicht sehen.

Terminalfenster
claude mcp add --scope user oleafly -- oleafly mcp

In einem Projekt fügt oleafly mcp config --client claude-code --write den Server stattdessen der .mcp.json des Projekts hinzu.

Claude Desktop startet Server ohne Projektordner, sein Eintrag arbeitet also immer über die App: Lassen Sie Oleafly mit Ihrem Projekt geöffnet. Verwenden Sie den vollständigen Pfad zu oleafly. Verdoppeln Sie unter Windows jeden Backslash im Pfad.

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

Die Datei liegt unter macOS in ~/Library/Application Support/Claude und unter Windows in %APPDATA%\Claude.

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

Verwenden Sie ~/.cursor/mcp.json für jedes Projekt oder .cursor/mcp.json innerhalb eines einzelnen Projekts.

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

oleafly context erstellt die Karte des Projekts: seine Dateien, die Gliederung, Labels, Zitationen, fehlende Dateien, offene Verweise und die Probleme des letzten Builds. --format md liefert Text zum Einfügen in einen Prompt; --format json liefert dieselbe Karte für ein Programm.

oleafly check führt die Preflight-Prüfungen für das Projekt aus, mit denselben Ergebnissen wie das Preflight-Bedienfeld: Referenzen, Zitationen, Labels, fehlende Dateien, Felder des Literaturverzeichnisses, Abbildungen und Anonymisierung für das Blind-Review. Prüfungen, die das kompilierte PDF brauchen, verwenden den letzten Build.

oleafly lint führt die LaTeX- und BibTeX-Prüfungen aus und, in den Builds, die sie enthalten, Rechtschreibung und Grammatik. --fix wendet die Korrekturen an, die sich gefahrlos anwenden lassen.

Beide akzeptieren --format human, json oder sarif, und --exit-code lässt sie mit 9 enden, wenn sie Probleme finden. SARIF funktioniert mit Code-Scanning-Diensten wie dem von GitHub: Schreiben Sie den Bericht mit oleafly check --format sarif -o preflight.sarif, laden Sie ihn mit der Action upload-sarif hoch, und jeder Fund erscheint im Pull-Request an seiner Zeile.

oleafly remote lädt Projekte aus Ihrem Konto beim Online-LaTeX-Dienst herunter und hält einen Ordner mit einem davon abgeglichen, mit demselben Zusammenführen, das die App verwendet.

Anmeldungen liegen im verschlüsselten Speicher der App, sodass eine in der App vorgenommene Anmeldung auch auf der Befehlszeile funktioniert und umgekehrt.

  • oleafly auth login online --with-token speichert ein Git-Token aus den Kontoeinstellungen des Dienstes. Verknüpfen und Abgleichen brauchen eines.
  • oleafly auth login online --from-browser firefox kopiert Ihre Anmeldung aus einem Browser auf diesem Computer, zum Auflisten und Herunterladen von Projekten. Firefox funktioniert auf jedem System; Chrome, Edge und Brave funktionieren unter macOS. --cookie-stdin liest stattdessen ein Sitzungs-Cookie.
  • oleafly auth login git --host https://gitlab.com speichert ein Token für einen Git-Host.
  • oleafly auth status listet jede Anmeldung und ihre Herkunft auf, ohne ein Geheimnis zu zeigen.
  • oleafly auth logout entfernt eine Anmeldung.
Terminalfenster
oleafly remote list
oleafly remote import 64a1f0c2e5b7 --into ~/papers
cd ~/papers/thesis
oleafly remote link
oleafly remote sync
  • oleafly remote import lädt Projekte in neue Ordner herunter. Es funktioniert mit jedem Konto.
  • oleafly remote link verbindet einen Ordner über die Git-Integration des Dienstes mit seinem Online-Projekt, was ein Git-Token braucht.
  • oleafly remote sync führt Online-Änderungen in den Ordner zusammen und sendet Ihre. --dry-run zeigt, was sich ändern würde, und --no-push führt zusammen, ohne zu senden.
  • Wurde eine Datei auf beiden Seiten geändert, schreibt der Abgleich nichts und endet mit 8. Führen Sie ihn erneut mit --resolve aus, gefolgt vom Pfad der Datei und =local oder =remote, für jede Datei.
  • oleafly remote diff zeigt, was sich unterscheidet; mit --exit-code endet es mit 9, wenn sich Dateien unterscheiden, und mit 8, wenn sie in Konflikt stehen. --latexdiff --pdf baut ein markiertes PDF Ihrer Änderungen, mit latexdiff aus Ihrer TeX-Distribution.
  • oleafly remote status, oleafly remote unlink und oleafly remote open zeigen die Verknüpfung, entfernen sie und öffnen das Projekt in Ihrem Browser.

oleafly server sign-in gefolgt von der Adresse des Servers meldet die Befehlszeile mit einem Code an, den Sie in Ihrem Browser bestätigen. Die Befehlszeile ist auf dem Server ein eigenes Gerät, getrennt von der App.

  • oleafly server status und oleafly server projects zeigen Ihre Server und geteilte Projekte.
  • oleafly server share zeigt den Link eines Projekts und schaltet die Freigabe per Link und Kommentare ein oder aus.
  • oleafly server members listet die Personen eines Projekts auf und fügt sie hinzu, entfernt sie oder ändert sie. Nur die Inhaberin oder der Inhaber kann Freigabe und Mitglieder ändern.
  • oleafly server comments listet Kommentare auf, fügt welche hinzu, antwortet darauf und erledigt sie. Ein Kommentar, der sich nicht sofort senden lässt, wird aufbewahrt und beim nächsten Mal gesendet.

Ein Projekt zum ersten Mal zu teilen geschieht in der App. Siehe Live-Zusammenarbeit.

oleafly ask beantwortet eine Frage zum Projekt, ohne etwas zu ändern. oleafly agent run erledigt eine Aufgabe.

Terminalfenster
oleafly ask "Which sections cite Smith 2021?"
oleafly agent run --allow write "Fix the overfull boxes in chapter 3"
  • Der Agent kann das Projekt immer lesen. --allow fügt write, commands oder network hinzu, und er lehnt alles ab, was Sie nicht erlaubt haben. Er hält nie an, um eine Frage zu stellen.
  • Änderungen gehen zuerst in einen Prüfordner in .oleafly/agent-runs/. oleafly agent apply gefolgt von diesem Ordner schreibt sie in das Projekt, und --apply beim Lauf schreibt sie sofort.
  • Anbieter, Modell und Aufwand kommen aus den Einstellungen der App oder aus --provider, --model und --effort. Der Schlüssel kommt aus der eigenen Umgebungsvariable des Anbieters, etwa ANTHROPIC_API_KEY, oder aus dem verschlüsselten Speicher der App.
  • --json gibt ein Ergebnis aus, wenn der Lauf endet, und --events fügt für jedes Ereignis eine JSON-Zeile hinzu, während er arbeitet.

Forschungsaufgaben nach dem Beenden weiterlaufen lassen

Abschnitt betitelt „Forschungsaufgaben nach dem Beenden weiterlaufen lassen“

Markieren Sie eine Forschungsaufgabe mit Weiterlaufen, wenn Oleafly geschlossen ist. Beenden Sie Oleafly, übernimmt ein kleiner Hintergrundhelfer diese Aufgaben, und ihre Experimentläufe gehen weiter. Ein Schritt, der Ihre Freigabe braucht, hält die Aufgabe an und sendet eine Benachrichtigung. Öffnen Sie Oleafly wieder, übernimmt es die Aufgaben zurück und zeigt, was geschehen ist. Schalten Sie dies aus oder starten Sie den Helfer bei der Anmeldung unter Einstellungen → Forschung → Hintergrundaufgaben. oleafly daemon status zeigt, was der Helfer gerade tut.

Jeder Befehl erklärt seine Optionen mit --help. Die vollständige Referenz liegt im Repository: docs/cli.md (öffnet in einem neuen Tab).

BefehlWas er tut
oleafly openÖffnet einen Ordner in der App (oleafly . für den aktuellen)
oleafly initMacht den aktuellen Ordner zu einem Projekt
oleafly newErstellt ein Projekt, aus einer Vorlage, wenn Sie eine nennen
oleafly templatesListet Vorlagen auf und zeigt eine
oleafly buildBaut das Projekt
oleafly watchBaut bei jedem Speichern neu
oleafly cleanEntfernt die Build-Ausgabe
oleafly logZeigt das Protokoll des letzten Builds oder seine Probleme
oleafly doctorPrüft Engines, die App und Ihre Einrichtung
oleafly versionZeigt die Version und die verwendeten Engines
oleafly project infoZeigt die Einstellungen des Projekts
oleafly projects listListet die Projekte der App auf
oleafly configLiest und setzt Projekt- und App-Einstellungen
BefehlWas er tut
oleafly citeGibt BibTeX für eine DOI, arXiv-ID, ISBN oder PubMed-ID aus; --add fügt es dem Literaturverzeichnis hinzu
oleafly literatureDurchsucht OpenAlex, Semantic Scholar, Crossref, arXiv und PubMed
oleafly bib checkFindet Einträge, die zu keinem echten Datensatz passen
oleafly bib cleanKorrigiert Zitationsschlüssel und entfernt Duplikate; --apply schreibt die Änderungen
oleafly statsZählt Wörter, Überschriften, Abbildungen und Formeln
oleafly synctexOrdnet eine Quellzeile dem PDF zu und umgekehrt
oleafly exportExportiert das Dokument nach Word, HTML, Markdown, EPUB und mehr
oleafly convertWandelt eine Datei in ein anderes Format um
oleafly typstListet Typst-Versionen auf, installiert und entfernt sie
oleafly checkpointListet die Checkpoints der App auf, vergleicht und kopiert sie
BefehlWas er tut
oleafly contextErstellt die Karte des Projekts für eine Person oder einen Agenten
oleafly mcpFührt den MCP-Server aus; mcp config richtet einen Client ein
oleafly skillsListet die Skills auf und gibt aus, wo sie liegen
oleafly askBeantwortet eine Frage zum Projekt
oleafly agentFührt den Oleafly-Agenten für eine Aufgabe aus
oleafly daemonFührt den Helfer aus, der Aufgaben am Laufen hält, und steuert ihn
BefehlWas er tut
oleafly checkFührt die Preflight-Prüfungen aus
oleafly lintFührt die Prüfungen für LaTeX, BibTeX, Rechtschreibung und Grammatik aus
BefehlWas er tut
oleafly authMeldet bei Online-LaTeX-Diensten, Oleafly-Servern und Git-Hosts an
oleafly remoteImportiert, verknüpft und gleicht Online-Projekte ab
oleafly serverArbeitet mit Oleafly-Servern: Projekte, Freigabe, Mitglieder, Kommentare
BefehlWas er tut
oleafly completionsGibt Shell-Vervollständigungen für bash, zsh, fish, PowerShell oder elvish aus
oleafly manGibt die Handbuchseite aus
oleafly help exit-codesErklärt die Exit-Codes
OptionWas sie tut
-C gefolgt von einem PfadFührt den Befehl in einem anderen Projektordner aus
--jsonGibt ein JSON-Ergebnis aus
--eventsGibt den Fortschritt als JSON-Zeilen vor dem Ergebnis aus
--quietGibt nur das Ergebnis aus
--logZeigt das Compiler-Protokoll nicht (none), nur sein Ende (tail) oder ganz (full)
--no-inputStellt nie eine Frage
--colorSteuert die Farbe: auto, always oder never

Mit --json gibt jeder Befehl ein JSON-Objekt aus: schema_version, ok, command, die eigenen Felder des Befehls und warnings. Schlägt ein Befehl fehl, enthält error ein kind, einen stabilen code und eine message. Wenn sie helfen, enthält es außerdem einen hint, details und "retryable": true, falls ein neuer Versuch funktionieren kann. Prüfen Sie schema_version, bevor Sie sich auf ein Feld verlassen.

{
"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 fügt vor dem Ergebnis pro Fortschrittsereignis eine JSON-Zeile hinzu.

oleafly help exit-codes gibt dieselbe Tabelle aus.

CodeBedeutung
0Es hat funktioniert
1In Oleafly ist etwas schiefgegangen
2Der Befehl wurde falsch verwendet, oder er braucht --yes, um fortzufahren
3Das Projekt fehlt oder ist ungültig, oder ein Pfad zeigt aus ihm heraus
4Ein benötigtes Werkzeug oder die Oleafly-App ist nicht installiert
5Der Build ist fehlgeschlagen
6Sie müssen sich anmelden
7Das Netzwerk ist ausgefallen
8Etwas anderes hält das Projekt, oder ein Abgleich hat Konflikte
9Eine Prüfung hat Probleme gefunden
130Sie haben Strg+C gedrückt

Der Befehl stellt ohne Terminal nie eine Frage. --no-input schaltet Fragen ebenfalls aus, und das tut auch eine Variable CI; ein Befehl, der ein Ja braucht, schlägt dann mit Exit-Code 2 fehl und verlangt --yes. NO_COLOR oder --color never schaltet die Farbe aus. Pfade, die das Projekt verlassen würden, werden abgelehnt.

VariableVerwendung
OLEAFLY_DATA_DIRDer Datenordner von Oleafly, wenn er nicht ~/.oleafly ist
OLEAFLY_TECTONIC, OLEAFLY_LATEXMK, OLEAFLY_TYPST, OLEAFLY_PANDOCEin Compiler, der statt des von Oleafly gefundenen verwendet wird
OLEAFLY_APPDie Oleafly-App, die oleafly open startet
OLEAFLY_ONLINE_GIT_TOKENEin Git-Token für den Online-LaTeX-Dienst, das statt eines gespeicherten verwendet wird
OLEAFLY_CLIWird von Oleafly für Programme gesetzt, die es startet: der vollständige Pfad des Befehls
CIIst sie gesetzt, stellt der Befehl nie eine Frage
NO_COLORIst sie gesetzt, hat die Ausgabe keine Farbe
SymptomWas Sie versuchen können
oleafly wird nicht gefundenÖffnen Sie ein neues Terminal. Prüfen Sie dann mit Get-Command oleafly unter Windows oder command -v oleafly unter macOS und Linux und fügen Sie Ihrem Shell-Profil die Zeile hinzu, die die Einstellungen zeigen
oleafly doctor meldet eine fehlende EngineInstallieren Sie sie mit dem Befehl, den doctor ausgibt, oder öffnen Sie das Projekt einmal in der App
Ein MCP-Client kann den Server nicht startenFühren Sie den konfigurierten Befehl in einem Terminal aus, verwenden Sie den vollständigen Pfad aus oleafly mcp config und führen Sie oleafly doctor aus
Exit-Code 6Führen Sie oleafly auth status aus und melden Sie sich dann erneut an
Exit-Code 8 bei einem AbgleichFühren Sie den Abgleich erneut aus, mit --resolve für jede Datei, die er auflistet
Unter macOS zeigen die Einstellungen „Verschieben Sie Oleafly zuerst in den Ordner ‚Programme‘“Verschieben Sie die App, öffnen Sie sie aus „Programme“ und wählen Sie dann Installieren
Bildvorschau

KI-Antworten konnten nicht geladen werden

Versuchen Sie es erneut oder durchsuchen Sie die Dokumentation.