Documentação
twinny
O twinny não pede uma URL base. Ele pede um protocolo, um nome de host, uma porta e um caminho de API; para chat, esse caminho é a base da API — portanto, use https, api.kunavo.com e /v1, e deixe a porta em branco.
O twinny não tem campo de URL base — Add provider → OpenAI-compatible server, depois Protocol https, Hostname api.kunavo.com, Port em branco e API path /v1; o painel de chat usa sua chave.
Label Kunavo
Type Chat
Provider OpenAI-compatible server
Hostname api.kunavo.com
Port (leave blank — "Blank means the protocol's default")
Protocol https
API path /v1
Model name claude-sonnet-5
FIM template (Autocomplete only — not part of a Chat provider)
API key sk-kn-.../v1, não /v1/chat/completions. A tabela de provedores do twinny esclarece isso em uma frase — "Para chat, o caminho é a base da API; o twinny acrescenta /chat/completions" — portanto, um caminho que já contém a rota resulta em /v1/chat/completions/chat/completions e em um 404. Não há um único campo de URL base que possa ser preenchido incorretamente, mas a mesma tabela oferece um atalho: cole https://api.kunavo.com/v1 em Hostname e ele será "dividido em protocolo, host, porta e caminho".sk-kn-) e adicione crédito a partir de $10 — as chamadas são pagas com esse saldo, e chamadas malsucedidas não são cobradas. O painel então abre na configuração de twinny.Passo a passo
- Crie uma chave em
/app/keyse copie-a — ela é exibida uma única vez. - Abra a aba Providers pelo ícone do robô na parte superior da barra lateral ou execute Manage twinny providers na paleta de comandos.
- Add provider → em On your machine, escolha
OpenAI-compatible server, a predefinição genérica. Ela já vem apontada paralocalhost:8080. - Defina Protocol como
https, Hostname comoapi.kunavo.com, limpe Port e defina API path como/v1. Mantenha Type emChat. - Cole a chave em API key — o twinny a envia como
Authorization: Bearer. Em seguida, defina Model name, digitando-o ou usando Choose from the server's models, já que a Kunavo atendeGET /v1/models. - Pressione Test provider e, em seguida, Use this provider para torná-lo o provedor de chat ativo. Use Copy para duplicar a linha para um segundo modelo, em vez de digitar novamente os quatro campos do endpoint.
Verificado em a página Other local servers do twinny em 21 de setembro de 2026. As configurações de terceiros podem mudar; se o nome de um campo aqui já não corresponder ao que você vê, aquela página é a autoridade, não esta.
Verifique antes de depurar o cliente
Uma solicitação determina se a falha está no endpoint, na chave ou no arquivo de configuração. Se isto retornar JSON, a mesma URL base e a mesma chave funcionarão em twinny.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Qual ID de modelo inserir no campo
Todo modelo de texto pode ser acessado como um ID de modelo — a lista atual está em GET /v1/models, e o catálogo com preços está na página de modelos. As tarifas são em USD por 1 milhão de tokens, entrada / saída.
| ID do modelo | Entrada / saída da Kunavo | Onde se encaixa em twinny |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | o painel de chat, a edição em linha e a revisão de código — a configuração padrão funcional |
claude-haiku-4-5 | $0.70 / $3.50 | mensagens de commit, assistentes de terminal e ações de código, em que o volume predomina |
gpt-5-6-terra | $0.70 / $4.20 | arquivos longos colados no chat e uma segunda opinião de outra família quando uma revisão parece superficial |
O chat funciona. A conclusão automática e o índice, não.
O twinny divide o trabalho entre três tipos de provedor, e cada um é configurado separadamente — portanto, “o twinny funciona com a Kunavo” só é verdade para um deles. Os outros dois não são uma configuração que você ainda não encontrou; as rotas de que precisam não são atendidas pela Kunavo.
| Tipo de provedor | O que o twinny envia | Em api. |
|---|---|---|
| Chat | POST no formato OpenAI para <API path>/ | Funciona — esta é a página acima. |
| Conclusão automática (FIM) | um prompt bruto de preenchimento no meio para /v1/ | Não. A Kunavo não tem uma rota /v1/ |
| Representações vetoriais | uma solicitação para /v1/ | Não. A Kunavo não oferece um modelo de embeddings, então não é possível criar o índice do espaço de trabalho aqui. |
Nenhuma dessas lacunas impede a configuração, pois o twinny mantém um provedor ativo por tipo, e eles são independentes entre si. A própria página de APIs hospedadas do twinny chama essa divisão de “uma configuração comum”: um modelo base local pequeno para conclusão, junto com um modelo hospedado para chat, revisão e edição. O índice do espaço de trabalho segue a mesma lógica — a etapa de embeddings não é atendida aqui, e a documentação do twinny recomenda usar para isso um modelo local, como nomic-embed-text no Ollama. Vetores de modelos diferentes não se misturam; portanto, mudar esse modelo exige recriar o índice, e não apenas atualizá-lo.
Perguntas frequentes
Como configuro o twinny para usar um endpoint de API personalizado?
Abra a aba Providers pelo ícone do robô na barra lateral do twinny, escolha Add provider e, em "On your machine", selecione a predefinição genérica chamada "OpenAI-compatible server". A documentação do twinny informa que o formulário do provedor aceita qualquer nome de host, porta, protocolo e caminho; portanto, defina Protocol como https, Hostname como o host do seu endpoint, deixe Port em branco para usar a porta padrão do protocolo e defina API path como a base da API. Cole sua chave no campo API key, que o twinny envia no cabeçalho Authorization: Bearer, e pressione Test provider — ele envia uma pequena solicitação para a função do provedor e informa se houve sucesso ou qual erro o servidor retornou, junto com a URL chamada.
O caminho da API do twinny precisa ser /v1 ou /v1/chat/completions?
Para um provedor de chat, use /v1. A tabela de provedores do twinny diz: “Para chat, o caminho é a base da API; o twinny acrescenta /chat/completions”; assim, a extensão monta a rota completa. Se o caminho já incluir esse trecho, ele resultará em /v1/chat/completions/chat/completions, que retorna 404, e não um erro de autenticação. O formulário usa a convenção oposta para conclusão automática e embeddings: nesses casos, o caminho da API é a rota completa, /v1/completions e /v1/embeddings, conforme os valores padrão da predefinição genérica.
Onde devo inserir a chave de API do twinny? Há um campo de URL base?
A chave deve ser inserida no campo API key do provedor e é enviada como Authorization: Bearer; a documentação do twinny informa que as chaves são armazenadas junto ao provedor no armazenamento do VS Code e ocultadas nos registros do twinny. Não há um único campo de URL base — o endpoint é dividido entre Protocol, Hostname, Port e API path. Há um atalho: colar a URL completa em Hostname funciona. A documentação diz que uma URL colada, como https://my-box:8080/v1, é dividida em protocolo, host, porta e caminho; portanto, colar https://api.kunavo.com/v1 preenche três campos de uma só vez.
A conclusão automática do twinny pode usar um gateway hospedado como a Kunavo?
Não, e o motivo é a ausência de uma rota, não de uma configuração. A predefinição genérica compatível com OpenAI do twinny envia um prompt bruto de preenchimento no meio para uma rota no formato /v1/completions, e api.kunavo.com não atende /v1/completions; o catálogo também não inclui um modelo base ou de código treinado para preenchimento no meio. Mantenha a conclusão automática em um servidor local — o FAQ do twinny sugere qwen2.5-coder:1.5b-base no Ollama — e use o provedor hospedado para o chat. O twinny chama essa combinação de configuração comum e, como o provedor ativo é escolhido por tipo, não é necessário alternar.
A Kunavo pode alimentar o índice do espaço de trabalho do twinny?
Não. O índice do espaço de trabalho gera embeddings dos seus arquivos usando um provedor de Embeddings, e a Kunavo não oferece um modelo de embeddings — nenhum modelo do catálogo atende esse endpoint, então a solicitação é rejeitada em vez de respondida. A documentação do próprio twinny recomenda usar nomic-embed-text no Ollama para essa tarefa, que é executado na sua máquina e é independente do provedor que atende o chat. Trata-se de uma configuração dividida, não de uma configuração bloqueada; observe que é preciso recriar o índice se você mudar o modelo de embeddings, pois vetores de modelos diferentes não se misturam.
Por que não usar a predefinição OpenAI ou Anthropic do twinny com uma chave Kunavo?
Porque essas predefinições não enviam a solicitação para onde você pensa. A página de APIs hospedadas do twinny diz que o chat com uma API hospedada passa pelo SDK do fornecedor até seu endpoint fixo; por isso, os campos de nome de host, porta e caminho ficam ocultos. A chave que você colar seria enviada ao endpoint do próprio fornecedor, não ao seu gateway. A predefinição genérica "OpenAI-compatible server" mantém os campos do endpoint editáveis, por isso é a predefinição indicada acima. Os IDs dos modelos são repassados ao endpoint configurado; portanto, usar um ID Claude com um provedor compatível com OpenAI é a combinação pretendida, não uma incompatibilidade.
A Kunavo testou o twinny?
Não. A Kunavo não executou nenhum teste em tempo real deste cliente; a configuração acima foi extraída da documentação do próprio twinny, verificada em 21 de setembro de 2026, e da tabela de rotas da Kunavo. Uma página de configuração publicada não é um teste. A verificação que não custa nada é o botão Test provider do twinny, que informa a URL chamada e o que o servidor respondeu; uma única solicitação curl a /v1/models permite determinar se a falha está no endpoint, na chave ou no formulário.