Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

OpenCrabs es un agente de orquestación de IA autoalojado y agnóstico de proveedor que funciona como un único binario Rust. Automatiza tu terminal, navegador, canales (Telegram/Discord/Slack/WhatsApp/Trello) y código base, respetando tu privacidad y manteniéndote en control.

11,091 tests en providers, herramientas, channels, TUI, self-healing y automatización de browser.

Qué Hace Diferente a OpenCrabs

Cero Telemetría, Ni Siquiera Opt-In

  • OpenCrabs no llama a casa. Nunca. Sin analíticas, sin rastreo, sin estadísticas de uso, sin logs remotos, sin informes de fallos
  • Tus conversaciones, herramientas, memoria, configuración y claves API nunca salen de tu máquina
  • El único tráfico saliente es el que tú inicias explícitamente: llamadas a APIs de LLM, búsquedas web, comandos de GitHub, automatización de navegador
  • No es una casilla de política de privacidad: no hay código de telemetría que desactivar, ningún flag de opt-out, ningún servicio de analíticas que bloquear. Simplemente no hay nada que enviar

Agnóstico de Proveedor por Diseño

  • 16 proveedores integrados + Custom OpenAI Compatible: Anthropic Claude, OpenAI, Gemini, Xiaomi MiMo, OpenRouter, Qwen (DashScope), MiniMax, Ollama, z.ai GLM, GitHub Copilot, Codex, Codex CLI, OpenCode, OpenCode CLI, Moonshot AI (Kimi), Command Code CLI
  • Integración CLI nativa: usa Claude Code CLI, OpenCode CLI, Codex CLI y Command Code CLI como proveedores sin claves API
  • Cadena de fallback persistente: conmutación automática por rate limits o errores, persistencia consciente de salud que sobrevive a reinicios
  • Prompt caching en Anthropic, OpenRouter, Gemini y Qwen DashScope reduce costes hasta un 95%
  • Override de ventana de contexto: limita o amplía el contexto de cualquier modelo vía config (el provider OpenCrabs incorporado es la excepción: su ventana está fijada en 200k)
  • Xiaomi MiMo: 30+ modelos incluyendo la serie de razonamiento MiMo, proveedor con clave
  • Moonshot AI (Kimi): endpoints del plan API (api.moonshot.ai) y del plan Coding (api.kimi.com), config de reasoning-effort, ventana de contexto por nivel de plan

Multi-Agent Orchestration

  • Las sesiones son agentes totalmente aislados, cada una con su propio brain, proveedor, modelo, directorio de trabajo e historial
  • Sub-agentes tipados: general, explore, plan, code, research con acceso a herramientas a medida
  • Orquestación de equipos: team_create, team_broadcast, team_delete para workflows coordinados
  • Overrides de proveedor/modelo por llamada: mezcla modelos entre equipos (planear con GLM, programar con Deepseek, revisar con Kimi)
  • Protocolo A2A: gateway JSON-RPC 2.0 para comunicación agente-a-agente

Comunicación Nativa de Canales

  • Telegram, Discord, Slack, WhatsApp, Trello, integración completa de bot con DMs, grupos e hilos
  • Mensajes enriquecidos en Telegram: tablas nativas, encabezados, listas, matemáticas vía config rich_messages
  • Streaming de mensajes en borrador: actualizaciones de “escribiendo…” en vivo mientras se generan tokens en los DMs
  • Bloques plegables: secciones <details>/<summary> para salidas largas
  • Aislamiento de sesión por tema de foro: cada tema en supergrupos de Telegram tiene su propia sesión
  • Reacciones en Telegram: el bot lee las reacciones emoji entrantes y puede responder con una reacción en vez de un mensaje cuando encaja
  • Reacciones de encuadre (v0.3.61): las reacciones entrantes se leen por sentimiento, el agente se dirige al usuario por su nombre
  • Reacciones a mitad de turno (v0.3.61): una reacción durante un turno en ejecución se inyecta en el bucle actual en vez de disparar un segundo turno
  • Sugerencias de seguimiento (v0.3.69): seguimientos opcionales de toca-y-envía en Telegram, Discord, Slack y WhatsApp; rellenar-sin-enviar en la TUI
  • Re-pegado de tarjeta de plan en Telegram (v0.3.71): vuelve a fijar la tarjeta del plan y pliega la prosa en ella cuando queda enterrada
  • Captura completa del historial de grupo (v0.3.73): persiste cada mensaje de grupo en el historial, incluso de remitentes y bots fuera de la allowlist
  • Interlocutor correcto en grupos (v0.3.73): deja de dirigirse a un remitente del historial del grupo como si fuera el interlocutor actual
  • Herencia de sesión: /new hereda el directorio de trabajo de tu sesión más reciente
  • /goal en todos los canales: define objetivos autónomos desde Telegram, Discord, Slack y WhatsApp
  • Soporte de voz: Whisper STT local + Piper TTS, totalmente offline
  • Recuperación de fallos entre canales: las peticiones pendientes vuelven al canal de origen al reiniciar
  • /cowork: crea workspaces compartidos desde canales y la TUI
  • /rename, /profiles, /cd, gestiona sesiones, perfiles y directorios desde cualquier canal

