Ferramenta de linha de comando
Instale o comando oleafly no Windows, no macOS ou no Linux, compile e verifique projetos a partir de um terminal ou da CI, sincronize com um serviço de LaTeX online e conecte agentes de código por meio do servidor MCP e da habilidade dele.
O Oleafly traz o oleafly, uma ferramenta de linha de comando que trabalha nos mesmos projetos que o aplicativo. Compile ou verifique um artigo a partir de um terminal, de um script ou da CI. Dê a um agente de código um caminho confiável para o seu projeto. Sincronize com um serviço de LaTeX online ou com um servidor Oleafly, ou rode o agente do Oleafly sem abrir o aplicativo.
Ele vem dentro do aplicativo em todas as plataformas. Esta página cobre os comandos do Oleafly 0.4.8 e posteriores. As versões anteriores tinham menos, então fixe a sua versão do Oleafly nos scripts que dependem disso.
Instalar
Seção intitulada “Instalar”| Sistema | Onde o aplicativo o guarda | Coloque o oleafly no seu PATH |
|---|---|---|
| Windows | oleafly-cli.exe ao lado do aplicativo, em %LOCALAPPDATA%\Oleafly para o programa de instalação ou em C:\Program Files\Oleafly para o pacote MSI | Instalar na linha Comando de terminal em Configurações → Geral o copia para %LOCALAPPDATA%\Oleafly\bin\oleafly.exe e adiciona essa pasta ao seu PATH |
| macOS | Oleafly.app/Contents/MacOS/oleafly-cli | Instalar na linha Comando de terminal cria um link do oleafly em /usr/local/bin quando você pode gravar lá e, se não, em ~/.local/bin |
| Pacotes do Linux (.deb, .rpm) | /usr/bin/oleafly-cli | Nada a fazer: o pacote instala /usr/bin/oleafly |
| AppImage do Linux | Dentro do AppImage | Instalar o copia para ~/.local/bin/oleafly |
Os programas que o Oleafly inicia, como o terminal dele e os agentes de CLI, sempre encontram o oleafly no PATH, mesmo antes de você instalá-lo. A variável OLEAFLY_CLI guarda o caminho completo dele.
Windows
Seção intitulada “Windows”- Abra Configurações → Geral e escolha Instalar na linha Comando de terminal.
- Abra uma nova janela do PowerShell ou do Prompt de Comando. As janelas que já estavam abertas mantêm o PATH antigo.
- Confira se funciona:
Get-Command oleaflyoleafly versionRemover, na mesma linha, apaga a cópia e tira a pasta do seu PATH de novo. Quando o Oleafly se atualiza, ele renova a cópia na próxima vez que inicia.
Mova o Oleafly para a pasta Aplicativos primeiro. Uma cópia que roda a partir da imagem de disco mostra “Primeiro mova o Oleafly para a pasta Aplicativos” no lugar de Instalar.
O comando é um link para o aplicativo, então atualizar o Oleafly atualiza o comando também. Se a pasta não está no seu PATH, a configuração mostra a linha a adicionar ao perfil do seu shell. Confira com command -v oleafly.
Os pacotes .deb e .rpm colocam o oleafly no seu PATH quando você os instala. oleafly sem nada depois dele abre o aplicativo.
O AppImage precisa de uma cópia, porque os arquivos dentro de um AppImage somem quando ele encerra. Depois que você troca o AppImage por um mais novo, a linha oferece Atualizar. Se ~/.local/bin não está no seu PATH, a configuração mostra a linha a adicionar.
Confira se funciona
Seção intitulada “Confira se funciona”oleafly version imprime a versão do aplicativo e os motores que o comando usaria. oleafly doctor confere os motores, o aplicativo, o Git, o comando de terminal e os seus clientes MCP, e imprime uma correção para tudo que estiver faltando. Funciona também fora de um projeto.
Compile um projeto
Seção intitulada “Compile um projeto”oleafly . abre a pasta atual no aplicativo. Todos os outros comandos trabalham na pasta em que você está; -C seguido de um caminho os aponta para outro lugar.
cd ~/papers/thesisoleafly init --engine typstoleafly buildoleafly log --diagnosticsoleafly -C ~/papers/review --json buildoleafly inittorna a pasta atual um projeto.--engineaceitatectonic,latexmk,typstoumarkdown.oleafly newseguido de uma pasta, de--templatee do id de um modelo cria um projeto a partir de um modelo.oleafly templates list --alllista os modelos.oleafly buildusa o motor e as configurações do projeto, do mesmo jeito que o aplicativo: o Tectonic, o Typst e o Pandoc que acompanham o Oleafly, ou o LaTeX que você instalou.--maincompila outro documento do projeto,--compilerescolhe o compilador LaTeX para projetos latexmk,-ocopia o PDF para outro lugar e--timeoutdefine o limite em segundos.- Uma pasta que você abriu no próprio local, no aplicativo, compila com o motor e o documento principal que você escolheu lá, na pasta de compilação do próprio aplicativo.
- O aplicativo e o comando nunca compilam o mesmo projeto ao mesmo tempo: o segundo espera o primeiro. Uma compilação que falha mantém o último PDF bom.
oleafly watchrecompila a cada vez que você salva.oleafly log --diagnosticslista erros e avisos com arquivo e linha, eoleafly cleanremove a saída da compilação.
Para os detalhes do Typst, veja Projetos Typst.
Use a partir de um agente de código
Seção intitulada “Use a partir de um agente de código”Os agentes de código trabalham melhor com três coisas que o comando dá a eles: oleafly context para o mapa do projeto, --json para resultados que eles conseguem ler e códigos de saída que dizem o que deu errado. Há três maneiras de conectar um agente.
A habilidade oleafly-cli
Seção intitulada “A habilidade oleafly-cli”O Oleafly traz uma habilidade chamada oleafly-cli. Ela ensina a um agente os comandos, a saída JSON, os códigos de saída e o ciclo que funciona melhor: ler o contexto, editar, compilar, ler os diagnósticos e corrigir o primeiro erro.
No terminal do Oleafly e nos agentes de CLI que ele inicia, escolha a habilidade como qualquer outra. Para um agente que você executa por conta própria, ligue Configurações → Assistente de IA → Habilidades → Compartilhar habilidades com outros agentes deste computador. O Oleafly então vincula as suas habilidades, a oleafly-cli inclusa, às pastas que outros agentes de código leem, como ~/.claude/skills, ~/.codex/skills e ~/.agents/skills. oleafly skills path imprime onde as habilidades estão, para agentes que leem outra pasta.
Conecte um agente por MCP
Seção intitulada “Conecte um agente por MCP”oleafly mcp é um servidor MCP que conversa por entrada e saída padrão. Quando o aplicativo está com o seu projeto aberto, ele repassa as chamadas ao servidor MCP do próprio aplicativo, então o agente recebe todas as ferramentas do aplicativo e os seus pedidos de aprovação. Caso contrário, ele funciona sozinho, com ferramentas de leitura (status do projeto, o mapa do projeto, arquivos, busca, logs, o relatório do doctor, consulta de citações) e compile. Não há URL nem token para copiar e nenhum Node.js para instalar.
A configuração mais rápida é oleafly mcp config --client seguido de claude-code, claude-desktop, codex, cursor ou gemini. Ele imprime a entrada para esse cliente; acrescente --write para que ela seja adicionada para você, com um backup do arquivo do cliente. Reinicie ou reconecte o cliente depois. Dentro de um projeto, ele grava nas configurações do projeto; fora dele, grava nas suas configurações de usuário, com o caminho completo do comando, porque os aplicativos que você inicia pela área de trabalho podem não enxergar o seu PATH.
Claude Code
Seção intitulada “Claude Code”claude mcp add --scope user oleafly -- oleafly mcpDentro de um projeto, oleafly mcp config --client claude-code --write adiciona o servidor ao .mcp.json do projeto no lugar.
Claude Desktop
Seção intitulada “Claude Desktop”O Claude Desktop inicia servidores sem uma pasta de projeto, então a entrada dele sempre funciona por meio do aplicativo: mantenha o Oleafly aberto com o seu projeto. Use o caminho completo do oleafly. No Windows, dobre cada barra invertida do caminho.
{ "mcpServers": { "oleafly": { "command": "/usr/local/bin/oleafly", "args": ["mcp", "--bridge", "always"] } }}O arquivo fica em ~/Library/Application Support/Claude no macOS e em %APPDATA%\Claude no Windows.
[mcp_servers.oleafly]command = "oleafly"args = ["mcp"]tool_timeout_sec = 300Use ~/.cursor/mcp.json para todos os projetos, ou .cursor/mcp.json dentro de um projeto.
{ "mcpServers": { "oleafly": { "command": "oleafly", "args": ["mcp"] } }}Gemini CLI
Seção intitulada “Gemini CLI”{ "mcpServers": { "oleafly": { "command": "oleafly", "args": ["mcp"], "timeout": 300000 } }}Dê o projeto inteiro a um agente
Seção intitulada “Dê o projeto inteiro a um agente”oleafly context mapeia o projeto: os arquivos, o esboço, os rótulos, as citações, os arquivos ausentes, as referências não resolvidas e os problemas da última compilação. --format md dá um texto para colar em um prompt; --format json dá o mesmo mapa para um programa.
Verifique um artigo antes de submeter
Seção intitulada “Verifique um artigo antes de submeter”oleafly check roda as verificações de pré-submissão no projeto, com os mesmos resultados do painel de Pré-verificação: referências, citações, rótulos, arquivos ausentes, campos da bibliografia, figuras e anonimato para revisão cega. As verificações que precisam do PDF compilado usam a última compilação.
oleafly lint roda as verificações de LaTeX e BibTeX e, nos builds que os incluem, ortografia e gramática. --fix aplica as correções que são seguras de aplicar.
Os dois aceitam --format human, json ou sarif, e --exit-code faz com que saiam com 9 quando encontram problemas. O SARIF funciona com serviços de varredura de código, como o do GitHub: grave o relatório com oleafly check --format sarif -o preflight.sarif, envie-o com a ação upload-sarif e cada achado aparece na própria linha no pull request.
Sincronize com um serviço de LaTeX online
Seção intitulada “Sincronize com um serviço de LaTeX online”oleafly remote baixa projetos da sua conta de um serviço de LaTeX online e mantém uma pasta sincronizada com um deles, com a mesma mesclagem que o aplicativo usa.
Faça login
Seção intitulada “Faça login”Os logins ficam no armazenamento criptografado do aplicativo, então um login feito no aplicativo vale na linha de comando e vice-versa.
oleafly auth login online --with-tokensalva um token do Git das configurações da conta do serviço. Vincular e sincronizar exigem um.oleafly auth login online --from-browser firefoxcopia o seu login de um navegador deste computador, para listar e baixar projetos. O Firefox funciona em todos os sistemas; o Chrome, o Edge e o Brave funcionam no macOS.--cookie-stdinlê um cookie de sessão no lugar.oleafly auth login git --host https://gitlab.comsalva um token para um host Git.oleafly auth statuslista todos os logins e de onde vieram, sem mostrar nenhum segredo.oleafly auth logoutremove um login.
Importe e sincronize projetos
Seção intitulada “Importe e sincronize projetos”oleafly remote listoleafly remote import 64a1f0c2e5b7 --into ~/paperscd ~/papers/thesisoleafly remote linkoleafly remote syncoleafly remote importbaixa projetos para pastas novas. Funciona com qualquer conta.oleafly remote linkconecta uma pasta ao projeto online dela pela integração com Git do serviço, que exige um token do Git.oleafly remote syncmescla as mudanças online na pasta e envia as suas.--dry-runmostra o que mudaria e--no-pushmescla sem enviar.- Quando um arquivo mudou nos dois lados, a sincronização não grava nada e sai com 8. Rode de novo com
--resolvee o caminho do arquivo seguido de=localou=remotepara cada arquivo. oleafly remote diffmostra o que difere; com--exit-code, sai com 9 quando há arquivos diferentes e com 8 quando há conflito.--latexdiff --pdfgera um PDF marcado com as suas alterações, usando o latexdiff da sua distribuição TeX.oleafly remote status,oleafly remote unlinkeoleafly remote openmostram o vínculo, o removem e abrem o projeto no seu navegador.
Trabalhe com um servidor Oleafly
Seção intitulada “Trabalhe com um servidor Oleafly”oleafly server sign-in seguido do endereço do servidor conecta a linha de comando com um código que você aprova no navegador. A linha de comando é um dispositivo próprio no servidor, separado do aplicativo.
oleafly server statuseoleafly server projectsmostram os seus servidores e os projetos compartilhados.oleafly server sharemostra o link de um projeto e liga ou desliga o compartilhamento por link e os comentários.oleafly server memberslista as pessoas de um projeto e as adiciona, remove ou altera. Só o dono pode mudar o compartilhamento e os membros.oleafly server commentslista, adiciona, responde e resolve comentários. Um comentário que não pode ser enviado na hora é guardado e enviado da próxima vez.
Compartilhar um projeto pela primeira vez acontece no aplicativo. Veja Colaboração ao vivo.
Execute o agente do Oleafly em um terminal
Seção intitulada “Execute o agente do Oleafly em um terminal”oleafly ask responde a uma pergunta sobre o projeto sem alterar nada. oleafly agent run executa uma tarefa.
oleafly ask "Which sections cite Smith 2021?"oleafly agent run --allow write "Fix the overfull boxes in chapter 3"- O agente sempre pode ler o projeto.
--allowacrescentawrite,commandsounetwork, e ele recusa tudo o que você não permitiu. Ele nunca para para fazer uma pergunta. - As alterações vão primeiro para uma pasta de revisão em
.oleafly/agent-runs/.oleafly agent applyseguido dessa pasta as grava no projeto, e--applyna execução as grava de imediato. - O provedor, o modelo e o esforço vêm das configurações do aplicativo, ou de
--provider,--modele--effort. A chave vem da variável de ambiente do próprio provedor, comoANTHROPIC_API_KEY, ou do armazenamento criptografado do aplicativo. --jsonimprime um resultado quando a execução termina, e--eventsacrescenta uma linha JSON para cada evento enquanto ele trabalha.
Mantenha as tarefas de pesquisa rodando depois de sair
Seção intitulada “Mantenha as tarefas de pesquisa rodando depois de sair”Marque uma tarefa de pesquisa com Continuar rodando com o Oleafly fechado. Quando você sai, um pequeno processo auxiliar em segundo plano assume essas tarefas e as execuções dos experimentos continuam. Uma etapa que precisa da sua aprovação pausa a tarefa e envia uma notificação. Quando você abre o Oleafly de novo, ele retoma as tarefas e mostra o que aconteceu. Desligue isto, ou inicie o processo auxiliar quando você entrar na sessão, em Configurações → Pesquisa → Tarefas em segundo plano. oleafly daemon status mostra o que o processo auxiliar está fazendo.
Referência de comandos
Seção intitulada “Referência de comandos”Cada comando explica as suas opções com --help. A referência completa está no repositório: docs/cli.md (abre em uma nova guia).
Projetos e compilações
Seção intitulada “Projetos e compilações”| Comando | O que faz |
|---|---|
oleafly open | Abre uma pasta no aplicativo (oleafly . para a atual) |
oleafly init | Torna a pasta atual um projeto |
oleafly new | Cria um projeto, a partir de um modelo se você nomear um |
oleafly templates | Lista os modelos e mostra um |
oleafly build | Compila o projeto |
oleafly watch | Recompila a cada salvamento |
oleafly clean | Remove a saída da compilação |
oleafly log | Mostra o log da última compilação ou os problemas dela |
oleafly doctor | Confere os motores, o aplicativo e a sua configuração |
oleafly version | Mostra a versão e os motores em uso |
oleafly project info | Mostra as configurações do projeto |
oleafly projects list | Lista os projetos do aplicativo |
oleafly config | Lê e define configurações do projeto e do aplicativo |
Escrita e referências
Seção intitulada “Escrita e referências”| Comando | O que faz |
|---|---|
oleafly cite | Imprime BibTeX para um DOI, um id do arXiv, um ISBN ou um id do PubMed; --add o adiciona à bibliografia |
oleafly literature | Busca no OpenAlex, no Semantic Scholar, no Crossref, no arXiv e no PubMed |
oleafly bib check | Encontra entradas que não correspondem a nenhum registro real |
oleafly bib clean | Corrige chaves de citação e remove duplicatas; --apply grava as alterações |
oleafly stats | Conta palavras, títulos, figuras e equações |
oleafly synctex | Mapeia uma linha do código-fonte para o PDF e de volta |
oleafly export | Exporta o documento para Word, HTML, Markdown, EPUB e mais |
oleafly convert | Converte um arquivo para outro formato |
oleafly typst | Lista, instala e remove versões do Typst |
oleafly checkpoint | Lista, compara e copia os pontos de verificação do aplicativo |
Agentes e automação
Seção intitulada “Agentes e automação”| Comando | O que faz |
|---|---|
oleafly context | Mapeia o projeto para uma pessoa ou um agente |
oleafly mcp | Roda o servidor MCP; mcp config configura um cliente |
oleafly skills | Lista as habilidades e imprime onde elas estão |
oleafly ask | Responde a uma pergunta sobre o projeto |
oleafly agent | Roda o agente do Oleafly em uma tarefa |
oleafly daemon | Roda e controla o processo auxiliar que mantém as tarefas em andamento |
Verificações
Seção intitulada “Verificações”| Comando | O que faz |
|---|---|
oleafly check | Roda as verificações da Pré-verificação |
oleafly lint | Roda as verificações de LaTeX, BibTeX, ortografia e gramática |
Contas e sincronização
Seção intitulada “Contas e sincronização”| Comando | O que faz |
|---|---|
oleafly auth | Faz login em serviços de LaTeX online, servidores Oleafly e hosts Git |
oleafly remote | Importa, vincula e sincroniza projetos online |
oleafly server | Trabalha com servidores Oleafly: projetos, compartilhamento, membros, comentários |
Shell e ajuda
Seção intitulada “Shell e ajuda”| Comando | O que faz |
|---|---|
oleafly completions | Imprime os autocompletares do shell para bash, zsh, fish, PowerShell ou elvish |
oleafly man | Imprime a página de manual |
oleafly help exit-codes | Explica os códigos de saída |
Opções de todos os comandos
Seção intitulada “Opções de todos os comandos”| Opção | O que faz |
|---|---|
-C seguido de um caminho | Roda o comando em outra pasta de projeto |
--json | Imprime um resultado JSON |
--events | Imprime o progresso como linhas JSON antes do resultado |
--quiet | Imprime só o resultado |
--log | Mostra o log do compilador: none, o tail ou o full |
--no-input | Nunca faz uma pergunta |
--color | Usa cor auto, always ou never |
Saída para scripts
Seção intitulada “Saída para scripts”Saída JSON
Seção intitulada “Saída JSON”Com --json, cada comando imprime um objeto JSON: schema_version, ok, command, os campos do próprio comando e warnings. Quando um comando falha, error traz um kind, um code estável e uma message. Quando ajudam, ele traz também um hint, details e "retryable": true se tentar de novo puder funcionar. Confira schema_version antes de depender de um campo.
{ "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 acrescenta uma linha JSON por evento de progresso antes do resultado.
Códigos de saída
Seção intitulada “Códigos de saída”oleafly help exit-codes imprime a mesma tabela.
| Código | Significado |
|---|---|
| 0 | Funcionou |
| 1 | Algo deu errado dentro do Oleafly |
| 2 | O comando foi usado de forma errada, ou precisa de --yes para prosseguir |
| 3 | O projeto está ausente ou é inválido, ou um caminho aponta para fora dele |
| 4 | Uma ferramenta ou o aplicativo Oleafly de que ele precisa não está instalado |
| 5 | A compilação falhou |
| 6 | Você precisa fazer login |
| 7 | A rede falhou |
| 8 | Outra coisa está usando o projeto, ou uma sincronização tem conflitos |
| 9 | Uma verificação encontrou problemas |
| 130 | Você pressionou Ctrl+C |
Perguntas, cor e logs
Seção intitulada “Perguntas, cor e logs”O comando nunca faz uma pergunta sem um terminal. --no-input também desliga as perguntas, e uma variável CI também; um comando que precisa de um sim então falha com o código de saída 2 e pede --yes. NO_COLOR ou --color never desliga a cor. Caminhos que sairiam do projeto são recusados.
Variáveis de ambiente
Seção intitulada “Variáveis de ambiente”| Variável | Uso |
|---|---|
OLEAFLY_DATA_DIR | A pasta de dados do Oleafly, quando não é ~/.oleafly |
OLEAFLY_TECTONIC, OLEAFLY_LATEXMK, OLEAFLY_TYPST, OLEAFLY_PANDOC | Um compilador a usar no lugar do que o Oleafly encontra |
OLEAFLY_APP | O aplicativo Oleafly que oleafly open inicia |
OLEAFLY_ONLINE_GIT_TOKEN | Um token do Git para o serviço de LaTeX online, usado no lugar de um salvo |
OLEAFLY_CLI | Definida pelo Oleafly para os programas que ele inicia: o caminho completo do comando |
CI | Quando definida, o comando nunca faz uma pergunta |
NO_COLOR | Quando definida, a saída não tem cor |
Solução de problemas
Seção intitulada “Solução de problemas”| O que você vê | O que tentar |
|---|---|
oleafly não é encontrado | Abra um novo terminal. Depois confira com Get-Command oleafly no Windows ou command -v oleafly no macOS e no Linux, e adicione ao perfil do seu shell a linha que as Configurações mostram |
oleafly doctor informa um motor ausente | Instale-o com o comando que o doctor imprime, ou abra o projeto no aplicativo uma vez |
| Um cliente MCP não consegue iniciar o servidor | Execute o comando configurado em um terminal, use o caminho completo de oleafly mcp config e rode oleafly doctor |
| Código de saída 6 | Rode oleafly auth status e faça login de novo |
| Código de saída 8 durante uma sincronização | Rode a sincronização de novo com --resolve para cada arquivo que ela lista |
| No macOS, as Configurações dizem “Primeiro mova o Oleafly para a pasta Aplicativos” | Mova o aplicativo, abra-o a partir de Aplicativos e depois escolha Instalar |