Volver a las guías
Comparativa·21 de septiembre de 2026·Actualizado el 24 de septiembre de 2026·8 min de lectura

Crush frente a OpenCode: flujo de trabajo, modelos y coste total

El OpenCode archivado en Go se convirtió en Crush. El OpenCode que puedes instalar hoy es una base de código diferente; la verdadera elección es la licencia, los valores predeterminados de permisos y qué cartera financias.

Última revisión: .

Crush y OpenCode son agentes de programación gratuitos para terminal que no te cobran nada, y ambos te permiten apuntar a tu propio endpoint compatible con OpenAI o Anthropic, así que la elección no depende del precio del cliente. Depende de la licencia, los permisos predeterminados, el modelo de ejecución de la configuración y la cartera hacia la que te dirige cada proyecto. Crush es el agente de programación con IA de Charm —no el shell de Rust del mismo nombre—, está escrito en Go y se distribuye bajo FSL-1.1-MIT. OpenCode es el agente de TypeScript de opencode.ai, mantenido por Anomaly y distribuido bajo MIT.

Antes de leer con seguridad el resto, hay que aclarar dos trampas de nombres. «Crush CLI» también es el nombre de un proyecto no relacionado —liljencrantz/crush, que se describe como «un shell de línea de comandos que también es un potente lenguaje de programación moderno», escrito en Rust y sin relación alguna con la programación mediante IA—. Y existen dos repositorios llamados opencode, uno de los cuales es el antiguo nombre de Crush. Esa es la sección inmediatamente siguiente, porque equivocarse aquí invalida todas las comparaciones posteriores.

Tres proyectos, dos de ellos llamados OpenCode

La CLI de Go archivada no es una tercera opción en esta comparación. Es el antecesor de Crush, y el repositorio lo afirma con sus propias palabras: «Este repositorio ya no se mantiene y se ha archivado para conservar su procedencia. El proyecto ha continuado bajo el nombre Crush, desarrollado por el autor original y el equipo de Charm.»

ProyectoLo que es hoyLenguaje de programaciónLicenciaÚltimo lanzamiento
charmbracelet/crushActivo. El agente de programación con IA de Charm. La continuación del OpenCode de Go archivadoGoFSL-1.1-MIT (GitHub informa NOASSERTION)v0.95.0, 16 de septiembre de 2026
anomalyco/opencodeActivo. El OpenCode publicado en opencode.ai. Una base de código independiente creada el 30 de abril de 2025TypeScriptMITv1.18.31, 14 de septiembre de 2026
opencode-ai/opencodeArchivado. El antiguo nombre de Crush. No tomes de él configuraciones, proveedores ni preciosGoMITv0.0.55, 27 de junio de 2025

Metadatos del repositorio obtenidos de la API de GitHub el 19 de septiembre de 2026; versiones de los paquetes confirmadas en npm, donde @charmland/crush es 0.95.0 bajo FSL-1.1-MIT y opencode-ai es 1.18.31 bajo MIT. Ten en cuenta que el nombre del paquete npm opencode-ai pertenece al proyecto activo de Anomaly, mientras que opencode-ai también es la organización de GitHub del proyecto archivado; consultar solo npm no permite distinguirlos, así que comprueba la organización de GitHub. Hay un aspecto que esta página no pudo establecer: GitHub no devuelve una fecha de archivo para el repositorio antiguo, por lo que no se afirma ninguna fecha. Del mismo modo, github.com/sst/opencode ahora redirige a anomalyco/opencode y los pies de página de opencode.ai muestran «© Anomaly», pero no se encontró ningún anuncio de cambio de nombre fechado y procedente de primera mano; por eso se describe la transferencia, pero no se fecha.

Quién debería elegir cuál

