Seções da Base de Conhecimento ▾

Navegação

▸ Comece aqui Por funções

Categorias

Ferramentas 52
Glossário 12

Ferramentas

MiMo Code + JoinGonka Gateway: agente Xiaomi em modelos da rede Gonka

MiMo Code (comando mimo) — um agente de código de terminal do laboratório Xiaomi MiMo: lê e escreve código, executa comandos, trabalha com Git e mantém memória persistente do projeto entre sessões. É um fork do OpenCode: tudo o que seu precursor sabe fazer está presente, adicionando pontos de verificação de sessão, restauração de contexto, subagentes e fluxos de trabalho prontos para uso. O código é aberto sob licença MIT; o projeto é jovem e muda rapidamente, portanto, tudo o que segue está vinculado à versão 0.1.15, lançada em 22 de setembro de 2026.

A camada de modelos do MiMo Code é intercambiável: qualquer API compatível com OpenAI conecta-se como seu próprio provedor através de uma descrição em mimocode.jsonc e uma chave em auth.json. O JoinGonka Gateway é precisamente isso, por isso a conexão resume-se a um único comando de instalação.

Não existem modelos MiMo próprios na rede Gonka: a rede descentralizada serve o DeepSeek V4 Flash, GLM-5.3 Flash e MiniMax M2.7 — todos pelo mesmo preço, $0.0069 por milhão de tokens de entrada. O agente não está vinculado aos modelos da Xiaomi: os provedores nele são intercambiáveis, e toda a estrutura — memória, pontos de verificação, subagentes — funciona sobre o modelo que você escolher. Os comandos, arquivos e mensagens abaixo foram verificados por uma execução real do MiMo Code através do gateway em 23 de setembro de 2026. Após confirmar o endereço, você receberá 3M de tokens gratuitos em sua conta, o suficiente para repetir tudo isso você mesmo.

Início rápido: instalação e um comando

Passo 1: instalar o MiMo Code. Métodos oficiais do README do projeto:

# macOS and Linux
curl -fsSL https://mimo.xiaomi.com/install | bash

# Windows (PowerShell)
powershell -ep Bypass -c "irm https://mimo.xiaomi.com/install.ps1 | iex"

# via npm, on any system
npm install -g @mimo-ai/cli

O script instala o binário em ~/.mimocode/bin e adiciona esse diretório ao PATH pelo perfil do shell (a flag --no-modify-path desativa isso). Ele baixa a build do repositório da Xiaomi; se o download não funcionar, instale via npm —é o mesmo release, nos nossos testes os dois caminhos traziam a 0.1.15. Para verificar: mimo --version.

Passo 2: obter a chave. Cadastre-se em gate.joingonka.ai/register, confirme seu endereço e crie uma chave com o prefixo jg- na seção «Chaves de API». Uma única chave e um único saldo valem para todos os modelos da rede.

Passo 3: executar o instalador.

npx @joingonka/setup --tool mimo-code

O instalador vai pedir a chave —ela não é passada como argumento de linha de comando— e gravará os mesmos dois arquivos que o assistente do próprio provedor dentro do MiMo Code, só que já com o catálogo completo e os limites:

  • registrará o provedor joingonka na configuração global ~/.config/mimocode/mimocode.jsonc (ou em mimocode.json ou config.json, se o MiMo Code já escrever lá): adaptador @ai-sdk/openai-compatible, endereço do gateway com /v1 e os três modelos da rede com janelas de contexto, tetos de resposta e suporte a ferramentas;
  • guardará a chave no armazenamento de chaves próprio do MiMo Code —~/.local/share/mimocode/auth.json com permissões 600. A chave não fica na própria configuração, então você pode mantê-la tranquilamente em dotfiles;
  • definirá o modelo padrão —o campo model— como DeepSeek V4 Flash, mas apenas se nenhum estiver selecionado ou se apontar para um modelo que saiu da rede. Não vai sobrescrever a sua escolha, nem mesmo em outra configuração global;
  • salvará cópias dos arquivos anteriores, não tocará em provedores, chaves nem comentários de terceiros, e se um arquivo não puder ser lido não o sobrescreverá —vai parar e dizer o que corrigir;
  • no final enviará uma requisição real ao gateway e dirá claramente se a chave, o endereço e o modelo foram aceitos.

