Referência
Ambiente e variáveis
As variáveis PLOY_*, as definições OPENCODE_* que o lançador aplica e o comportamento do Ollama que ele configura.
Tudo o que está nesta página vem do lançador (bin/ploy) e do código. O lançador é o comando ploy: prepara o Ollama e o modelo, aplica as definições "local primeiro" e só depois corre o Ploy.
Variáveis do Ploy
| Variável | Efeito |
|---|---|
PLOY_WEB |
0 desliga a pesquisa na web do Veta, que passa a responder só com o que sabe. Qualquer outro valor deixa-a ligada. |
PLOY_OLLAMA |
Onde o gateway dos modelos Ploy fala com o Ollama. Por omissão http://127.0.0.1:11434. O lançador continua a verificar e a iniciar o Ollama local. |
PLOY_SHOW_RAW_MODELS |
1 mostra no seletor os modelos Ollama em bruto. Por omissão estão escondidos, mas usam-se pelo nome (ollama/qwen3-ploy). |
PLOY_CONFIG_DIR |
Pasta de configuração. Por omissão ~/.config/ploy. |
PLOY_DATA_HOME |
Pasta de dados (conversas, registos). Por omissão ~/.local/share/ploy. |
PLOY_CHATS_DIR |
Onde a memória de cada conversa é espelhada em ficheiros. Por omissão, a pasta chats dentro da pasta de dados. |
PLOY_TRACE |
1 escreve no registo do serviço uma linha por pedido ao modelo, para ver onde se vai o tempo. |
PLOY_WHISPER_MODEL |
Caminho do modelo do whisper.cpp. Por omissão ggml-small.bin na pasta models dentro da pasta de dados. |
Para compilar o terminal existe ainda PLOY_BUN_RANGE, que deixa compilar com uma versão mais antiga do Bun, já verificada. As suítes de testes usam PLOY_VIA, PLOY_SUITE, PLOY_REPEAT e PLOY_TIMEOUT.
Definições OPENCODE_* que o lançador aplica
O Ploy é um fork do OpenCode, e estas definições herdadas são o que o torna local.
| Definição | O que faz | Porquê |
|---|---|---|
OPENCODE_DISABLE_AUTOUPDATE=1 |
Sem verificação de atualizações. | Local primeiro: nada sai do Mac sem a pessoa querer. |
OPENCODE_DISABLE_MODELS_FETCH=1 |
Não descarrega a lista de modelos da internet. | Idem. |
OPENCODE_DISABLE_FREE_MODELS=1 |
Retira os modelos gratuitos alojados do OpenCode. | Idem. |
OPENCODE_DISABLE_FILEWATCHER=1 |
Sem vigilância de ficheiros. | Ainda não está documentado. |
OPENCODE_DISABLE_CLAUDE_CODE=1 |
Não lê a pasta .claude (usada só para skills). |
Ainda não está documentado. |
OPENCODE_CONFIG_DIR |
Pasta de configuração do Ploy, vinda de PLOY_CONFIG_DIR. |
Uma pasta própria. |
XDG_DATA_HOME |
Pasta de dados do Ploy, vinda de PLOY_DATA_HOME. |
O Ploy não herda conversas dos testes nem de outra instalação do OpenCode. |
OPENCODE_DESKTOP_ISOLATED_SERVER=0 |
Só em ploy app: a app em modo de desenvolvimento não usa um serviço isolado. |
Ainda não está documentado. |
A configuração (config/opencode.json) é copiada uma vez para a pasta de configuração. Define o modelo predefinido (ollama/ploy-auto), o contexto de 16 384 tokens e o limite de saída de 6144, e as variantes rapido e profundo. Se a cópia ainda for exatamente uma versão antiga distribuída, é substituída pela atual. Se a editaste, fica como está.
O que o lançador faz ao Ollama
Os comandos que nunca falam com o modelo (--version, --help, help, --completions, upgrade, update, uninstall) saltam tudo isto. Para os outros:
- Ollama. Se não responde em 127.0.0.1:11434, o lançador inicia-o e espera até 30 segundos. O registo fica em
~/Library/Logs/ploy-ollama.log. - Modelo. Se falta o
qwen3-ploy, ou se o seu template ainda não deixa o pedido ligar e desligar o raciocínio, o lançador cria-o a partir doqwen3:8bcom o Modelfile do projeto. - Pré-carregamento. Um pedido vazio carrega o modelo para a primeira resposta ser rápida.
As definições do servidor Ollama só se aplicam quando é o lançador a iniciá-lo. Se o Ollama já estava a correr, ficam as definições dele.
| Definição | Valor | Notas |
|---|---|---|
OLLAMA_NUM_PARALLEL |
1 |
O Ploy precisa disto. Os agentes também correm um a seguir ao outro. |
OLLAMA_MAX_LOADED_MODELS |
1 |
Um só modelo em memória. Os 16 GB são partilhados com as tuas apps. |
OLLAMA_KEEP_ALIVE |
15m |
O modelo fica em memória 15 minutos. O pré-carregamento pede o mesmo. |
OLLAMA_FLASH_ATTENTION |
1 |
Opção do Ollama para a atenção do modelo. O motivo exato não está documentado. |
OLLAMA_KV_CACHE_TYPE |
q8_0 |
Tipo do cache do contexto. O motivo exato também não está documentado. |
O Modelfile
O qwen3-ploy parte do qwen3:8b, com um template próprio e estes parâmetros:
FROM qwen3:8b
# TEMPLATE omitted here: it appends /think or /no_think to the last user message
PARAMETER num_ctx 16384
PARAMETER temperature 0.5
PARAMETER top_p 0.9
PARAMETER top_k 20O projeto fixa o num_ctx em 16384, que é a janela de contexto do Ploy. O template acrescenta /think ou /no_think à última mensagem do utilizador, conforme o pedido ligue ou não o raciocínio. Existe também um Modelfile do qwen3-ploy-4b (4 mil milhões de parâmetros), que o lançador não cria.
Comandos
ploy # terminal UI
ploy run --auto "<task>" # one task, approves each permission request once
ploy app # window app, development mode
ploy run "<task>" < /dev/null # in scripts: close stdin, or it waits for itQuando o stdin não é um terminal, o ploy run lê-o até fechar, por isso os scripts usam < /dev/null. A pasta de trabalho vem de PWD. Se o binário compilado não existir, o lançador corre a partir do código-fonte e avisa. Ver também Pastas e dados e Resolução de problemas.