Auto-Reparación y Automejora

  • Automejora Recursiva (RSI): el agente analiza su rendimiento, identifica patrones y reescribe sus brain files

  • Detección de tool calls fantasma: detecta cuando el modelo narra cambios sin ejecutar herramientas

  • Autocuración de fantasmas (v0.3.72): detecta turnos sin herramientas que afirman efectos secundarios de alto riesgo (ship/push/tag/release)

  • Ediciones de config solo vía config_manager (v0.3.74), el agente nunca edita en crudo config.toml/keys.toml; cada escritura se valida antes de aterrizar

  • Deduplicación de brain (v0.3.75): el comando /dedup más escaneos post-escritura y semanales entre archivos evitan que los brain files deriven hacia la duplicación, con aprobación por teclado inline en Telegram

  • Pistas de brain files en fallos de herramientas (v0.3.75), las notas relevantes del brain aparecen automáticamente cuando una llamada a herramienta falla o da error

  • Memoria proactiva (v0.3.76): la memoria relevante aparece sin que se lo pidan cuando el contexto de la conversación coincide con conocimiento almacenado

  • Nombres de modelos naturales (v0.3.76): /models opus funciona; los nombres coloquiales se resuelven a IDs exactos de modelo

  • Enrutado de proveedor planificar/ejecutar (v0.3.76), enruta la planificación y la ejecución hacia proveedores/modelos separados

  • Timeout de bucle de pensamiento (v0.3.78): detecta bucles de razonamiento infinitos, dispara la aplicación anti-fantasma con fallback persistente

  • Motor epistémico (v0.3.78): seguimiento de creencias con niveles de confianza, malla cognitiva OODA/BDI, puerta Orient antes de ejecutar planes

  • Puerta de verificación Ralph (v0.3.78): verificación de tareas consciente de criterios con tope de iteraciones; las tareas deben cumplir los criterios de aceptación establecidos

  • Puertas de seguridad TOML (v0.3.78): blocklist de bash configurable en caliente, redacción de secretos entrecomillados, verificación de brain files

  • Analíticas de Mission Control (v0.3.78): filtro D/W/M, rejilla de tarjetas de 3 en fondo, pestañas fantasma/modelo/streaming, BD de eventos dedicada

  • Onboarding de OpenAI TTS (v0.3.78): selector de voz y campo de clave API en el asistente de onboarding

  • Instalación vía Homebrew (v0.3.79): brew install opencrabs desde homebrew-core: binario precompilado, ambas arquitecturas, sin toolchain de Rust

  • /restart y /exit (v0.3.79): reinicia o apaga desde cualquier canal o la TUI; solo el owner en canales, anuncia antes de actuar

  • Cortacircuitos de cuota (v0.3.79): los proveedores con cuota agotada reciben un breaker con TTL y se saltan en los recorridos de fallback; el agotamiento de la cadena se informa explícitamente

  • Estado de plan entre sesiones (v0.3.79): los planes sobreviven a los límites de sesión; la ejecución aislada de tareas de plan viene activada por defecto, Ralph verifica en el directorio propio de la sesión

  • Sistema de temas (v0.5.0): presets verificados, un selector interactivo y tus propios temas en ~/.opencrabs/themes/*.toml; el truecolor se detecta con un nivel de reserva ANSI-256, y un preset cuyo contraste haría el texto ilegible se rechaza

  • Memoria estructural de código (v0.5.0): tree-sitter construye un índice de símbolos y de grafo de llamadas junto al índice de texto, de modo que “quién llama a X” recorre aristas de llamada reales mientras las preguntas conceptuales siguen la vía de texto (#1324)

  • Transferencia de archivos por SSH (v0.5.0): un archivo soltado en una TUI que corre en un host remoto se recupera por la conexión ya abierta, con un opencrabs drop-agent en el lado del cliente (#1289)

  • Veredictos de entrega de notify (v0.5.0): session_notify devuelve un resultado de envío legible por máquina, los recibos de inyección de profundidad 3 hacen verificable el notify_id, y la entrega se redirige a la session que posee el channel en ese momento

  • Compactación en segundo plano (v0.5.0): el resumidor corre fuera del turno en lugar de retener la session mientras trabaja

  • Redacción del token en la escritura (v0.5.0): un error de provider que lleve una URL ya no puede filtrar el token del bot a un log, sea cual sea el origen del registro (#1322)

  • Userbot de Telegram solo de recepción (v0.5.0, experimental): captura MTProto tras una feature, con inicio de sesión local por QR/código/2FA; almacena texto permitido para su consulta y nunca actúa como el usuario

  • Anclaje temporal (v0.5.1): el agente siempre sabe qué hora es: cada turno lleva una marca temporal en la zona horaria del usuario, y el prompt del sistema permanece byte a byte estable para la caché del proveedor (#1516)

  • Sesiones de cron por job (v0.5.1): cada job programado recibe su propia sesión, para que dos jobs en ejecución simultánea nunca compartan contexto ni proveedores (#1511)

  • Puerta de globs de skill (v0.5.1): la lista globs: de una skill puede rechazar llamadas a herramientas sobre ficheros coincidentes hasta que el agente haya leído el cuerpo de la skill (#1515)

  • Escrituras de config validadas contra la estructura (v0.5.1), la barrera de escritura y las sugerencias de sección de config_manager se derivan ahora del propio tipo Config, para no divergir jamás del código publicado (#1508)

  • Diseños de plan rechazados al escribir (v0.5.1): un diseño de plan malformado rebota al instante con las secciones que faltan nombradas, y una escritura rechazada restaura el scaffold en vez de borrar el borrador (#1507)

  • Contrapresión de presupuesto del proveedor (v0.5.1), un proveedor que informa un presupuesto de tokens de salida dispara una sola compactación acotada y un reintento, en vez de una cascada de 400 (#1518)

  • Tokens A2A atados y config solo del owner (v0.5.1), los tokens A2A se atan al gateway que los emitió, y config.toml/keys.toml pasan a modo exclusivo del owner, con secretos limpiados de los logs

  • Modo servidor ACP (v0.5.2): opencrabs acp habla el Agent Client Protocol sobre stdio JSON-RPC, así que Zed, MonoCode y cualquier cliente ACP manejan el mismo brain que usan tus channels, con streaming del progreso y aprobaciones que vuelven al editor (#1540)

  • Navegación consciente del shadow-DOM (v0.5.2): la resolución de selectores atraviesa shadow roots, así que la automatización alcanza web components que antes eran invisibles para las herramientas

  • Superficie completa de WhatsApp (v0.5.2): notas de voz nativas, vídeo/sticker/ubicación/contacto entrantes, votos de encuestas, recuperación de presencia y media, acuses de reacción, streaming con edición en el sitio, mensajes temporales, bloqueo de contactos, fijar/reenviar/perfil, actualizaciones de estado, descubrimiento de newsletters, botones de native flow, historial por chat

  • Tracing en vivo y tablas nativas en Discord (v0.5.2), los turnos largos se transmiten como una respuesta en vivo con tracing, las respuestas crean hilo automáticamente, las tablas markdown se renderizan de forma nativa y los turnos con herramientas ya no publican dos veces la respuesta final (#1603, #1608)

  • Temas de foro de Telegram y /clear (v0.5.2): crear/renombrar temas de foro con vinculación de session, y /clear inicia una session nueva sin la llamada al summariser (#1585)

  • Presupuesto del payload del menú de comandos (v0.5.2), setMyCommands de Telegram rechaza en silencio los cuerpos de petición por encima de ~7,8KB informando BOT_COMMANDS_TOO_MUCH; ahora las descripciones se acortan por niveles para que quepa el menú entero (#1613)

  • Cron con triggers (v0.5.3): un job corre un pre-flight check y solo ejecuta cuando tu condición se cumple (output no vacío, exit code, regex), los runs omitidos cuestan 0 tokens y un trigger disparado puede despachar un goal a una session (#233)

  • Windows de primera clase (v0.5.3): manejo de shell por plataforma, lectura BOM/UTF-16, fallbacks de tilde y cwd, con CI compilando Windows y aplicando gate a los PRs (#627)

  • Memoria epistémica (v0.5.3): los hechos de MEMORY.md llevan confidence y decay (#1643), las secciones frías se archivan solas y opencrabs memory prune muestra qué quedó frío antes de tocar nada (#1657)

  • Motor de temas terminado (v0.5.3): cada widget del TUI resuelve sus colores a través del tema, con un guard de suite contra nuevos sitios de ANSI crudo, y los temas pueden declarar un canvas background (#1634)

  • Encuestas de sugerencias en WhatsApp (v0.5.3): los conjuntos de follow-ups que superan el límite nativo de botones se renderizan como encuesta, y un voto selecciona la opción (#1616)

  • Familia de sessions ACP (v0.5.4): los sessions son first-class en la superficie ACP: el context meter se restaura al cargar y sigue las usage updates, session/load reproduce la transcripción y restaura el model del session, set_model persiste entre procesos, el session/set_mode nativo aplica la approval policy en el servidor, session/compact hace push, y session/new ofrece un catálogo de models en vivo

  • Entrega interactiva del terminal (v0.5.4): !vi/!nano toman el terminal de forma interactiva y lo devuelven con el session intacto; solo terminales Unix, en Windows se mantiene la captura por pipe (#1744, #1759)

  • Paste & drop universal (v0.5.4): un router de attachments compartido acepta cualquier tipo de archivo al pegar o soltar y clasifica código, docs, archivos y datos para que cada uno siga el pipeline correcto (#1740, #1743)

  • Motor de búsqueda Serper (v0.5.4): serper_search añade resultados Google SERP, y el fan-out de web_search deduplica por URL entre engines (#1731)

  • Decision cache (v0.5.4): decide_cached responde decisiones repetidas desde un anillo de reutilización L1 con tiers shadow/live y config [decisions] (#1648)

  • Costes reportados por el provider y una cadena de timeouts unificada (v0.5.4), el ledger de usage prefiere el coste que el provider reportó de verdad frente a estimaciones de tabla (#1707), y los flags de timeout se resuelven [providers.<name>] -> [agent] -> default en todos los providers (#1688)

  • Comandos compilados /architecture y /attach, audit trail opcional (v0.5.4), ambos comandos se distribuyen como arms compilados, y un audit trail opcional registra lo que corrió con un viewer /audit (#933, #1705)

  • Superficie nativa de Discord (v0.5.5): encuestas nativas vía send_poll, respuestas TTS entregadas como mensajes de voz, y commands.toml proyectado sobre los slash commands nativos para que tus propios comandos aparezcan en el selector de Discord (#1848, #1849, #1850)

  • Flow groups y governors de escritura (v0.5.5): Discord y Slack abren el flow group al inicio del turno con un reloj en vivo que cubre el pensamiento y el texto de actividad liderando la línea, y un solo governor de escritura compartido presupuesta cada edición y hace park en los 429 (#1841, #1843, #1844, #1845, #1807, #1808, #1809, #1910, #1912, #2012)

  • /respond_to y /cowork (v0.5.5): modos respond_to y open por canal en la configuración, más los dos comandos para definirlos desde el propio canal (#2014, #2015)

  • Disciplina de rate limit en Telegram (v0.5.5): polls de getUpdates y handoffs de handlers instrumentados para triage de stalls, un piso de espaciado sub-segundo entre superficies con telemetría de admisión, una pausa 429 por chat detrás de un único accessor Cooldown, y enlaces markdown a ficheros locales entregados como documentos (#1927, #1916, #1968)

  • Ciclo de vida de sessions ACP v1 (v0.5.5): los cinco métodos v1 de ciclo de vida de sessions están implementados y el plan se publica como una actualización de plan v1 nativa (#1815)

  • Footer de diálogo unificado, URLs clicables, timeline de onboarding (v0.5.5): todos los diálogos comparten un único command footer con verbos de aprobación a/r directos, las URLs y rutas de fichero son clicables, y el onboarding se reconstruyó como una timeline de pasos a la izquierda con comandos de configuración directos (#1775, #1772, #1979, #1980, #1981, #1982)

  • Jubilación de cron one-shot (v0.5.5): los jobs one-shot se jubilan al entregarse en vez de volver a dispararse un año después, cada ejecución entregada lleva su run id, y los reportes de cron de Discord llegan como un único post en el foro (#544, #1703, #1851)

  • Primera ejecución sin configuración (v0.5.11): una instalación nueva cae directo al chat con el provider incorporado ya provisionado, config.toml y keys.toml ya creados, y el agente saludándote. El asistente es opcional mediante /onboard o --onboard (#2079)

  • Un primer turno que no puede abortar el proceso (v0.5.11): los hilos worker del agente corren en una pila de 16 MiB, así que el primer turno ya no desborda la pila por defecto (#2080)

  • Etiquetas de release solo con CI verde (v0.5.11): el workflow de release lee la conclusión de la ejecución de CI del propio commit antes de publicar. Una ejecución roja falla la release, una ejecución aún en curso se espera, y un commit sin ejecución también falla (#2078)

  • Evolve reinicia las unidades correctas (v0.5.11): el reinicio programado apunta a nombres de unidades resueltos en vez del glob de descubrimiento opencrabs*.service, que también capturaba la unidad transitoria que ejecuta el reinicio e hizo que systemd detuviera su propio ejecutor (#2081)

  • Las guest queries de Telegram reciben la superficie completa (v0.5.12): una etiqueta en un chat donde el bot nunca fue invitado ejecuta la misma superficie de herramientas, el mismo bloque de estado en vivo y el mismo renderizado rich que un turno normal, con un turno cancelable por guest session y rate limiting (#2087, #2109, #2133, #2135, #2138, #2143)

  • Se exige un plan a partir de un umbral de tool calls (v0.5.12): cuando un turno supera un umbral de tool calls, el agente debe parar y escribir un plan antes de continuar (#2128)

  • El transcript sobrevive al cambio de session (v0.5.12): el mapa de pliegues se indexa por un ancla estable de role y timestamp en lugar de un UUID generado en cada render, así que cambiar de session y volver ya no pliega todos los turnos que habías abierto (#2155)

  • Las instalaciones headless aprovisionan el provider integrado (v0.5.12): opencrabs run, daemon, agent, acp y cron crean el token integrado en un home nuevo igual que ya hacía la TUI, mientras que status y doctor siguen en solo lectura (#2151)

  • Modo de reparación doctor –fix (v0.3.83): las filas de cron atascadas, los marcadores obsoletos y los permisos rotos se reparan al momento en vez de solo reportarse

  • Bloqueos de escritura por ruta (v0.3.83): las escrituras concurrentes al mismo archivo se serializan; el último escritor ya no gana en silencio

  • Aislamiento de worktree en sub-agentes (v0.3.83): cada agente hijo recibe su propio worktree y rama, así un fan-out no puede machacar el árbol compartido

  • Criterios de aceptación conscientes del tipo (v0.3.83), los criterios del plan se aplican contra la toolchain que el proyecto realmente usa (#1133)

  • Verificación de plan consciente del proyecto (v0.3.83), los planes verifican con los comandos propios del proyecto, no siempre cargo, y localizan el proyecto desde la carpeta de la sesión

  • /stop cancela de inmediato (v0.3.83): interrumpe durante el handshake del proveedor y las esperas de reintento (#1148)

  • Reanudación de sesión A2A (v0.3.83): las sesiones se reanudan por context id, el gateway se direcciona por perfil (#1159, #1161)

  • Perillas de razonamiento de DeepSeek (v0.3.83): DeepSeek recibe los parámetros de thinking que realmente lee, más gestión de turnos solo-con-tool-calls

  • Correlación de logs por session_id (v0.3.82): cada turno abre un tracing span que lleva su session id, y los cron jobs y el motor RSI tienen los suyos, así un solo grep reconstruye un turno completo desde un log diario compartido

  • Fiabilidad del logger (v0.3.82): el logger deja de perder eventos y de escribir en la terminal de la TUI; una escritura atascada ya no puede silenciar el logging de todos los demás hilos

  • Brain files del usuario protegidos (v0.3.82): a SOUL.md, USER.md y MEMORY.md nunca se les fusiona contenido de upstream, y las directivas van a AGENTS.md, que siempre está cargado

  • Unificación de secciones de config (v0.3.82): la escritura legada [gateway] se migra en disco a [a2a], así un solo nombre sobrevive a un ciclo de recarga

  • Caché por hash de chunk (v0.3.82): la memoria se salta re-embedder chunks cuyo contenido no ha cambiado

  • Binarios pre-release (v0.3.82): cinco objetivos de plataforma más SHA256SUMS, publicados como pre-release continuo para que los contribuidores prueben código no publicado sin esperar un tag. Se ejecuta bajo demanda, no en cada push

  • Salida ante rate-limit (v0.3.82): una ventana larga de rate-limit en Telegram devuelve de inmediato en vez de aparcar el envío en línea

  • Almacén de memoria in-tree (v0.3.81): la dependencia qmd se elimina; búsqueda SQLite FTS5 + vectorial propiedad del propio árbol

  • Rutas de índice externas (v0.3.81): la búsqueda de memoria lee índices fuera del directorio del perfil, default-deny en sesiones compartidas

  • Mermaid como imágenes en Telegram (v0.3.81): los diagramas se renderizan como imágenes mientras las tablas mantienen el formato nativo

  • Razonamiento de Qwen entre turnos (v0.3.81): preserve_thinking, perillas de thinking por familia, nivel de esfuerzo recomendado por defecto, Qwen hosted alcanzable desde todo

  • Arreglo de pérdida de claves en keys.toml (v0.3.81), las claves API de proveedores ya no se pierden en tiempo de ejecución; las claves envenenadas se auto-reparan

  • Detección temprana de bucles (v0.3.81): las rondas de herramientas repetitivas se detectan antes de que el proveedor rechace el turno

  • Puerta del motor RSI (v0.3.81): RSI autónomo desactivado por defecto en daemons headless, actívalo con rsi_enabled

  • Ámbito de memory_search (v0.3.80): busca en logs diarios (memory), brain files (brain) o ambos (all); los brain files se indexan al escribir

  • Recuperación de memoria por chunks (v0.3.80): los documentos se trocean antes del embedding para que los chunks posteriores sean buscables; el recall se ordena con BM25

  • Renderizado nativo de Slack (v0.3.80): tablas y encabezados llegan en el propio formato de Slack en vez de markdown en crudo

  • Comandos de canal con puerta de owner (v0.3.80): los comandos y skills personalizados son solo-owner en el brazo catch-all del canal en grupos

  • Puertas de convergencia RSI (v0.3.80): la automejora se pausa al converger, se retira en rachas de cero mejora, y calcula hashes de hallazgos por identidad estable

  • Guardas anti-bucle (v0.3.80): guardas de repetición por anuncio y casi-coincidencia en todas las herramientas; los kills del detector de bucles llegan a la cadena de fallback

  • Modo inventario del navegador (v0.3.80): browser_find a secas enumera cada elemento clicable de la página

  • Actualización de plantillas de brain files (v0.3.80), las plantillas de AGENTS.md, BOOT.md y SOUL.md cambiaron; el seeding nunca sobrescribe archivos existentes, así que haz diff contra src/docs/reference/templates/ y fusiona a mano si quieres los nuevos valores por defecto

  • Reconstrucción del brain del sistema: los brain files se reconstruyen desde disco al cambiar, sin reiniciar

  • Descubrimiento proactivo de herramientas: busca herramientas disponibles antes de declararse incapaz

  • Analizador de prompts multilenguaje (v0.3.67): PromptAnalyzer compartido con soft-nudge en TUI y Telegram, 6 paquetes de idioma (EN/ES/FR/ID/PT/RU)

  • Modo plan (v0.3.67-v0.3.68): pistas design/checklist, tarjeta de plan persistente, comando /plan <query>, auto-aprobación del agente cuando el usuario concede autonomía

  • Clic-para-expandir (v0.3.69): clic izquierdo en un bloque de tool-call o razonamiento para expandir solo ese bloque, complementando Ctrl+O

  • review_gate en skills (v0.3.70): declaración en frontmatter para skills de alto riesgo que exigen aprobación del usuario antes de efectos secundarios

  • Activación JIT de herramientas: herramientas extendidas activadas bajo demanda, sin pre-registro

  • Auto-reparación de config: repara automáticamente un config.toml roto, nunca envenena la última config buena

  • Gestión del presupuesto de contexto: umbrales de compactación 65% suave / 90% duro con fallback a LLM

  • Detección de streams atascados: ventana rodante de 2048 bytes detecta patrones repetitivos

  • Defensa anti-gaslighting: elimina los preámbulos de rechazo de herramientas a mitad de turno

  • Entrega de resultados de build (v0.3.61): los resultados de rebuild/evolve llegan a quien los pidió, a través de canales y TUI

Terminal UI

  • Renderizado markdown nativo: énfasis, listas, enlaces y tareas se renderizan directamente en la terminal
  • Medidor de rendimiento tok/s en tiempo real, tokens por segundo en vivo durante el streaming
  • Muestra de versión (v0.3.73): muestra la versión en ejecución en la cabecera de la TUI y en /help + /usage de los canales
  • Expansión de razonamiento en 3 estados (v0.3.74): clic o Ctrl+O alterna un bloque de razonamiento plegado → limitado → completo, así nunca inunda la vista
  • Cabeceras por turno (v0.3.75): cada turno recibe una cabecera resumen de una línea, su desarrollo se pliega en ella, y los turnos se pliegan por defecto para que la vista quede limpia
  • Agrupación de tool calls (v0.3.61): las llamadas consecutivas a herramientas colapsan en un bloque expandible, manteniendo la TUI limpia en operaciones de varios pasos
  • Plegado de texto intermedio (v0.3.61): el texto de procesamiento intermedio se pliega en el mismo log in-situ que las tool calls, así solo la respuesta final permanece visible
  • Búsqueda de sesiones: filtro de búsqueda + scroll de viewport en todas las sesiones
  • Paneles divididos: sesiones paralelas al estilo tmux con persistencia de layout
  • Pegado de imágenes del portapapeles: pega imágenes desde el navegador o cualquier app directamente en la TUI
  • Fijado del plan: el plan activo se fija al final del prompt en cada turno
  • Onboarding guiado por el agente: configuración inicial personalizada con flujo guiado
  • Bucle autónomo /goal: define un objetivo y el agente itera hasta que un juez LLM dice que está hecho, con controles de pausa/reanudación/estado
  • Auto-objetivos (v0.3.61): el agente puede definir y dirigir sus propios objetivos multi-turno vía la herramienta goal_manage sin que el usuario invoque /goal

Experiencia de Desarrollo

  • 50+ herramientas integradas: operaciones de archivos, bash, búsqueda web, ejecución de código, automatización de navegador, generación de imágenes, voz, renderizado de PDF
  • Búsqueda web paralela unificada (v0.3.73): web_search, exa_search y brave_search se disparan en paralelo bajo una única herramienta web_search
  • web_scrape: scraping nativo de URL a markdown con protección SSRF, rastreo de sitemaps, detección de JS-shell y exportación consciente de perfil
  • Detección de captcha de DDG (v0.3.73): detecta el captcha de DuckDuckGo vía HTTP 202 + comprobación estructural del formulario
  • Skill /github integrada: control completo de gh CLI para issues, PRs, revisiones de código y gestión de repos
  • Descubrimiento proactivo de herramientas: el agente encuentra herramientas antes de decir “no puedo”
  • Sistema de skills: plantillas de workflow con búsqueda difusa, auto-registradas como comandos slash
  • Herramientas dinámicas: definidas en tiempo de ejecución vía TOML (ejecutores HTTP + shell)
  • Sistema de proyectos: sesiones dedicadas con overlays de brain por proyecto, archivado de archivos e insignias de color
  • Edición hashline: edición de archivos anclada por hash con soporte por lotes y detección de colisiones
  • Mission Control: panel a pantalla completa con bandeja RSI, log de actividad y programación de cron
  • Auto-descarga de RTK: proxy de 4MB incluido para un ahorro del 53.5% de tokens en 100+ comandos
  • Protección de archivos confidenciales: claves SSH, .env y credenciales protegidas por defecto
  • AGENTS siempre cargado: reglas duras y gobernanza aplicadas en cada turno
  • debug_logs por config (v0.3.71): activa los logs de debug con hot-reload, sin reiniciar
  • Ámbito de redacción de secretos (v0.3.71): delimita la redacción a global/grupo/DM con el comando /redact
  • Ámbito de redacción de secretos (v0.3.71): delimita la redacción a global/grupo/DM con el comando /redact
  • debug_logs por config (v0.3.71): activa los logs de debug con hot-reload, sin reiniciar
  • Watchdog de tmux (v0.3.71): kill solo del panel, aviso de 30s, re-enganche automático
  • Plan-gate de tres estados (v0.3.71): GateDecision con bash yendo a aprobación en el Editing post-init
  • ToolHints estilo MCP (v0.3.71): modelo de riesgo para clasificar herramientas, alimenta la plan gate

Browser Automation

  • Soporte CDP completo: navegar, clicar, teclear, capturar, evaluar JS, buscar elementos
  • Modo headless o headed con capturas específicas por elemento
  • Persistencia de cookies/sesión entre sesiones del navegador
  • Aislamiento de pestañas por sesión: sin pisoteo del DOM entre sesiones

Descubrimiento de Directivas de Proyecto (v0.3.59)

OpenCrabs descubre automáticamente los archivos de reglas que otras herramientas de código con IA dejan en un repo. Apunta el agente a cualquier repositorio (vía /cd, un workspace de canal, o lanzándolo dentro de uno) y escanea las convenciones traídas por Claude Code, Cursor, Windsurf, Cline, Gemini CLI, GitHub Copilot, OpenCode y el estándar multi-herramienta AGENTS.md. Sin config, sin paso de importación.

FuenteArchivos
Estándar multi-herramientaAGENTS.md
Claude CodeCLAUDE.md, CLAUDE.local.md, .claude/CLAUDE.md, .claude/rules/**/*.md
Cursor.cursorrules, .cursor/rules/**/*.mdc
Windsurf.windsurfrules
Cline.clinerules (file or .clinerules/**/*.{md,txt})
Gemini CLIGEMINI.md
GitHub Copilot.github/copilot-instructions.md
OpenCode.opencode/AGENTS.md

