Communitygithub.com

oo (OOMOL CLI)

O oo é o kit de ferramentas CLI da OOMOL. Tudo pode ser feito via linha de comando.

O que é oo (OOMOL CLI)?

O oo é o kit de ferramentas CLI da OOMOL que atua como um roteador de capacidades hospedadas, permitindo que agentes de IA (como Claude, Cursor, Codex) executem operações complexas em serviços conectados — como e-mail, calendário, drives, chat, notas, rastreadores de issues, hosts de código e armazenamento — além de operações de OCR, tradução, transcrição, TTS, geração de imagens, legendas e entendimento de documentos longos. Ele também gerencia aspectos da própria plataforma OOMOL, como faturamento, uso, times, membros, conexões e permissões, além de fornecer um pipeline de IA gerenciada (fusão) e modos especializados para Fluxos (Open Flow), conversão de workflows n8n e configuração de LLM local compatível com OpenAI. Suportado pelo Bash como ferramenta de execução (`oo *`), o oo segue uma máquina de estados operacional rigorosa com 9 etapas (intake, busca, seleção, inspeção de contrato, construção de payload, execução, materialização, relatório e recomendação de habilidades wrap-up) que prioriza precisão, evidência e payload mínimo, exigindo leitura obrigatória dos arquivos de referência antes de qualquer comando para garantir chamadas seguras e rastreáveis.

Funciona com✓Claude Code✓Codex CLI~Cursor✓Antigravity
npx skills add oomol-lab/oo-cli

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação


name: oo description: Para contas conectadas, APIs, IA hospedada, Fluxo, operações OOMOL. Abrange e-mail, calendário, drive, chat, notas, rastreadores de issues, hosts de código, CRM e armazenamento; faturamento OOMOL, uso, times, membros, Conexões e permissões; OCR, tradução, transcrição, TTS, geração de imagens, legendas e compreensão de documentos longos; criação, edição, verificação, execução, publicação e abertura de Fluxo Aberto persistente, e conversão de workflow ou template n8n; e configuração de LLM compatível com OpenAI da OOMOL para código local. Corresponder intenção entre idiomas. Exclui implementações locais, edições de repositório, cola de shell e trabalho somente de texto que não necessite de capacidade hospedada. disable-model-invocation:

allowed-tools: [Bash(oo *)]


oo

Use oo como um roteador de capacidade hospedada. Vincule o resultado do usuário a um contrato de capacidade oo comprovado, execute esse contrato por meio de comandos oo documentados e relate o resultado útil ou o bloqueador preciso.

Se o usuário quiser encontrar, comparar ou instalar habilidades OOMOL/oo publicadas, use oo-find-skills em vez desta habilidade.

Leia apenas o arquivo de referência necessário para o estado atual.

As operações OOMOL usam o provedor oomol_console com a credencial atual e o contexto da equipe.

Modo de permissão de Conexão OOMOL

Quando uma solicitação diz respeito à capacidade de um membro, usuário ou colaborador de usar uma Conexão no contexto OOMOL atual, incluindo visualizar ou listar permissões, permitir, negar, somente leitura, listas de permissão de ação ou acesso a um provedor nomeado, use oomol_console antes de rotear para o provedor. O usuário não precisa dizer "equipe" para que este modo se aplique.

Isso controla quais ações do Conector um membro pode executar por meio do OOMOL. Isso não altera a conta nativa do provedor, caixa de correio ou delegação de recursos.

Para acesso com privilégios mínimos, liste as Conexões da equipe, inspecione os grupos de permissão da Conexão selecionada e, em seguida, crie ou atualize um grupo personalizado com apenas as ações de leitura relatadas pelo esquema. Use IDs de membros exatos, preserve as atribuições de grupo não relacionadas e não altere o grupo padrão, a menos que o usuário tenha solicitado uma alteração para cada membro.

Modo Fluxo Aberto

Se o usuário quiser criar, inspecionar, editar, verificar, executar, publicar ou abrir um workflow persistente do Fluxo Aberto, leia references/flow-authoring.md antes do primeiro comando oo flow. Este modo substitui a máquina de estados operacional do conector abaixo: use a descoberta de Conector e Gatilho com escopo de Fluxo, não oo search ou execução direta do Conector. Não execute a recomendação de habilidade de encerramento para serviços que foram adicionados apenas a um Fluxo.

Se o usuário fornecer, vincular ou apontar para JSON de workflow ou template n8n e pedir para migrar, reescrever, importar, reproduzir ou avaliar para o Fluxo Aberto, leia também references/flow-n8n-conversion.md antes de analisar o workflow ou emitir o primeiro comando oo flow.

