Cambiar de agente te cuesta las reglas que ya escribiste, no la instalación


Tienes un CLAUDE.md que llevas un año editando: mitad convenciones reales, mitad disculpas a tu yo del pasado. Tienes un muro de reglas Bash(...) que ya no recuerdas haber añadido, cuatro servidores MCP cableados en un proyecto secundario y una docena de skills donde cada una guarda una lección que salió cara. Has leído lo suficiente sobre Hermes como para querer probarlo. Y entonces haces el cálculo de reescribirlo todo, recuerdas que vas a olvidar justo la regla que evita que el agente pida permiso cuarenta veces al día, y cierras la pestaña.

Esa tarde es exactamente para lo que existe hermes import-agent. Lee el directorio de configuración de otro agente, deduce qué puede traspasar y te enseña el plan punto por punto antes de escribir un solo byte.

Tres términos se repiten más abajo. Un servidor MCP es un servidor de herramientas al que el agente puede llamar —una base de datos, un navegador, un gestor de incidencias— descrito por un pequeño bloque de configuración. Una allowlist es el conjunto de comandos de shell que el agente puede ejecutar sin detenerse a preguntar. Una skill es un directorio con un archivo SKILL.md que enseña un procedimiento.

Instalar tarda un minuto; el activo de verdad es la configuración

Nadie duda porque instalar Hermes sea difícil: dudan porque el valor está en la configuración acumulada. El archivo de instrucciones que costó meses de “no, deja de hacer eso”; las reglas de aprobación que codifican tu tolerancia al riesgo; los servidores MCP que costaron una tarde entera depurando cabeceras. Cada uno vive en un formato distinto según el agente, y ninguno es portable por defecto.

Reescribir a mano pierde la configuración que olvidaste que tenías, porque no puedes copiar de memoria algo que nunca escribiste de forma consciente, y una herramienta que copia mecánicamente no se aburre en el elemento nueve.

hermes import-agent admite cuatro orígenes: OpenClaw (~/.openclaw, incluidos los nombres antiguos ~/.clawdbot y ~/.moltbot), Claude Code (~/.claude), OpenAI Codex CLI (~/.codex) y Cursor (~/.cursor).

Instala el importador una vez y pide el plan

El importador se distribuye como plugin oficial, agent-importers, mantenido por Nous Research en el directorio agent-importers del repositorio hermes-official-plugins. Instálalo una vez por profile: los plugins son por profile, así que un segundo profile necesita el mismo comando:

hermes plugins install agent-importers

El plugin se movió hace poco: v0.22.4 (2026-10-21) lo sacó del núcleo al catálogo y añadió Cursor como origen, y v0.22.5 (2026-10-23) menciona hermes import-agent y que el setup ofrece un importador cuando detecta otro agente.

Sin argumentos, el comando sondea los cuatro directorios. Con uno, va directo a ese origen:

hermes import-agent                    # probe ~/.openclaw, ~/.claude, ~/.codex, ~/.cursor
hermes import-agent openclaw           # from ~/.openclaw
hermes import-agent claude-code        # from ~/.claude
hermes import-agent codex              # from ~/.codex
hermes import-agent cursor             # from ~/.cursor
hermes import-agent claude-code --dry-run           # plan only
hermes import-agent codex --source /path/to/.codex  # non-standard location
hermes import-agent claude-code --overwrite --yes   # resolve conflicts, skip prompts

Lo que la primera forma no hace es mezclar cuatro agentes en un montón y esperar que salga bien. Informa por origen y por elemento: encontrado, se escribirá, omitido y por qué. --dry-run da el mismo informe y no toca nada en disco. --overwrite resuelve los conflictos a favor de la importación; --yes se salta la confirmación, lo cual está bien en un bootstrap automatizado y es arriesgado cuando ya has editado el destino a mano.

hermes setup en una instalación nueva ejecuta el mismo sondeo primero. Cuando encuentra algo pregunta “¿Importar tu configuración desde Claude Code?” y dice qué encontró; cuando encuentra varios, te da una checklist con todo marcado. Si dices que sí y al profile le falta agent-importers, el setup lo instala desde el catálogo y ejecuta el mismo flujo de plan, vista previa y confirmación. Si lo rechazas, o no encuentra nada, no se instala nada.

OpenClaw tiene un matiz ahí: el setup pasa --migrate-secrets automáticamente, reutilizando el paso de migración de OpenClaw que ya venía integrado, de modo que las API keys y los tokens de bot cruzan y las secciones de provider y de plataformas de mensajería ya están rellenas. Si después eliges Quick Setup y la importación trajo un modelo con su key, el setup pregunta si mantener ese modelo (lo predeterminado) o pasarse a Nous Portal.

Qué entrega realmente cada origen

De cada origen se leen las mismas cuatro categorías —instrucciones, aprobaciones, servidores MCP y skills—, pero los formatos difieren lo suficiente como para leerlos primero.