El índice se reconstruye al hacer /cd a un nuevo directorio, así los archivos de directivas están siempre al día.

Inicio Rápido

# Install (Linux/macOS)
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
OS=$(uname -s | tr A-Z a-z)
TAG=$(command -v jq >/dev/null 2>&1 && curl -s https://api.github.com/repos/opencrabs/opencrabs/releases/latest | jq -r .tag_name || curl -s https://api.github.com/repos/opencrabs/opencrabs/releases/latest | grep -o '"tag_name":"[^"]*"' | cut -d'"' -f4)
curl -fsSL "https://github.com/opencrabs/opencrabs/releases/download/${TAG}/opencrabs-${TAG}-${OS}-${ARCH}.tar.gz" | tar xz
./opencrabs

# Or via Cargo (requires Rust 1.94+)
cargo install opencrabs --locked

Auto-actualización activada por defecto. Desactívala con [agent] auto_update = false en ~/.opencrabs/config.toml.

Architecture

┌─────────────────────────────────────────┐
│           OpenCrabs Binary              │
│  (Single 34-36 MB Rust executable)      │
├─────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────────┐  │
│  │   TUI       │  │   CLI Daemon    │  │
│  │  (crossterm)│  │  (systemd/launchd)││
│  └─────────────┘  └─────────────────┘  │
│                                         │
│  ┌─────────────────────────────────┐   │
│  │        Provider Registry         │   │
│  │  15 built-in + Custom OpenAI    │   │
│  │  Sticky fallback chain          │   │
│  └─────────────────────────────────┘   │
│                                         │
│  ┌─────────────────────────────────┐   │
│  │        Tool Layer                │   │
│  │  50+ built-in tools             │   │
│  │  Dynamic tools via TOML         │   │
│  │  JIT activation                 │   │
│  └─────────────────────────────────┘   │
│                                         │
│  ┌─────────────────────────────────┐   │
│  │        Channel Adapters          │   │
│  │  Telegram / Discord / Slack /    │   │
│  │  WhatsApp / Trello / Voice      │   │
│  └────────────────���────────────────┘   │
│                                         │
│  ┌─────────────────────────────────┐   │
│  │        Self-Healing Layer       │   │
│  │  Context budget / Stuck stream  │   │
│  │  Phantom detection / RSI        │   │
│  └─────────────────────────────────┘   │
│                                         │
│  ┌─────────────────────────────────┐   │
│  │        Persistence              │   │
│  │  SQLite + Brain files           │   │
│  │  FTS5 + vector search           │   │
│  └─────────────────────────────────┘   │
└─────────────────────────────────────────┘

Próximos Pasos

Comunidad y Soporte

¿Encontraste un bug o quieres una función? Abre un issue en GitHub.