Si esto te describeElegirPor qué, concretamente
Tu organización exige una licencia aprobada por la OSI para las herramientas de desarrolloOpenCodeMIT tanto en GitHub como en npm. Crush se distribuye bajo FSL-1.1-MIT, que restringe un Competing Use y solo se convierte en MIT en el segundo aniversario de cada versión
Quieres que el agente se detenga y pregunte antes de tocar cualquier cosaCrushCrush solicita permiso antes de las llamadas a herramientas de forma predeterminada; los valores predeterminados documentados de OpenCode son mayoritariamente allow
Quieres un agente más allá de la terminal: aplicación de escritorio, extensión para IDE, GitHub o GitLabOpenCodeSu documentación cubre una aplicación de escritorio, una extensión para IDE, web/compartir, integraciones con GitHub y GitLab, ACP, un SDK, un servidor y plugins
Quieres que tu configuración sea un archivo de datos que el equipo pueda revisar de un vistazoOpenCodeopencode.json son datos. Un crushrc es Bash, y $(...) dentro de crush.json se expande al cargar
Quieres una configuración que pueda ejecutar comandos de shell: extraer una clave de un gestor de contraseñas, elegir una rama según el nombre de hostCrushEse mismo modelo de ejecución es la funcionalidad. El propio ejemplo de Charm resuelve un token de MCP con $(op read ...)
Quieres una suscripción de $10 al mes con un conjunto fijo compuesto mayoritariamente por modelos de pesos abiertosOpenCodeOpenCode Go es ese producto. Crush puede leer el mismo OPENCODE_API_KEY, pero Crush no figura en la lista de clientes validados de Go
Quieres un único saldo prepago para modelos Claude, GPT y Gemini de vanguardiaCualquieraAmbos aceptan un endpoint de terceros sin restricciones del plan. El proveedor propio de Charm no ofrece ninguna de esas familias

En cuanto al coste de migración: la configuración del modelo es la mitad barata y el formato de configuración es la mitad cara. No existe ningún conversor entre un crushrc y un opencode.json, así que una configuración específica del proyecto debe reescribirse manualmente. Lo que se conserva es más amplio de lo que parece: ambos clientes admiten servidores MCP, servidores LSP y Agent Skills, por lo que la extensibilidad no los diferencia; solo lo hace su sintaxis. Ambos también tienen un modo no interactivo, así que no se trata de elegir entre una TUI y otra: el subcomando run de Crush se describe en su código fuente como «Run a single non-interactive prompt», y OpenCode documenta opencode run.

Permisos y ejecución de la configuración: la única diferencia de seguridad genuina

Estos dos proyectos parten en direcciones opuestas, y es la diferencia que más conviene conocer antes de dejar cualquiera de los dos suelto en un repositorio.

El README de Crush indica que, de forma predeterminada, Crush pide permiso antes de ejecutar llamadas a herramientas. Puedes ampliar esto con una lista plana de permisos permitidos o denegados —permissions allow view edit, permissions deny bash sourcegraph— o eliminarlo por completo con --yolo, que el código fuente describe como «Automatically accept all permissions (dangerous mode)».

OpenCode empieza desde el extremo contrario. Su documentación sobre permisos indica que la mayoría de los permisos tienen "allow" como valor predeterminado, mientras que doom_loop y external_directory tienen "ask" como valor predeterminado. A cambio, las reglas son más detalladas: los permisos se especifican por herramienta entre read, edit, glob, grep, bash, task, skill, lsp, question, webfetch, websearch, external_directory y doom_loop; aceptan patrones glob por herramienta, de modo que bash puede permitir git * y denegar rm *; las reglas se evalúan mediante coincidencia de patrones y gana la última regla coincidente; además, un agente puede sobrescribir el conjunto global. OpenCode también tiene una opción --auto que aprueba todo lo que no se haya denegado explícitamente, así que ambos clientes pueden configurarse para ser permisivos; simplemente no parten de ahí.

La segunda mitad es el formato de configuración. El README de Crush lo expresa claramente: «Tanto crushrc como crush.json son código de confianza; crushrc se ejecuta en un shell completo, y cualquier $(...) en crush.json se ejecuta al cargar. No inicies Crush en un directorio cuya configuración no hayas revisado». Crush lee ./.crushrc, después ./crushrc y luego ~/.config/crush/crushrc, por lo que un repositorio que hayas clonado puede incluir uno. Es una capacidad genuina —así es como se extrae una clave de un gestor de contraseñas— y también un riesgo genuino. El opencode.json de OpenCode son datos. Ambos hechos se verificaron el 18 de septiembre de 2026; el formato JSON antiguo de Crush está documentado como obsoleto y no recibe nuevas funciones, así que basa tu configuración en crushrc y no en JSON.

El dinero se gasta en la cartera, no en el cliente

Cada proyecto tiene un proveedor oficial propio, y sus catálogos son diferentes. Charm Hyper no vende ningún modelo Claude, GPT ni Gemini; OpenCode vende tanto un catálogo de vanguardia de pago por uso como una suscripción mensual de $10 con un conjunto separado compuesto mayoritariamente por modelos de pesos abiertos.

