Secciones de la base de conocimientos ▾

Navegación

▸ Empiece aquí Por roles

Categorías

Herramientas 52
Glosario 12

Herramientas

MiMo Code + JoinGonka Gateway: agente Xiaomi en modelos de red Gonka

MiMo Code (comando mimo) — un agente de código de terminal del laboratorio Xiaomi MiMo: lee y escribe código, ejecuta comandos, trabaja con Git y mantiene una memoria persistente del proyecto entre sesiones. Es un fork de OpenCode: todo lo que su predecesor sabe hacer está presente, añadiendo además puntos de control de sesión, restauración de contexto, subagentes y flujos de trabajo listos para usar. El código es abierto bajo licencia MIT; el proyecto es joven y cambia rápidamente, por lo que todo lo que sigue está ligado a la versión 0.1.15, lanzada el 22 de septiembre de 2026.

La capa de modelos de MiMo Code es intercambiable: cualquier API compatible con OpenAI se conecta como su propio proveedor mediante una descripción en mimocode.jsonc y una clave en auth.json. JoinGonka Gateway es precisamente eso, por lo que la conexión se reduce a un solo comando de instalación.

No existen modelos MiMo propios en la red Gonka: la red descentralizada sirve DeepSeek V4 Flash, GLM-5.3 Flash y MiniMax M2.7 — todos al mismo precio, $0.0069 por millón de tokens de entrada. El agente no está ligado a los modelos de Xiaomi: los proveedores en él son intercambiables, y toda la estructura — memoria, puntos de control, subagentes — funciona sobre el modelo que usted elija. Los comandos, archivos y mensajes a continuación han sido verificados mediante una ejecución real de MiMo Code a través de la pasarela el 23 de septiembre de 2026. Tras confirmar la dirección, recibirá 3M de tokens gratuitos en su cuenta, suficientes para repetir todo esto usted mismo.

Inicio rápido: instalación y un solo comando

Paso 1: instalar MiMo Code. Métodos oficiales del README del proyecto:

# 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

El script instala el binario en ~/.mimocode/bin y añade ese directorio al PATH a través del perfil del shell (el flag --no-modify-path lo desactiva). Descarga la build desde el repositorio de Xiaomi; si la descarga no funciona, instálalo vía npm —es el mismo release, en nuestras pruebas ambos caminos daban la 0.1.15. Para verificar: mimo --version.

Paso 2: obtener la clave. Regístrate en gate.joingonka.ai/register, confirma tu dirección y crea una clave con el prefijo jg- en la sección «Claves de API». Una sola clave y un solo saldo funcionan para todos los modelos de la red.

Paso 3: ejecutar el instalador.

npx @joingonka/setup --tool mimo-code

El instalador te pedirá la clave —no se pasa como argumento de línea de comandos— y escribirá los mismos dos archivos que el asistente de su propio proveedor dentro de MiMo Code, solo que ya con el catálogo completo y los límites:

  • registrará el proveedor joingonka en la configuración global ~/.config/mimocode/mimocode.jsonc (o en mimocode.json o config.json, si MiMo Code ya escribe ahí): adaptador @ai-sdk/openai-compatible, dirección del gateway con /v1 y los tres modelos de la red con ventanas de contexto, límites de respuesta y soporte de herramientas;
  • guardará la clave en el almacén de claves propio de MiMo Code —~/.local/share/mimocode/auth.json con permisos 600. La clave no está en la propia configuración, así que puedes mantenerla tranquilamente en dotfiles;
  • establecerá el modelo predeterminado —el campo model— en DeepSeek V4 Flash, pero solo si no hay ninguno seleccionado o si apunta a un modelo que ya no está en la red. No sobrescribirá tu elección, ni siquiera en otra configuración global;
  • guardará copias de los archivos anteriores, no tocará proveedores, claves ni comentarios ajenos, y si un archivo no se puede parsear no lo sobrescribirá —se detendrá y te dirá qué corregir;
  • al final enviará una petición real al gateway y te dirá claramente si la clave, la dirección y el modelo fueron aceptados.

El instalador tiene en cuenta los directorios no estándar por sí solo: MIMOCODE_HOME, XDG_CONFIG_HOME, XDG_DATA_HOME y MIMOCODE_CONFIG. Otro modelo predeterminado se define con el flag --model con las abreviaturas deepseek, glm o minimax; para dotfiles y servidores hay un modo sin preguntas:

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

Si MiMo Code estaba en ejecución, reinícialo: el nuevo proveedor se carga al arrancar.

Configuración manual: mimocode.jsonc y auth.json