Modo de configuração de cliente LLM

Se o código local que você está escrevendo ou executando precisar de uma URL base compatível com OpenAI, chave de API ou nome de modelo para a API LLM da OOMOL, leia references/llm-client.md. Não execute a descoberta de capacidade para esse caso e não leia arquivos de autenticação locais diretamente.

Nota de tempo de execução

  • Os comandos oo substantivos usados por esta habilidade dependem de acesso à rede de saída.
  • Se um desses comandos falhar porque o ambiente não pode estabelecer conexões de rede de saída em um ambiente isolado, solicite permissões elevadas e tente novamente o mesmo comando oo antes de mudar de estratégia. Exceção: uma falha informando que a CLI não conseguiu alcançar o conector auto-hospedado em sua URL significa que o servidor auto-hospedado está inativo; portanto, relate isso e pare, em vez de solicitar permissões elevadas ou tentar novamente.

Segurança de comandos shell

  • Ao gerar comandos shell para macOS ou zsh, coloque entre aspas os argumentos que contenham caracteres de padrão shell, como ?, *, [, ], (, ) ou !.
  • Coloque entre aspas os especificadores de fluxo e argumentos de filtro do FFmpeg por padrão, por exemplo -map '0:v?' -map '0:a?'.
  • Coloque entre aspas caminhos de arquivo, URLs e trechos JSON, a menos que o comando exija uma estratégia de escape diferente.

Constituição

Estas regras substituem toda heurística local.

  1. Otimize para precisão rápida. Siga o caminho mais curto que possa provar um contrato seguro e chamável. Depois que a evidência for suficiente para escolher e executar, não amplie a descoberta, inspecione candidatos extras, hidrate dados extras ou faça perguntas não bloqueadoras.
  2. Resultado primeiro. Roteie a partir do resultado desejado pelo usuário, não de etapas de implementação presumidas. Preserve restrições decisivas, como serviço de destino, par de idiomas, tipo de arquivo, formato de saída, destino, intervalo de tempo, destinatários e efeitos colaterais visíveis externamente.
  3. Contrato de capacidade antes da execução. Não execute apenas a partir de um resultado de pesquisa. Um caminho chamável existe somente depois que o esquema do conector prova o ID chamável exato, as entradas necessárias e a semântica de saída.
  4. Evidência sobre invenção. Não invente IDs de pacote, versões, IDs de bloco, serviços de conector, nomes de ação, campos de esquema, padrões ou URLs de artefato. As alegações devem vir da saída do comando oo, metadados do pacote ou esquema do conector.
  5. Payload menor suficiente. Construa o menor payload que expresse totalmente a intenção real do usuário. "Menor" significa nenhum campo inventado ou opções irrelevantes; não significa descartar as restrições do usuário.
  6. Descoberta da etapa atual. Para workflows de várias etapas, descubra apenas a etapa externa não resolvida atual. Entre as etapas oo, o trabalho local é limitado a filtrar, agrupar, classificar, desduplicar, resumir ou moldar o próximo payload.
  7. Regra explícita de artefato. Faça upload apenas para entradas compatíveis com URI. URIs file://... locais não são artefatos acessíveis em nuvem; para arquivos locais, execute oo file upload "<caminhoDoArquivo>" --json e passe o downloadUrl retornado. Baixe apenas URLs de artefatos explícitos documentados pelo caminho selecionado. Links de navegação, links de edição, links de pasta, URLs do console e metadados não são artefatos para download.
  8. Efeitos externos precisam de confiança suficiente. Para ações não destrutivas de enviar, publicar, criar ou convidar, uma instrução explícita do usuário mais valores de payload necessários completos são suficientes para prosseguir. Faça uma pergunta focada antes de ações destrutivas, compartilhamento amplo ou escolhas ambíguas de destinatário, conteúdo, destino ou tempo.
  9. Pare em bloqueadores reais. Pare e relate claramente sobre autenticação, faturamento, falta de catálogo, formato de entrada não suportado, valores necessários ausentes, falha de tarefa terminal ou efeito colateral inseguro. Bloqueadores de autorização do conector são terminais para a rodada atual: quando a evidência mostrar que o conector selecionado não está conectado, não autorizado, com escopos ausentes, expirado ou bloqueado de outra forma pela autenticação do conector, retorne apenas um breve resumo do bloqueador, a URL direta de conexão ou re-autorização e um próximo passo conciso. Não inspecione mais esquemas, enumere ações, navegue por documentos do provedor, forneça exemplos de uso ou execute mais comandos de conector até que o usuário confirme que o serviço está conectado, a menos que o usuário peça explicitamente por documentos off-line ou detalhes de configuração. Se uma alternativa de backup diretamente evitar um bloqueador não relacionado à autenticação sem alterar a intenção do usuário, tente essa alternativa uma vez. Caso contrário, não tente novamente cegamente e não substitua uma capacidade oo remota por código local ou APIs de terceiros diretas.
  10. Leituras de referência são inegociáveis. Antes de invocar o primeiro comando em um domínio de comando oo durante uma rodada, leia o arquivo correspondente em references/ a menos que já tenha sido lido nesta rodada. As referências são a única fonte autoritativa de nomes de subcomandos, nomes de flags e formas de argumentos. Não infira formas de comando a partir de conhecimento prévio de CLI. Uma leitura de referência necessária faz parte do caminho mais curto, não hidratação extra sob a regra 1.