CarteraPrecio publicadoCatálogoQué significa para esta elección
Charm Hyper gratuito«Todos reciben 100 Hypercredits al mes», y «1 Hypercredit equivale actualmente a 5¢»23 modelos, en su mayoría familias de pesos abiertosLa incorporación predeterminada de Crush. Ningún modelo Claude, GPT ni Gemini
Suscripción de Charm Hyper«$20 /month» por «250 Hypercredits, refreshing daily»Los mismos 23 modelosLa periodicidad diaria aparece únicamente en la página de precios y no se repite en la documentación, así que no hagas cálculos basándote en ella
Charm Hyper prepago$5 = 100, $10 = 200, $20 = 400 Hypercredits; «Los Hypercredits prepagados nunca caducan»Los mismos 23 modelosTampoco se documenta si los créditos del plan se acumulan o caducan; confírmalo en tu cuenta antes de depender de ello
OpenCode ZenPago por uso por cada millón de tokens con crédito prepago; las comisiones de tarjeta se repercuten como «4.4% + $0.30 por transacción»Claude, GPT, Gemini y Grok de vanguardia, además de pesos abiertosSu documentación indica que vende al coste, con un margen añadido únicamente para cubrir las comisiones de procesamiento
OpenCode Go«una suscripción de bajo coste de $10/month»Principalmente modelos de pesos abiertos, aunque su propia tabla también incluye Grok 4.6 y GPT 5.6 LunaLos límites se expresan en dólares: 5 horas al 20% del límite mensual, semanal al 50% y mensual al 100%. Un suscriptor por espacio de trabajo

Los precios de Hyper y la lista de modelos se obtuvieron de su endpoint público de modelos el 18 de septiembre de 2026: 23 modelos, ninguno de ellos Claude, GPT o Gemini. La mayoría lleva nombres de familias de pesos abiertos —DeepSeek, Kimi, GLM, MiniMax, Qwen, gpt-oss-120b y Gemma— y uno, inkling, lleva la marca de Charm sin ningún modelo base documentado; por eso la afirmación de esta página es «ninguna familia propietaria de vanguardia», no «pesos abiertos en su totalidad». Los precios de los planes proceden de hyper.charm.land, consultado el mismo día. Conviene mencionar un conflicto si la privacidad forma parte de tu decisión: tanto el README de Crush como la página de precios de Hyper describen una retención cero de datos, mientras que la propia documentación de Hyper indica «una política estricta de retención máxima de 30 días» y sus preguntas frecuentes presentan la política de retención cero como una política que mantiene con sus proveedores de nube. Lee la frase de la documentación en lugar de la de marketing y confirma las condiciones de tu cuenta.

Aquí hay un hecho que contradice la narrativa habitual del bloqueo: Crush incluye OpenCode Zen y OpenCode Go como proveedores integrados identificados mediante OPENCODE_API_KEY, por lo que una cartera de OpenCode te acompaña a Crush. Sin embargo, la propia documentación de Go pide a los clientes que se identifiquen con su propio agente de usuario y que envíen un ID de sesión estable en una cabecera x-opencode-session; además, su tabla de clientes validados incluye Hermes, Claude Code, Codex, ZCode, Pi, jcode y Kilo Code CLI. Crush no aparece ni en esa lista ni en la lista problemática. La ausencia de una lista no demuestra que algo no funcione, y esta página no tiene pruebas en ningún sentido, por lo que no concluye nada. Pruébalo tú mismo antes de depender de ello. La opción de aportar tu propia clave en Zen también es más limitada de lo que parece: su documentación describe el uso de tus propias claves de OpenAI o Anthropic dentro de Zen, no un campo para una pasarela arbitraria.

Aportar tu propio endpoint en ambos clientes

Esta es la parte en la que ambos proyectos son realmente abiertos y en la que un usuario de Crush obtiene algo que Hyper no puede venderle en absoluto. Ninguno de los dos clientes restringe los proveedores personalizados a un plan.

El detalle más útil para un usuario de Crush: la URL base de Crush incluye /v1, tanto para los tipos compatibles con OpenAI como para los compatibles con Anthropic. Los propios ejemplos de proveedores personalizados del README escriben https://api.deepseek.com/v1 y https://api.anthropic.com/v1. Es la convención opuesta a la de Claude Code, cuyo ANTHROPIC_BASE_URL recibe un origen sin más porque el cliente añade la ruta; consulta la referencia de la URL base para entender por qué la misma pasarela se escribe de dos maneras. Para una clave de Kunavo, el valor de Crush es https://api.kunavo.com/v1.