O instalador leva em conta diretórios não padrão por conta própria: MIMOCODE_HOME, XDG_CONFIG_HOME, XDG_DATA_HOME e MIMOCODE_CONFIG. Outro modelo padrão é definido pela flag --model com as abreviações deepseek, glm ou minimax; para dotfiles e servidores há um modo sem perguntas:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool mimo-code --non-interactive

Se o MiMo Code estava em execução, reinicie-o: o novo provedor é carregado na inicialização.

Configuração manual: mimocode.jsonc e auth.json

Tudo o que o instalador faz dá para escrever à mão. São dois arquivos, e cada um tem sua função: o config descreve o provedor e os modelos, o auth.json guarda a chave. Quem liga os dois é o identificador do provedor — joingonka precisa bater nos dois arquivos. O config, ~/.config/mimocode/mimocode.jsonc:

{
  "$schema": "https://mimo.xiaomi.com/mimocode/config.json",
  "provider": {
    "joingonka": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "JoinGonka (Gonka)",
      "options": {
        "baseURL": "https://gate.joingonka.ai/v1"
      },
      "models": {
        "deepseek-ai/DeepSeek-V4-Flash-0731": {
          "name": "DeepSeek V4 Flash (Gonka)",
          "tool_call": true,
          "reasoning": true,
          "limit": { "context": 380000, "output": 32768 }
        },
        "zai-org/GLM-5.3-Flash": {
          "name": "GLM 5.3 Flash (Gonka)",
          "tool_call": true,
          "reasoning": true,
          "limit": { "context": 390000, "output": 8192 }
        },
        "MiniMaxAI/MiniMax-M2.7": {
          "name": "MiniMax M2.7 (Gonka)",
          "tool_call": true,
          "limit": { "context": 200000, "output": 8192 }
        }
      }
    }
  },
  "model": "joingonka/deepseek-ai/DeepSeek-V4-Flash-0731"
}

A chave, ~/.local/share/mimocode/auth.json com permissões 600:

{
  "joingonka": { "type": "api", "key": "jg-your-key" }
}
CampoValorO que importa
provider.joingonkaidentificador do provedorEm minúsculas; a mesma chave no auth.json, senão o MiMo Code não vai vincular a chave ao provedor
npm@ai-sdk/openai-compatibleAdaptador para APIs compatíveis com OpenAI — é com ele que o MiMo Code fala com o gateway via Chat Completions
options.baseURLhttps://gate.joingonka.ai/v1Com /v1 no final: o caminho /chat/completions o MiMo Code acrescenta sozinho
modelsas chaves são os ids dos modelos da redeO identificador vai na requisição como está, junto com o prefixo do fornecedor
limitcontext e output conforme a lista acimaSem eles, o MiMo Code considera a janela do modelo igual a um milhão de tokens e vai começar a comprimir o histórico tarde demais — a requisição vai esbarrar no limite real do modelo
tool_calltrueO modelo chama ferramentas. Para os próprios modelos, o MiMo Code já assume isso por padrão; o instalador grava a flag explicitamente
reasoningtrueMarcação de modelo de raciocínio: quem recebe são o DeepSeek V4 Flash e o GLM-5.3 Flash; a entrada do MiniMax M2.7 passa sem ela

O modelo padrão é gravado como provider/model-id; o provedor é separado pela primeira barra, por isso identificadores da rede com barra própria são escritos como estão.

Onde mais a chave pode ficar. O README do MiMo Code também mostra a variante com a chave direto no config — options.apiKey. Funciona, mas aí a chave fica fácil de commitar junto com os dotfiles, e uma chave antiga esquecida ali vai sobrescrever a nova do auth.json — por isso o instalador remove o options.apiKey do bloco dele. No .mimocode/mimocode.jsonc do projeto, menos ainda: não coloque a chave ali.