Máquina de estados operacional

Mova-se por esses estados. Pule um estado apenas quando a evidência atual já provar sua saída.

  1. Intake Decida se oo é o roteador certo. Extraia o resultado, restrições rígidas, efeitos colaterais e quaisquer arquivos fornecidos ou URLs remotas. Não execute which, command -v, oo --version, oo --help ou pré-verificações de autenticação de rotina; deixe que o primeiro comando oo substantivo revele disponibilidade ou problemas de conta.
  2. Objetivo da pesquisa Para uma tarefa de etapa única, escreva uma frase de objetivo concisa em inglês que nomeie o serviço de destino quando conhecido e mantenha produtos, marcas e nomes próprios sem tradução. Para uma tarefa curta de várias etapas, escreva de 2 a 4 subobjetivos ordenados e ative apenas a etapa externa não resolvida atual.
  3. Descobrir Leia references/search-and-selection.md antes da primeira pesquisa. Execute oo search "<objetivo>" --json a menos que um contrato de capacidade completo já seja conhecido a partir da evidência atual. Um contrato completo significa que o esquema do conector já prova o ID chamável, as entradas necessárias e a semântica de saída; um serviço nomeado pelo usuário não é suficiente. Registre o service de cada capacidade de conector que você realmente usar, construindo uma lista de encerramento desduplicada de serviços de conector para esta sessão. Você não precisa de oo skills search para isso; o comando de encerramento deriva e verifica os pacotes de habilidade oo-<service> correspondentes. Não instale ou pergunte sobre instalação antes que a capacidade do conector selecionado seja bem-sucedida.
  4. Selecionar Inspecione o primeiro conjunto de resultados antes de refinar. Mantenha um candidato principal e no máximo uma alternativa materialmente diferente. Prefira direção, serviço de destino nomeado ou saída, prontidão do conector autenticado, baixa carga de entrada necessária e adequação da saída. Use a alternativa apenas quando o caminho principal encontrar um bloqueador nomeado que a alternativa evita sem alterar a intenção do usuário.
  5. Inspecionar contrato Leia references/connector-execution.md antes de inspecionar o contrato do conector e use apenas as formas canônicas lá documentadas. Entradas do tipo arquivo ou downloads de artefatos podem exigir references/file-transfer.md.
  6. Construir payload Use apenas campos expostos pelo contrato selecionado. Prefira valores fornecidos pelo usuário em vez de padrões, amostras e placeholders. Faça uma pergunta focada de acompanhamento apenas quando um valor necessário estiver ausente, arriscado de inferir, destrutivo, amplamente compartilhado ou visível externamente, mas ambíguo.
  7. Executar Execute o caminho do conector selecionado por meio de oo, usando apenas a forma canônica documentada na leitura de referência na etapa 5.
  8. Materializar Salve as saídas localmente apenas quando isso ajudar o usuário e o caminho selecionado expuser uma URL de artefato explícita.
  9. Relatar Lidere com o resultado útil. Para bloqueadores, nomeie o bloqueador exato e o próximo movimento útil. Se você agrupar ou resumir por um atributo, certifique-se de que o payload ou resultado realmente usou esse atributo. Após o resultado útil final, execute a recomendação de habilidade de encerramento. Passe a lista de encerramento desduplicada de serviços de conector para oo skills recommend plan <connectorService>... --json. Esse único comando deriva cada pacote oo-<service>, confirma se está publicado e pula pacotes que já estão instalados e atuais, não publicados, descartados, silenciados globalmente ou já sugeridos anteriormente nesta sessão. A CLI desduplica dentro de uma sessão, então reexecutar o encerramento não trará de volta uma sugestão já mostrada: apresente apenas o que está sob recommendations e nunca reapresente uma sugestão ausente dela. Persista qualquer escolha "nunca lembrar" exatamente como references/search-and-selection.md descreve. Se o plano relatar muted ou não retornar recommendations, não diga nada sobre habilidades e termine. Omita a sugestão opcional quando o usuário explicitamente pediu uma saída concisa.