~/.config/crush/crushrc
# crushrc is Bash. Treat it as executable code, not as settings.
provider add kunavo --type openai-compat \
  --base-url "https://api.kunavo.com/v1" \
  --api-key "$KUNAVO_API_KEY"

model add kunavo/claude-sonnet-5 \
  --name "Claude Sonnet 5" \
  --context-window 1000000 \
  --default-max-tokens 32000 \
  --price-input 1.4 \
  --price-output 7

Tres notas sobre ese bloque. Usa openai-compat, no openai: el README reserva openai para hacer proxy o enrutar a través de OpenAI. Las opciones --price-* solo alimentan la estimación de costes en pantalla de Crush; no cambian lo que se te factura, así que un error tipográfico produce una lectura incorrecta, no un cargo incorrecto. Y como crushrc es Bash, --api-key "$(op read ...)" es una forma documentada de mantener la clave completamente fuera del archivo. El equivalente de OpenCode es un archivo de datos, con la clave referenciada mediante {env:VAR}:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "kunavo": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Kunavo",
      "options": {
        "baseURL": "https://api.kunavo.com/v1",
        "apiKey": "{env:KUNAVO_API_KEY}"
      },
      "models": {
        "claude-sonnet-5": {
          "name": "Claude Sonnet 5",
          "limit": { "context": 1000000, "output": 128000 }
        }
      }
    }
  }
}

El campo npm selecciona el formato de comunicación: @ai-sdk/openai-compatible para un endpoint que sirve /v1/chat/completions, y @ai-sdk/openai para /v1/responses. OpenCode también puede sobrescribir el baseURL de un proveedor integrado sin declarar uno personalizado, por lo que hay dos rutas en lugar de una; las claves añadidas mediante /connect se guardan en ~/.local/share/opencode/auth.json (documentación del proveedor, consultada el 18 de septiembre de 2026). Kunavo publica una página de configuración para cada uno: OpenCode y Crush. Ninguno de los dos clientes se ha probado en tiempo de ejecución contra Kunavo, así que considera ambos bloques referencias de configuración y verifica con una tarea acotada.

Cuánto cuesta realmente una sesión

Las cifras siguientes son cálculos ilustrativos de tokens, no costes medidos de tareas ni un límite de facturación. Supón una sesión de agente que envía 200,000 tokens de entrada no almacenados en caché y recibe 15,000 tokens de salida: una suposición para comparar, no una medición de tu repositorio. Las tarifas son precios actuales del catálogo de Kunavo por cada millón de tokens, junto con las tarifas que OpenCode Zen publicó el 18 de septiembre de 2026 para los nombres de modelos que también ofrece. El catálogo de Zen no es un espejo del de Kunavo, por lo que una fila de abajo no tiene equivalente allí.

ModeloKunavo entrada / salida por cada 1MOpenCode Zen: entrada/salida por 1MEstimación de Kunavo para esta sesión
Claude Haiku 4.5$0.70 / $3.50$1.00 / $5.00$0.192
GPT-5.6 Terra$0.70 / $4.20No hay ninguna fila de Zen con este nombre$0.203
Claude Sonnet 5$1.40 / $7.00$2.00 / $10.00$0.385
Claude Opus 5$3.50 / $17.50$5.00 / $25.00$0.963

Lee con honestidad las dos columnas centrales. En Claude Sonnet 5 los dos catálogos son idénticos a $1.40 y $7.00, así que no hay ningún ahorro que afirmar; las diferencias están en las otras filas. La fila de Claude Haiku 4.5 de Zen es $1.00 y $5.00 frente a $0.70 y $3.50 de Kunavo, y la fila de Claude Opus 5 de Zen es $5.00 y $25.00 frente a $3.50 y $17.50 de Kunavo. Tres advertencias antes de basarte en ello. Zen no incluye ningún modelo llamado GPT-5.6 Terra; el 18 de septiembre de 2026, sus filas de GPT eran GPT 6 Astra y GPT 5.6 Sol, ninguno de los cuales es el mismo modelo, así que esa fila se deja deliberadamente en blanco en lugar de rellenarla con un modelo similar. Además, son tarifas de catálogo publicadas en una fecha, no un benchmark ni una promesa de que ninguna ruta sea la forma más barata de terminar tu tarea: un modelo que necesite un segundo intento elimina rápidamente la ventaja de una tarifa. Cuatro filas tampoco constituyen todo el catálogo de ninguno de los dos lados.

