Ir para o conteúdo

Executar nos Modos GUI, Headless e MCP

O Koharu pode ser executado como um app desktop normal, como um servidor local headless com Web UI, ou como um servidor MCP para agentes de IA. Esses não são backends separados. Todos ficam em cima do mesmo runtime local e do mesmo servidor HTTP.

O que continua igual entre os modos

Não importa como você inicia o Koharu, o modelo de runtime é o mesmo:

  • o servidor faz bind em 127.0.0.1
  • a UI e a API são servidas pelo mesmo processo local
  • o pipeline de páginas, o carregamento de modelos e as exportações usam os mesmos caminhos de código internos

Por isso a edição no desktop, a automação headless e a ferramentaria MCP ficam sempre alinhadas.

Resumo dos modos

Modo Janela desktop Servidor local Uso típico
Desktop sim sim edição interativa normal
Headless não sim Web UI local, scripting, automação
MCP opcional sim ferramentaria de agente via /mcp

Executar o app desktop

Abra o Koharu normalmente a partir do atalho do aplicativo instalado.

Mesmo no modo desktop, o Koharu ainda sobe um servidor HTTP local internamente. A janela embutida conversa com esse servidor local em vez de chamar o pipeline diretamente.

Este é o modo padrão e a melhor escolha para a maioria dos usuários.

Executar em modo headless

O modo headless sobe o servidor local sem abrir a GUI desktop.

# macOS / Linux
koharu --port 4000 --headless

# Windows
koharu.exe --port 4000 --headless

Depois da inicialização, abra a Web UI em http://localhost:4000.

O modo headless fica em primeiro plano até você parar, normalmente com Ctrl+C.

Executar com uma porta fixa

Por padrão, o Koharu usa uma porta local aleatória. Use --port quando precisar de um endereço estável para bookmarks, scripts, reverse proxies ou clientes MCP.

# macOS / Linux
koharu --port 9999

# Windows
koharu.exe --port 9999

Se você não especificar --port, o Koharu ainda inicia o servidor, mas a porta escolhida é dinâmica.

Conectar à API local

Quando o Koharu está rodando em uma porta fixa, os endpoints principais são:

  • Web UI: http://localhost:9999/
  • RPC / HTTP API: http://localhost:9999/api/v1
  • Servidor MCP: http://localhost:9999/mcp

Substitua 9999 pela porta que você escolheu.

Como o Koharu faz bind em loopback, esses endpoints são locais por padrão. Se quiser acesso a partir de outra máquina, você precisa expor essa porta por conta própria via sua configuração de rede.

Para detalhes por endpoint, veja a Referência da HTTP API.

Conectar ao servidor MCP

O Koharu inclui um servidor MCP embutido que usa os mesmos documentos carregados, modelos e pipeline de páginas que o restante do app.

Aponte seu cliente MCP ou agente para:

http://localhost:9999/mcp

Isso é útil quando você quer que um agente:

  • inspecione blocos de texto
  • rode OCR ou tradução
  • exporte páginas renderizadas
  • automatize revisão ou workflows em lote

Para exemplos de setup por cliente, veja Configurar Clientes MCP.

Para a lista completa de tools embutidas, veja a Referência de MCP Tools.

Forçar o modo CPU

Use --cpu quando quiser desabilitar inferência por GPU explicitamente.

# macOS / Linux
koharu --cpu

# Windows
koharu.exe --cpu

Isso é útil para testes de compatibilidade, problemas de driver ou debug de baixo risco quando o setup de GPU está incerto.

Apenas baixar dependências de runtime

Use --download se quiser que o Koharu pré-baixe as dependências de runtime e encerre sem iniciar o app.

# macOS / Linux
koharu --download

# Windows
koharu.exe --download

Na implementação atual, esse caminho inicializa:

  • bibliotecas de runtime usadas pela stack de inferência local
  • os modelos padrão de visão e OCR

Ele não pré-baixa todas as LLMs locais opcionais de tradução. Essas continuam sendo baixadas quando você as seleciona em Settings.

Habilitar saída de debug

Use --debug quando quiser inicialização orientada a console com output de logs.

# macOS / Linux
koharu --debug

# Windows
koharu.exe --debug

No Windows, execuções de debug e headless também influenciam como o Koharu anexa ou cria uma janela de console.

Rodando sem keyring

Por padrão, o Koharu armazena API keys no keyring do sistema. Em ambientes de container ou CI onde não existe um keyring persistente, você pode passar --no-keyring para pular essa etapa e fornecer as API keys por variáveis de ambiente.

O nome da variável para cada provider segue o padrão KOHARU_<PROVIDER>_API_KEY:

Provider Variável de ambiente
OpenAI KOHARU_OPENAI_API_KEY
Gemini KOHARU_GEMINI_API_KEY
Claude KOHARU_CLAUDE_API_KEY
DeepSeek KOHARU_DEEPSEEK_API_KEY
OpenAI-compatible KOHARU_OPENAI_COMPATIBLE_API_KEY

Hífens nos IDs de provider são convertidos em underscores no nome da variável.

Exemplo para uma execução headless em container:

KOHARU_OPENAI_API_KEY=sk-... koharu --port 9999 --headless --no-keyring

Quando --no-keyring está ativo, chamadas para salvar uma API key pela UI ou pela HTTP API são ignoradas.