Origen Qué lee Dónde acaba
Claude Code instrucciones globales de CLAUDE.md entradas de memoria en ~/.hermes/memories/MEMORY.md
Claude Code permissions.allow en settings.json command_allowlist en config.yaml
Claude Code permissions.deny en settings.json approvals.deny en config.yaml
Claude Code mcpServers, desde ~/.claude.json y settings.json mcp_servers en config.yaml
Claude Code directorios skills/ que contienen un SKILL.md ~/.hermes/skills/claude-code-imports/
Claude Code comandos de barra commands/*.md omitidos, con la sugerencia de reescribirlos como skill
Codex CLI instrucciones globales de AGENTS.md entradas de memoria
Codex CLI config.toml [mcp_servers.*] mcp_servers
Codex CLI memories/*.md entradas de memoria
Codex CLI directorios skills/ ~/.hermes/skills/codex-imports/
Cursor AGENTS.md entradas de memoria
Cursor rules/*.md y rules/*.mdc (User Rules) entradas de memoria
Cursor mcpServers en mcp.json mcp_servers
Cursor directorios de skills skills/**/ ~/.hermes/skills/cursor-imports/
OpenClaw ~/.openclaw (más ~/.clawdbot, ~/.moltbot) un mapeo más amplio, descrito abajo

Los archivos .mdc de Cursor llevan frontmatter —description, globs, alwaysApply—, que es información de enrutado para el motor de reglas de Cursor. Se descarta y solo el cuerpo se convierte en memoria: esas claves no significan nada para Hermes, y arrastrarlas crearía reglas que parecen activas pero nunca se disparan. Las skills de Cursor pueden estar en carpetas de categoría, así que skills/shipping/land-it/ se importa como cursor-imports/land-it/: el directorio hoja es la skill, porque una skill es el directorio que contiene un SKILL.md. Dos skills con el mismo nombre en carpetas distintas se reportan como conflicto.

Los comandos de barra de Claude Code son la otra negativa honesta. commands/*.md se omite con un mensaje en vez de convertirse, y la sugerencia es reescribirlo como skill, porque un comando de barra y una skill se invocan de formas distintas, y una conversión mecánica solo aparentaría funcionar.

Las reglas de allow no se traducen forma por forma

El mapeo es mecánico pero no simétrico, y es la parte del plan que conviene leer con atención.

Una regla de prefijo Bash(...) de Claude se convierte en un glob: Bash(npm run test:*) llega como npm run test*. La intención sobrevive —“esta familia de comandos, sin preguntas”—, pero la notación no. Si quieres apretar lo que ha cruzado, el modelo de aprobaciones se explica en configurar aprobaciones inteligentes.

Las reglas que no son Bash toman el otro camino. Read(...), WebFetch y sus parientes gobiernan herramientas que existen en Claude Code y no en Hermes, así que se reportan como no mapeadas en lugar de forzarlas dentro de algo que se les parezca: una línea de “unmapped” es mejor que una clave de configuración que se comporta distinto de lo que querías decir.

Las credenciales nunca forman parte de la carga

Las API keys y las credenciales nunca se importan, y eso es lo que hace que esto sea seguro en un portátil de trabajo. Los archivos de credenciales —~/.claude/.credentials.json, ~/.codex/auth.json, ~/.cursor/cli-config.json— no se leen en absoluto. Cuando un bloque de servidor MCP lleva variables de entorno o cabeceras cuyos nombres huelen a secreto (*_TOKEN, *_API_KEY, Authorization), esos valores se eliminan y se listan en el informe, para que puedas devolverlos sabiendo exactamente cuáles se fueron.

Hay dos rutas para restaurarlos: hermes setup para la configuración del provider, o escribir los secretos en ~/.hermes/.env. Para evitar keys en texto plano dentro de un dotfile, la alternativa respaldada por el keychain está en cifrado de secretos.

La única excepción es OpenClaw, y es opt-in: solo un --migrate-secrets explícito traspasa las API keys y los tokens de bot que están en la allowlist.

Tres cosas que tienes que terminar a mano

El importador mueve estructura; no puede terminar el trabajo.

Devuelve los secretos a su sitio. Cada servidor MCP cuyas cabeceras se vaciaron necesita su token antes de conectar, y las credenciales ausentes aparecen como una herramienta que falla en la primera llamada, no como un error de importación. Cómo se resuelven los servidores MCP y las variables de contexto está en config MCP y variables de contexto.

Reescribe los comandos de barra. Un comando /review o /ship se omitió. El reemplazo es una skill, normalmente veinte minutos por comando, y vale la pena hacerlo en el orden en que los usas de verdad.

Relee las aprobaciones. La allowlist y la lista de denegación importadas son un primer borrador hecho por una herramienta que nunca vio tu tolerancia al riesgo. Comprueba que cada glob coincide con lo que crees que coincide y que nada importante acabó en el informe de no mapeados. Si cruzó más texto de instrucciones del esperado, la cadena de directorios de AGENTS.md explica cómo se apilan los archivos de instrucciones en Hermes.

Vigila esto antes de pulsar sí

  • Los plugins son por profile. Un agent-importers instalado para tu profile principal no hace nada por el segundo.
  • Los conflictos se reportan, no se resuelven en silencio. Dos skills de Cursor con el mismo nombre, o un archivo que ya existe en el destino, aparecen como conflictos. --overwrite los resuelve a favor de la importación.
  • OpenClaw tiene su propia guía y sus propios flags. Esa guía cubre el mapeo completo —persona, memoria, skills, providers de modelo, plataformas de mensajería, comportamiento del agente, servidores MCP— además de --preset, --migrate-secrets, --workspace-target y --skill-conflict, una copia de seguridad previa a la migración y hermes claw cleanup después. La forma antigua hermes claw migrate sigue ejecutando la misma importación.
  • Las instalaciones no estándar necesitan --source. Si Codex vive fuera de ~/.codex, el sondeo no lo va a encontrar.

La mitad de transcripción la hace el importador sin erratas, y te entrega un recibo de todo lo que dejó a tu criterio.