Ahora, el punto que justifica la existencia de esta página. El coste mostrado y el coste facturado son cifras diferentes en ambos clientes. La lista de modelos predeterminada de Crush y sus estimaciones de costes proceden de Catwalk, un catálogo externo que se actualiza automáticamente; para un proveedor personalizado registrado manualmente, las cifras son simplemente las que introdujiste en model add. Los propios productos de OpenCode muestran lo mismo sin intervención de terceros: DeepSeek V4 Flash cuesta $0.14 de entrada / $0.28 de salida en Zen, $0.15 / $0.60 en Go fuera de las horas punta y $0.30 / $1.20 en Go en horas punta (documentación del proveedor, 18 de septiembre de 2026). El registro de Catwalk para ese modelo coincide con el par fuera de las horas punta, por lo que una lectura de costes de Crush para él subestimaría silenciosamente el uso en horas punta. Reconcilia los datos con el libro mayor que haya registrado realmente tu cuenta del proveedor, nunca con la cifra del terminal.

El importe del catálogo de Kunavo es un mínimo de facturación, no un límite: cuando el proveedor ascendente informa de su cargo, la factura es el mayor entre el coste del catálogo y el coste del proveedor ascendente multiplicado por el margen aplicable. Los cargos de caché y las herramientas externas quedan fuera de este ejemplo. La recarga mínima es de $10 en crédito prepago — un mínimo de financiación, no una tarifa por tarea ni una suscripción. Consulta detalles de facturación.

Configurar uno de los dos

Si eliges OpenCode, empieza por la guía de integración de OpenCode y crea una cuenta de Kunavo para financiar una clave. Si eliges Crush, el bloque crushrc anterior contiene toda la configuración; mantén disponible una ruta funcional, ejecuta una tarea acotada y consulta el cargo que registró tu cuenta antes de cambiar tu herramienta de uso diario. ¿Quieres comparar más opciones? OpenCode frente a Claude Code y Alternativas a OpenCode amplían el panorama, y la referencia de la API compatible con OpenAI cubre la convención de endpoint en la que se basan ambos clientes.

Preguntas frecuentes

¿Crush es el mismo proyecto que OpenCode?

No es el proyecto actual, aunque la confusión es comprensible. Hubo dos proyectos llamados opencode. La CLI de Go en github.com/opencode-ai/opencode está archivada, y su propio README indica que el proyecto continuó bajo el nombre Crush, desarrollado por el autor original y el equipo de Charm. Por tanto, ese OpenCode es el antiguo nombre de Crush, no un competidor. El OpenCode que puedes instalar hoy es una base de código distinta, escrita en TypeScript, en github.com/anomalyco/opencode: se creó el 30 de abril de 2025, utiliza la licencia MIT y se publica en opencode.ai. Comparar Crush y OpenCode significa comparar el agente de Go de Charm con el agente de TypeScript de Anomaly; no significa comparar dos bifurcaciones de una misma base de código.

¿Crush es de código abierto?

No utiliza una licencia aprobada por la OSI, lo que importa si tu empresa tiene una política de licencias. El LICENSE.md de Crush es la Functional Source License, Version 1.1, MIT Future License, abreviada como FSL-1.1-MIT, con copyright 2025-2026 Charmbracelet, Inc. La propia API de licencias de GitHub la informa como NOASSERTION, en lugar de un identificador SPDX reconocido. La licencia permite el uso interno, la educación y la investigación no comerciales y los servicios profesionales para un licenciatario, pero excluye lo que denomina Competing Use; también concede una licencia MIT irrevocable efectiva en el segundo aniversario del lanzamiento de cada versión. OpenCode, en cambio, es MIT sin modificaciones tanto en GitHub como en npm.

¿Cuál es más barato, Crush u OpenCode?

Ninguno, porque ninguno de los dos clientes cobra nada. Crush es una descarga gratuita y OpenCode también; lo que pagas son los tokens del modelo al proveedor que configures. La diferencia de coste la crea la cartera hacia la que cada uno te dirige, y ambos aceptan un endpoint de terceros compatible con OpenAI sin restricciones de plan. Ten en cuenta también que la tarifa más baja publicada y el menor coste para terminar una tarea son cosas distintas: un modelo que necesita tres intentos puede costar más que uno más caro que necesita uno.

¿Puedo usar mi propia clave de API o una puerta de enlace con Crush?