Todo lo que hace el instalador se puede escribir a mano. Son dos archivos, y cada uno tiene su función: el config describe el proveedor y los modelos, auth.json guarda la clave. Los une el identificador del proveedor: joingonka debe coincidir en ambos archivos. El 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"
}

La clave, ~/.local/share/mimocode/auth.json con permisos 600:

{
  "joingonka": { "type": "api", "key": "jg-your-key" }
}
CampoValorQué es importante
provider.joingonkaidentificador del proveedorEn minúsculas; la misma clave en auth.json, de lo contrario MiMo Code no vinculará la clave con el proveedor
npm@ai-sdk/openai-compatibleAdaptador para API compatibles con OpenAI: con él MiMo Code se comunica con la puerta de enlace mediante Chat Completions
options.baseURLhttps://gate.joingonka.ai/v1Con /v1 al final: la ruta /chat/completions la añade MiMo Code por su cuenta
modelslas claves son los id de los modelos de la redEl identificador se envía en la solicitud tal cual, junto con el prefijo del proveedor
limitcontext y output según la lista de arribaSin ellos, MiMo Code considera que la ventana del modelo equivale a un millón de tokens y empezará a comprimir el historial demasiado tarde: la solicitud chocará con el límite real del modelo
tool_calltrueEl modelo invoca herramientas. Para sus propios modelos MiMo Code ya lo da por defecto, el instalador escribe el flag de forma explícita
reasoningtrueMarca de modelo razonador: la llevan DeepSeek V4 Flash y GLM-5.3 Flash, la entrada de MiniMax M2.7 prescinde de ella

El modelo por defecto se escribe como provider/model-id; el proveedor se separa por la primera barra, así que los identificadores de la red con barra propia se escriben tal cual.

Dónde más puede estar la clave. El README de MiMo Code también muestra la variante con la clave directamente en el config: options.apiKey. Funciona, pero entonces es fácil hacer commit de la clave junto con los dotfiles, y una clave antigua olvidada ahí anulará la nueva de auth.json; por eso el instalador elimina options.apiKey de su bloque. Y en el .mimocode/mimocode.jsonc del proyecto, menos aún: no pongas ahí la clave.

Qué archivo manda. Los globales config.json, mimocode.json y mimocode.jsonc MiMo Code los fusiona en ese orden, cada uno anula al anterior. El resultado lo imprime mimo debug config, y las rutas al config y a las claves en tu sistema, mimo debug paths.

Proveedor desde la interfaz, auth.json y selección de modelo

Puedes configurar tu propio proveedor incluso sin archivos, utilizando el asistente integrado. Al ejecutarlo por primera vez en el directorio del proyecto, MiMo Code pregunta si confías en la carpeta (Yes, I trust this folder): el agente obtendrá permiso para leer, editar y ejecutar archivos en ella. Luego, el comando /connect abre la lista Select provider: en la parte superior, el acceso a la plataforma Xiaomi MiMo, Codex y la importación desde Claude Code; debajo, el catálogo de proveedores; y al final, + Custom provider. El asistente hace seis preguntas:

PasoQué ingresarNota
Provider id (1/6)joingonkaEl mismo id que en el instalador: si se ejecuta después, actualizará esta entrada en lugar de crear una segunda
Display name (2/6)JoinGonkaEtiqueta en las listas; por defecto coincide con el id
Base URL (3/6)https://gate.joingonka.ai/v1Con el sufijo /v1
API key (4/6)tu clave jg-…Va a auth.json, no se escribe en la configuración
First model id (5/6)deepseek-ai/DeepSeek-V4-Flash-0731El id completo del modelo de la red, con el prefijo del proveedor
First model name (6/6)DeepSeek V4 FlashEtiqueta; por defecto es el mismo id

En nuestra ejecución, el asistente registró el bloque del proveedor con un modelo sin límites y dos campos que el instalador no tiene: env con el nombre de variable JOINGONKA_API_KEY, donde MiMo Code también buscará la clave, y options.setCacheKey: true. Esto funciona con la puerta de enlace (gateway), pero la configuración debería completarse: sin limit, mimo models joingonka mostrará una ventana de 1M de tokens. Lo más sencillo es ejecutar el instalador una vez después del asistente; este añadirá el catálogo completo con límites al mismo bloque.

Selección del modelo. La selección permanente es el campo model en la configuración. En la interfaz, el modelo se cambia con el comando /models, y para una ejecución puntual, el flag -m. Qué modelos ve MiMo Code en el proveedor y con qué ventana trabaja lo muestra mimo models joingonka, junto con el umbral en el que el agente comenzará a comprimir el historial:

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