Qual arquivo manda. Os globais config.json, mimocode.json e mimocode.jsonc o MiMo Code mescla nessa ordem, cada um sobrescreve o anterior. O resultado é impresso por mimo debug config, e os caminhos do config e das chaves no seu sistema, por mimo debug paths.

Provedor da interface, auth.json e seleção de modelo

Você pode configurar seu próprio provedor sem arquivos, usando o assistente integrado. Na primeira execução no diretório do projeto, o MiMo Code pergunta se você confia na pasta (Yes, I trust this folder): o agente obterá permissão para ler, editar e executar arquivos nela. Em seguida, o comando /connect abre a lista Select provider: no topo, o acesso à plataforma Xiaomi MiMo, Codex e importação do Claude Code; abaixo, o catálogo de provedores; e ao final, + Custom provider. O assistente faz seis perguntas:

PassoO que inserirNota
Provider id (1/6)joingonkaO mesmo id do instalador: se executado posteriormente, ele atualizará este registro em vez de criar um segundo
Display name (2/6)JoinGonkaAssinatura nas listas; por padrão coincide com o id
Base URL (3/6)https://gate.joingonka.ai/v1Com o sufixo /v1
API key (4/6)sua chave jg-…Vai para auth.json, não é escrita no arquivo de configuração
First model id (5/6)deepseek-ai/DeepSeek-V4-Flash-0731Id completo do modelo da rede, com o prefixo do fornecedor
First model name (6/6)DeepSeek V4 FlashAssinatura; por padrão é o próprio id

Em nosso teste, o assistente registrou o bloco do provedor com um modelo sem limites e dois campos que o instalador não possui: env com o nome da variável JOINGONKA_API_KEY, onde o MiMo Code também procurará pela chave, e options.setCacheKey: true. Isso funciona com o gateway, mas a configuração deve ser completada: sem limit, o comando mimo models joingonka mostrará uma janela de 1M de tokens. A maneira mais fácil é executar o instalador uma vez após o assistente — ele adicionará o catálogo completo com limites ao mesmo bloco.

Seleção de modelo. A seleção permanente é o campo model na configuração. Na interface, o modelo é alterado pelo comando /models, e para uma execução única, pelo flag -m. Quais modelos o MiMo Code enxerga no provedor e com qual janela trabalha é mostrado por mimo models joingonka — junto com o limite no qual o agente começará a comprimir o histórico:

joingonka/deepseek-ai/DeepSeek-V4-Flash-0731 — window 380K, compacts at 342K
joingonka/MiniMaxAI/MiniMax-M2.7 — window 200K, compacts at 180K
joingonka/zai-org/GLM-5.3-Flash — window 390K, compacts at 351K

O preço para todos os modelos da rede é o mesmo, então a escolha depende do comportamento. Foi assim que eles se saíram em nosso teste mimo run em uma tarefa — ler um arquivo e encontrar um erro:

ModeloContexto / respostaComo se comporta no MiMo Code
DeepSeek V4 Flash380K / 32768Resolve a tarefa corretamente; o maior teto de resposta da rede — o instalador o define por padrão
GLM-5.3 Flash390K / 8192Resposta limpa em dois passos e poucos segundos. Modelo de raciocínio: o raciocínio entra no teto da resposta
MiniMax M2.7200K / 8192Resolve a tarefa corretamente. O raciocínio do modelo vem separado da resposta: por padrão, o mimo run exibe apenas a resposta e as chamadas de ferramentas, e o flag --thinking exibe também o raciocínio

Por que o DeepSeek V4 Flash foi escolhido como padrão, está explicado na análise do modelo.

Verificação: o que deve acontecer

Primeiro, confirme que o MiMo Code enxerga o provedor e a chave:

mimo models joingonka
mimo providers list

O primeiro comando lista os três modelos da rede com suas janelas, como no exemplo acima; o segundo imprime o caminho do armazenamento de chaves e a linha joingonka api. Depois, uma execução avulsa. Coloque no diretório do projeto um arquivo calc.py com um erro evidente — por exemplo, a área de um retângulo em que os lados são somados em vez de multiplicados — e peça para encontrá-lo:

mimo run "Read the file calc.py in the current project directory and tell me in one sentence whether it has a bug."

Na saída vão aparecer o agente e o modelo (> build · deepseek-ai/DeepSeek-V4-Flash-0731), a chamada da ferramenta (→ Read calc.py) e uma resposta objetiva, apontando a expressão errada. A flag --format json transforma a saída em um fluxo de eventos em que cada passo tem seu contador de tokens, e -m joingonka/<model-id> dispara a execução com outro modelo. No nosso teste, o ciclo «requisição → chamada de ferramenta → resultado → resposta» foi concluído pelos três modelos da rede.

A terceira verificação é do lado do gateway: no painel, em «Uso», a requisição vai aparecer no detalhamento «Por modelos», e no bloco «Por chaves» o horário da última requisição será atualizado.

Se algo der errado, o diagnóstico normalmente se lê direto na mensagem:

O que apareceO que significaO que fazer
Error: Invalid API keyO gateway não aceitou a chaveConfira a chave em auth.json ou rode o instalador de novo; lembre que options.apiKey no bloco do provedor tem precedência sobre auth.json
Error: Method Not AllowedFalta o sufixo /v1 no baseURLO endereço precisa ser exatamente https://gate.joingonka.ai/v1
Error: Model not found: joingonka/… Did you mean: …?O modelo não está na lista models do provedor — quase sempre porque o id foi digitado sem o prefixo do fornecedorPegue o id completo na sugestão ou em mimo models joingonka
permission requested: external_directory (…); auto-rejecting, e a execução termina sem respostaNo mimo run, o acesso fora do projeto é rejeitado e a execução para. Acontece quando o modelo procura um arquivo fora do projeto — por exemplo, no diretório homeDeixe claro que o arquivo está no diretório do projeto; o acesso permanente ao diretório desejado é dado pela regra permission.external_directory
Em mimo models joingonka, janela 1MO modelo não tem limit — costuma acontecer depois do assistente de Custom providerDefina limit na configuração ou rode o instalador
429 … is currently overloaded in the Gonka network (rate limit)O modelo está sem capacidade livre na rede neste momentoTente de novo em um minuto ou troque para um modelo próximo com /models ou a flag -m; o estado aparece na página de status
402Acabaram os fundos no saldoRecarregue a conta na seção «Faturamento»; a chave continua válida
A resposta cortou no meioO fluxo de resposta foi interrompido no caminho — comum em horário de picomimo run -c "continue" retoma a última sessão do mesmo ponto

Quanto custa

A ferramenta de agente gasta tokens de forma diferente de um chat: a cada frase sua, o MiMo Code adiciona um prompt de sistema, descrições de ferramentas e contexto de serviço do agente, e a tarefa ocupa vários passos. Em nossa execução, cada solicitação ao modelo consumiu 22-25 mil tokens de entrada, e a tarefa de "ler o arquivo e encontrar o erro" de dois passos custou aproximadamente 45-50 mil tokens — quase tudo é entrada. Portanto, o preço por token aqui é o que decide.

Através do JoinGonka Gateway, os tokens custam $0.0069 por milhão na entrada e $0.021 por milhão na saída — o preço é igual para todos os modelos da rede e é obtido nesta página de uma fonte em tempo real.

CenárioConsumoVia Gateway
Tarefa única: ler arquivo, encontrar erro45-50K tokenscentésimos de centavo
Dia de trabalho ativo3-7M tokensunidades de centavos
Mês de desenvolvimento ativo~150M tokenscerca de um dólar

As estimativas na coluna da direita são baseadas nos preços de setembro de 2026. Para comparar — como se pode pagar por modelos no MiMo Code:

MétodoComo é pagoO que é necessário
Plataforma Xiaomi MiMosegundo os termos da plataformaconta Xiaomi MiMo, login pelo navegador
Codexassinatura ChatGPTplano ChatGPT Plus ou Pro, login pelo navegador
Chave de fornecedor do catálogopor tokens segundo o preço do fornecedorchave separada para cada fornecedor
JoinGonka Gatewaypor tokens de um saldo pré-pagochave jg-…; três modelos da rede pelo mesmo preço, consumo visível no painel

Sua própria estimativa de custo no MiMo Code para os modelos do gateway é igual a zero — nos registros deles não há o campo cost, e nos eventos --format json consta "cost": 0. O consumo real e o saldo estão no painel, nas seções "Uso" e "Faturamento".

O que considerar no trabalho

Permissões. Na interface, o MiMo Code pede confirmação para ações de risco, mas no mimo run não há ninguém para perguntar — ele mesmo rejeita solicitações de acesso fora do projeto. Para ambientes descartáveis de confiança, existe a flag --dangerously-skip-permissions (ou a variável MIMOCODE_DANGEROUSLY_SKIP_PERMISSIONS=1): isso permite tudo o que não for proibido por uma regra explícita, apenas dentro de um container ou sandbox. Na interface, um modo semelhante é ativado durante a sessão via /skip-permissions.

Agentes. Por padrão, build funciona com o conjunto completo de ferramentas, plan apenas lê e analisa, e compose gerencia o processo desde a especificação até o código verificado; alternam-se com a tecla Tab.

Contexto longo. Ao atingir o limite da janela, o MiMo Code reconstrói o contexto a partir do último ponto de verificação, memória do projeto e mensagens recentes; o limite é calculado com base em limit.context. Pode-se comprimir antes usando o comando /context-limit, separadamente para cada modelo.

O que depende da conta Xiaomi. A entrada de voz (/voice) reconhece a fala usando o modelo da plataforma MiMo e está disponível após o login. O código, comandos e subagentes funcionam através do provedor conectado — em nosso teste, sem necessidade de login.

Imagens. Os modelos da rede são textuais: em /modalities deixe apenas texto para eles, e para capturas de tela, configure um segundo provedor com um modelo capaz de visão.

MiMo Code e OpenCode são parentes com configurações diferentes. Cada um possui seus próprios diretórios e arquivos, portanto a configuração de um não é transferida para o outro:

OpenCodeMiMo Code
Comandoopencodemimo
Config~/.config/opencode/opencode.json~/.config/mimocode/mimocode.jsonc
Chaves~/.local/share/opencode/auth.json~/.local/share/mimocode/auth.json
Instalador--tool opencode--tool mimo-code

Versão. O projeto é atualizado frequentemente; para reprodutibilidade, fixe a versão: npm install -g @mimo-ai/[email protected] ou curl -fsSL https://mimo.xiaomi.com/install | bash -s — --version 0.1.15.

Existem agentes dos próprios laboratórios para as famílias atendidas pela rede: o MiniMax Code funciona no modelo do seu fornecedor MiniMax M2.7, e tanto a DeepSeek quanto a Z.ai (autores do GLM) possuem seus próprios agentes. Todos se conectam ao mesmo gateway com uma única chave.

O MiMo Code é o agente de terminal do Xiaomi MiMo, um fork do OpenCode com memória de projeto e pontos de verificação. Não existem modelos MiMo na rede Gonka, mas o provedor no agente é substituível: npx @joingonka/setup --tool mimo-code registrará o provedor joingonka no ~/.config/mimocode/mimocode.jsonc (adaptador @ai-sdk/openai-compatible, endereço https://gate.joingonka.ai/v1, DeepSeek V4 Flash, GLM-5.3 Flash e MiniMax M2.7 com limit honestos) e colocará a chave jg-… no arquivo nativo auth.json. O assistente /connect → + Custom provider faz o mesmo manualmente; depois disso, adicione os modelos e limites. Para verificar, use mimo models joingonka e mimo run; mantenha os caminhos dentro do projeto durante a execução única.

Quer saber mais?

Explore outras seções ou comece a ganhar GNK agora mesmo.

Obter chave e tokens gratuitos →