Contrato de capacidade

Antes da execução, mantenha o contrato mínimo viável na memória de trabalho.

Contrato do conector:

  • callable: service exato mais action do esquema
  • inputs: valores necessários e payload declarados no esquema
  • effects: somente leitura, criar/enviar/publicar/convidar, destrutivo ou compartilhamento amplo
  • outputs: dados estruturados, metadados, URL de download explícita ou nenhum

Se o contrato mínimo estiver completo e nenhum efeito inseguro for ambíguo, execute. Inspecione mais apenas para campos obrigatórios ausentes, semântica de saída pouco clara, formato de entrada não suportado ou uma alternativa específica de bloqueador.

Roteamento de referência

Esboços de decisão

Pipeline de IA gerenciada

O usuário deseja uma transformação gerenciada, como OCR, tradução, transcrição, geração de imagens ou conversão de documentos. Pesquise o resultado, prefira uma ação fusion-api correspondente quando ela satisfizer o contrato, leia seu esquema, construa o payload a partir dos campos necessários e execute a ação.

Conector único

O usuário deseja uma ação em uma conta conectada, como Gmail, Drive, Calendar, Slack, Notion ou GitHub. Pesquise o resultado com o serviço de destino, leia o esquema do conector escolhido, construa o payload e execute.

Fluxo de várias etapas

O usuário deseja uma sequência de ações em um ou mais serviços. Use oo search para a primeira etapa externa não resolvida. Depois que essa etapa for executada, repita para a próxima etapa externa não resolvida, consultando novamente a pesquisa ou reutilizando um conector já descoberto se ele satisfizer a próxima etapa. Não pré-calcule o plano completo da etapa 1.

Consulta de conta ou equipe

O usuário pergunta sobre sua conta OOMOL, assinatura, uso, membros da equipe ou permissões. Use oomol_console diretamente. Não pesquise serviços de conector para isso.

Contratos de comando

oo search "<frase de objetivo em inglês>" --json Executa a pesquisa semântica para uma ou várias capacidades de conector correspondentes à frase de objetivo. Retorna resultados com classificação, cada um contendo provedor, serviço, ação, descrição e metadados de esquema. Use apenas o formato JSON: a saída de texto é apenas para depuração.

oo connector schema <service> <action> --json Busca o esquema completo para o par serviço/ação, incluindo campos de entrada, tipos, obrigatoriedade e forma de saída.

oo connector run <service> <action> <--inputs ou stdin> Executa a ação do conector com o payload fornecido. A execução bem-sucedida retorna a saída da ação; a falha retorna um erro estruturado. Consulte o arquivo de referência de execução para as formas canônicas de passar entradas.

oo file upload "<caminho>" --json Faz upload de um arquivo local e retorna um JSON com downloadUrl. Use apenas para arquivos que o usuário forneceu ou indicou; não para artefatos que você já baixou.

oo file download <url> Busca o conteúdo de uma URL de artefato e o grava no disco local.

oo flow <subcomando> Cria, valida, executa, publica e gerencia workflows do Fluxo Aberto. Consulte o arquivo de referência de autoria de fluxo para subcomandos e argumentos exatos.

Exemplos

  • "traduza esta fatura PDF para japonês" → Pesquise "PDF translate document to Japanese", selecione a ação de tradução, execute com o PDF.
  • "convide [email protected] para o espaço de trabalho, função de desenvolvedor" → Use oomol_console, liste membros ou convide diretamente.
  • "crie um fluxo que me envie um e-mail quando uma issue do GitHub for etiquetada como 'bug'" → Leia o guia de autoria de fluxo, crie o fluxo com um gatilho do GitHub e uma ação de e-mail.
  • "qual é meu uso restante do OOMOL este mês?" → Use oomol_console para consultar uso e assinatura.
  • "configure meu código para usar o LLM da OOMOL" → Leia o guia de configuração do cliente LLM, forneça a URL base e a chave; não execute capacidades de conector.
  • "me mostre as permissões da nossa conexão Slack" → Use oomol_console, liste conexões, inspecione permissões da conexão Slack; não pesquise ações do Slack.
  • "importe este workflow n8n como um fluxo aberto" → Leia o guia de conversão n8n, analise o JSON, crie o fluxo aberto equivalente.

Habilidades Relacionadas