El precio de todos los modelos de la red es el mismo, por lo que la elección depende del comportamiento. Así funcionaron en nuestra ejecución mimo run en una tarea: leer un archivo y encontrar un error:

ModeloContexto / respuestaCómo se comporta en MiMo Code
DeepSeek V4 Flash380K / 32768Resuelve la tarea correctamente; el techo de respuesta más grande de la red, que es el que el instalador configura por defecto
GLM-5.3 Flash390K / 8192Respuesta limpia en dos pasos y pocos segundos. Modelo de razonamiento: el razonamiento entra dentro del techo de respuesta
MiniMax M2.7200K / 8192Resuelve la tarea correctamente. El razonamiento del modelo llega por separado de la respuesta: por defecto, mimo run solo muestra la respuesta y las llamadas a herramientas, y el flag --thinking muestra también el razonamiento

Por qué se selecciona DeepSeek V4 Flash por defecto, se analiza en la revisión del modelo.

Verificación: qué debe suceder

Primero, asegúrate de que MiMo Code detecte el proveedor y la clave:

mimo models joingonka
mimo providers list

El primer comando lista los tres modelos de la red con sus ventanas, como en el ejemplo anterior; el segundo imprime la ruta al almacén de claves y la línea joingonka api. Después, una ejecución puntual. Coloca en el directorio del proyecto un archivo calc.py con un error evidente —por ejemplo, el área de un rectángulo donde los lados se suman en lugar de multiplicarse— y pídele que lo encuentre:

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

En la salida aparecerán el agente y el modelo (> build · deepseek-ai/DeepSeek-V4-Flash-0731), la llamada a la herramienta (→ Read calc.py) y una respuesta concreta, señalando la expresión errónea. El flag --format json convierte la salida en un flujo de eventos donde cada paso lleva su contador de tokens, y -m joingonka/<model-id> lanza la ejecución con otro modelo. En nuestra prueba, el ciclo «petición → llamada a herramienta → resultado → respuesta» lo completaron los tres modelos de la red.

La tercera comprobación es del lado de la pasarela: en el panel, dentro de «Uso», la petición aparecerá en el desglose «Por modelos», y en el bloque «Por claves» se actualizará la hora de la última petición.

Si algo falla, el diagnóstico suele leerse directamente en el mensaje:

Qué se veQué significaQué hacer
Error: Invalid API keyLa pasarela no aceptó la claveVerifica la clave en auth.json o vuelve a ejecutar el instalador; ten en cuenta que options.apiKey en el bloque del proveedor tiene prioridad sobre auth.json
Error: Method Not AllowedAl baseURL le falta el sufijo /v1La dirección debe ser exactamente https://gate.joingonka.ai/v1
Error: Model not found: joingonka/… Did you mean: …?El modelo no está en la lista models del proveedor; casi siempre porque el id se escribió sin el prefijo del vendedorToma el id completo de la sugerencia o de mimo models joingonka
permission requested: external_directory (…); auto-rejecting, y la ejecución termina sin respuestaEn mimo run, el acceso fuera del proyecto se rechaza y la ejecución se detiene. Ocurre cuando el modelo busca un archivo fuera del proyecto, por ejemplo en el directorio homeIndica que el archivo está en el directorio del proyecto; el acceso permanente al directorio necesario lo da la regla permission.external_directory
En mimo models joingonka, ventana 1MEl modelo no tiene limit, algo que sucede tras el asistente de Custom providerDefine limit en la configuración o ejecuta el instalador
429 … is currently overloaded in the Gonka network (rate limit)El modelo no tiene capacidad libre en la red en este momentoReintenta en un minuto o cambia a un modelo cercano con /models o el flag -m; el estado se ve en la página de estado
402Se agotaron los fondos en el saldoRecarga la cuenta en la sección «Facturación»; la clave sigue siendo válida
La respuesta se cortó a mediasEl flujo de respuesta se interrumpió por el camino, algo típico en horas puntamimo run -c "continue" retoma la última sesión desde el mismo punto

Cuánto cuesta esto

La herramienta de agente gasta tokens de manera diferente a un chat: a cada frase suya, MiMo Code añade un prompt del sistema, descripciones de herramientas y contexto de servicio del agente, y la tarea requiere varios pasos. En nuestra ejecución, cada solicitud al modelo consumió 22-25 mil tokens de entrada, y la tarea de "leer el archivo y encontrar el error" de dos pasos costó aproximadamente 45-50 mil tokens; casi todo es entrada. Por lo tanto, el precio por token aquí es lo que importa.