Sí, y es una ruta documentada de primera clase sin restricciones de plan. El README de Crush documenta proveedores personalizados de tipo openai, openai-compat, anthropic y varios tipos locales. Para una puerta de enlace de terceros compatible con OpenAI, el tipo correcto es openai-compat; el README de Crush advierte que openai es para crear proxies o enrutar a través de OpenAI, mientras que openai-compat es para proveedores que no son OpenAI y tienen API compatibles con OpenAI. Registra el proveedor con provider add y, después, cada modelo con model add, incluidos los precios por millón que Crush utiliza para su estimación de costes en pantalla. El descubrimiento automático se ejecuta cuando la lista de modelos de un proveedor openai-compat está vacía o cuando pasas --discover-models true.

¿Charm Hyper me proporciona modelos Claude, GPT o Gemini?

No. El endpoint público de modelos de Hyper en hyper.charm.land/v1/models devolvió 23 modelos el 18 de septiembre de 2026, y entre ellos no hay ninguna serie Claude, GPT-5 o GPT-6, ni Gemini. La mayoría de los identificadores pertenecen a familias de pesos abiertos —DeepSeek, Kimi, GLM, MiniMax, Qwen, gpt-oss-120b y variantes de Gemma— y uno, inkling, es un identificador de marca Charm cuyos pesos subyacentes no describe la documentación de Hyper; por eso esta página no caracteriza todo el catálogo como pesos abiertos. Hyper es el proveedor oficial de Crush: el README de Crush llama a elegir un modelo de Hyper desde el selector de modelos la forma más rápida de empezar y enumera HYPER_API_KEY en su tabla de variables de entorno; sin embargo, un usuario de Crush que quiera un modelo Claude, GPT o Gemini de frontera debe configurar otro proveedor. Nada en Crush lo impide.

¿Cuál es la diferencia entre OpenCode Zen y OpenCode Go?

Son dos productos de pago independientes del mismo proveedor, con dos endpoints distintos, y el mismo modelo puede costar importes diferentes en cada uno. Zen ofrece crédito prepago de pago por uso para un catálogo de modelos de frontera, facturado por millón de tokens; su documentación indica que vende al coste, con un margen únicamente para cubrir las comisiones de procesamiento, y repercute las comisiones de tarjeta al 4,4 % más 0,30 $ por transacción. Go es una suscripción de 10 $ al mes sobre un catálogo separado compuesto principalmente por modelos de pesos abiertos —su propia tabla también incluye Grok 4.6 y GPT 5.6 Luna—, con límites de uso denominados en dólares: un límite de 5 horas al 20 % del límite mensual, un límite semanal al 50 % y el límite mensual al 100 %; solo un miembro por espacio de trabajo puede suscribirse. DeepSeek V4 Flash ilustra la diferencia: 0,14 $ de entrada y 0,28 $ de salida en Zen, frente a 0,15 $ de entrada y 0,60 $ de salida fuera de las horas punta y 0,30 $ de entrada y 1,20 $ de salida en horas punta en Go; todos estos datos se consultaron en la documentación del proveedor el 18 de septiembre de 2026.

¿Qué dificultad tiene trasladar un proyecto de uno al otro?

La parte costosa no es la configuración del modelo, sino la postura de permisos y el formato de configuración. Crush lee un crushrc, que es Bash con elementos integrados de Crush, en el orden ./.crushrc, ./crushrc y luego ~/.config/crush/crushrc; el antiguo crush.json aún es compatible, pero está documentado como obsoleto y congelado para nuevas funciones. OpenCode lee un archivo de datos opencode.json. No existe ningún conversor entre ambos, así que la configuración específica del proyecto debe reescribirse manualmente. Ambos clientes admiten servidores MCP, servidores LSP y Agent Skills, por lo que esas capacidades sobreviven al traslado aunque sus declaraciones no lo hagan.

Los metadatos del repositorio, las versiones publicadas y las versiones de npm se comprobaron mediante la API de GitHub y el registro de npm el 19 de septiembre de 2026; las licencias, los README, los archivos fuente de Crush y la documentación de Charm Hyper, OpenCode Zen, OpenCode Go, permisos y proveedores se comprobaron del 18 al 19 de septiembre de 2026. Las tarifas de tokens de Kunavo proceden del catálogo actual. No se realizaron pruebas de compatibilidad, rendimiento ni benchmarks de ninguno de los dos clientes para esta página, y no se afirma haberlas realizado; cada ejemplo en dólares es un cálculo ilustrativo de tokens, no un coste medido de una tarea.