A través de JoinGonka Gateway, los tokens cuestan $0.0069 por millón de entrada y $0.021 por millón de salida; el precio es el mismo para todos los modelos de red y se obtiene en esta página desde una fuente en tiempo real.

EscenarioConsumoA través de Gateway
Tarea única: leer archivo, encontrar error45-50K tokenscentésimas de centavo
Día de trabajo activo3-7M tokensunidades de centavos
Mes de desarrollo activo~150M tokensalrededor de un dólar

Las estimaciones en la columna derecha son según los precios de septiembre de 2026. Para comparar, cómo se puede pagar por los modelos en MiMo Code:

MétodoCómo se pagaQué se necesita
Plataforma Xiaomi MiMosegún términos de la plataformacuenta Xiaomi MiMo, inicio de sesión vía navegador
Codexsuscripción ChatGPTplan ChatGPT Plus o Pro, inicio de sesión vía navegador
Clave de proveedor del catálogopor tokens según tarifa del proveedorclave separada para cada proveedor
JoinGonka Gatewaypor tokens del saldo prepagoclave jg-…; tres modelos de red al mismo precio, consumo visible en el panel

Su propia estimación de costo en MiMo Code para los modelos de la puerta de enlace es igual a cero: en sus registros no hay campo cost, y en los eventos --format json aparece "cost": 0. El consumo real y el saldo están en el panel, en las secciones "Uso" y "Facturación".

Qué tener en cuenta al trabajar

Permisos. En la interfaz, MiMo Code solicita confirmación para acciones arriesgadas, pero en mimo run no hay nadie a quien preguntar: él mismo rechaza las solicitudes de acceso fuera del proyecto. Para entornos efímeros de confianza, existe la bandera --dangerously-skip-permissions (o la variable MIMOCODE_DANGEROUSLY_SKIP_PERMISSIONS=1): esto permite todo lo que no esté prohibido por una regla explícita, solo dentro de un contenedor o sandbox. En la interfaz, un modo similar se activa durante la sesión mediante /skip-permissions.

Agentes. Por defecto, build funciona con el conjunto completo de herramientas, plan solo lee y analiza, y compose gestiona el proceso desde la especificación hasta el código verificado; se alternan con la tecla Tab.

Contexto largo. Al alcanzar el límite de la ventana, MiMo Code reconstruye el contexto a partir del último punto de control, la memoria del proyecto y los mensajes recientes; el umbral lo calcula basándose en limit.context. Se puede comprimir antes usando el comando /context-limit, por separado para cada modelo.

Qué depende de la cuenta Xiaomi. La entrada de voz (/voice) reconoce el habla mediante el modelo de la plataforma MiMo y está disponible tras iniciar sesión. El código, los comandos y los subagentes funcionan a través del proveedor conectado, en nuestra prueba sin necesidad de inicio de sesión alguno.

Imágenes. Los modelos de la red son textuales: en /modalities déjeles solo texto, y para capturas de pantalla, configure un segundo proveedor con un modelo capaz de visión.

MiMo Code y OpenCode son parientes con configuraciones diferentes. Cada uno tiene sus propios directorios y archivos, por lo que la configuración de uno no se transfiere al otro:

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

Versión. El proyecto se actualiza a menudo; para la reproducibilidad, fije la versión: npm install -g @mimo-ai/[email protected] o curl -fsSL https://mimo.xiaomi.com/install | bash -s — --version 0.1.15.

Existen agentes de los propios laboratorios también para las familias atendidas por la red: MiniMax Code funciona con el modelo de su proveedor MiniMax M2.7, y DeepSeek y Z.ai (autores de GLM) tienen sus propios agentes. Todos ellos se conectan a una única puerta de enlace (gateway) con una sola clave.

MiMo Code es el agente de terminal de Xiaomi MiMo, un fork de OpenCode con memoria de proyecto y puntos de control. No hay modelos MiMo en la red Gonka, pero el proveedor en el agente es intercambiable: npx @joingonka/setup --tool mimo-code registrará el proveedor joingonka en ~/.config/mimocode/mimocode.jsonc (adaptador @ai-sdk/openai-compatible, dirección https://gate.joingonka.ai/v1, DeepSeek V4 Flash, GLM-5.3 Flash y MiniMax M2.7 con limit honestos) y colocará la clave jg-… en el archivo nativo auth.json. El asistente /connect → + Custom provider hace lo mismo manualmente; después de eso, agregue los modelos y límites. Para verificar, use mimo models joingonka y mimo run; mantenga las rutas dentro del proyecto durante la ejecución única.

¿Quieres saber más?

Explora otras secciones o empieza a ganar GNK ahora mismo.

Obtener clave y tokens gratuitos →