Sobre el proyecto
Fermix es una plataforma personal de agentes de IA autohospedada escrita en Elixir/OTP. Se ejecuta como un demonio en segundo plano en tu propia máquina y te llega a través de las aplicaciones de chat que ya usas. Tú aportas tu propia clave de proveedor de modelo; no hay nube de Fermix, y tu configuración, historial y registros permanecen en `~/.fermix`.
**Características clave:**
- **Un solo runtime:** Todo es una única aplicación Elixir/OTP en una sola máquina virtual BEAM; sin puentes HTTP, grupos de trabajo externos ni intermediarios de mensajes. Agentes persistentes, conversaciones concurrentes y subagentes en proceso surgen de ese diseño.
- **Te llega a cualquier lugar:** Telegram, WhatsApp, Slack, Discord, Signal y una CLI local terminan en el mismo bucle de agente. Un compañero de iPhone de primera parte (canal móvil) es trabajo base, inactivo detrás de un indicador de configuración hasta que se lance la aplicación.
- **Trae tu propio modelo:** Siete proveedores (OpenAI, OpenAI Codex, Anthropic, SpaceXAI, OpenRouter, Mistral y un Ollama local sin clave) elegidos como uno principal con una cadena de respaldo automática. Los subagentes y trabajos programados pueden fijarse a su propio modelo más barato.
- **Siempre activo:** Los trabajos programados ejecutan resúmenes, vigilantes, recordatorios y comprobaciones; cada uno aislado, limitado, almacenado de forma duradera y entregado a través de tus canales. El trabajo sobrevive a reinicios.
- **Autocontenido:** Se entrega como un binario autoextraíble por plataforma e instala una unidad de servicio del sistema operativo en el primer uso.
**Inicio rápido:**
```bash
brew install tezra-io/tap/fermix
fermix setup
```
`fermix setup` instala y arranca el servicio en segundo plano, luego imprime la URL de configuración y abre `http://127.0.0.1:4030/setup` en tu navegador para finalizar la configuración. En un host sin interfaz gráfica ejecuta un asistente de terminal en su lugar (`--cli` lo fuerza); `--no-service` configura sin instalar el servicio, y `--no-browser` imprime la URL en lugar de abrir una.
**Instalación:**
- Homebrew (macOS, Linux): `brew install tezra-io/tap/fermix` (requiere `cosign` para verificación de complementos)
- Compilar desde el código fuente: Requiere Elixir ≥ 1.17, Erlang/OTP 28 y Zig 0.15.2. Clona, `mix deps.get`, compila activos, empaqueta con Burrito, instala el binario, luego `fermix setup`.
**Configuración:**
`fermix setup` es el único punto de entrada para la configuración inicial. Escribe una instantánea tipada en `~/.fermix/config.toml` y crea raíces de espacio de trabajo (`skills`, `journals`, `realtime`, `traces`, `logs`, `auth.json`). Los modos de autenticación del proveedor (clave API vs. OAuth), configuración de canales y programación se cubren en el README.
Precedencia en tiempo de ejecución: valores predeterminados en tiempo de compilación → estado de configuración persistido → anulaciones de variables de entorno.
La entrega de trabajos programados puede apuntar a un destino explícito por trabajo o a un destino de canal predeterminado específico de cron en `config.toml`. La transcripción de notas de voz es conectable (OpenAI, SpaceXAI, Deepgram).
**Variables de entorno:**
Las variables de credenciales son opcionales si usas `fermix setup` (que almacena secretos en tu llavero del sistema operativo). Para despliegues sin interfaz gráfica o en contenedores, establece `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `XAI_API_KEY`, `OPENROUTER_API_KEY`, `MISTRAL_API_KEY`, más tokens de canal (WhatsApp, Discord, Slack, Signal) y perillas operativas como `FERMIX_HOME`, `FERMIX_TRACE_DIR`, `FERMIX_LOG_FILE`, `FERMIX_HTTP_BIND` y ajustes de voz en tiempo real.
**Uso:**
- Control del demonio: `fermix service install`, `start`, `status`, `ask`, `logs`, `stop`, `restart`, `service uninstall`
- Compañero de voz local (FermixPet): aplicación macOS nativa opcional que habla con el demonio a través de un socket Unix; habilítalo desde la página de configuración, verifica con `fermix voice status`
- Canales: Telegram (long-poll), WhatsApp (webhook), Slack (Events API), Discord (Gateway), Signal (`signal-cli`), CLI y móvil (inactivo)
- Endpoints HTTP: `/health/live`, `/health/ready`, `/health`, `/setup`, webhooks de WhatsApp/Slack
**Referencia CLI:** Incluye `setup`, `auth login`, `run`, `service install/uninstall`, `start/stop/restart`, `status`, `health`, `voice status`, `pair`, `devices list/revoke`, `ask`/`chat`, `sandbox explain`, `grant path`, `revoke path`, `agents`, `capabilities`, `skills`, `plugins`, `memory`, `logs`, `upgrade`, `doctor`, `version`, `help`.
**Comandos de canal:** `/compact`, `/new`, `/clear`, `/help`, `/whoami`, `/background`, `/tasks`, `/stop`, `/ultra`, `/sandbox`, `/soul`; todos funcionan entre canales a través del despachador compartido.
**Arquitectura:**
Proyecto sombrilla con cuatro aplicaciones: `fermix_core` (agentes, proveedores, herramientas, memoria, configuración, CLI, autenticación, trazado), `fermix_channels` (Telegram, WhatsApp, Slack, Discord, Signal, CLI), `fermix_web` (Phoenix: LiveView de configuración, salud, entrada de webhook) y `fermix_nif` (NIF en C para shim de señal de grupo de procesos).
Flujo de datos: adaptador de canal → Despachador → AgentePrincipal → ejecución de capacidad → proveedor → LLM → respuesta.
Las herramientas integradas incluyen `shell`, `file_read`, `file_write`, `file_edit`, `glob_search`, `content_search`, `git_read`, `git_write`, `web_fetch`, `web_search`, `place_search` y `subagents`. Las habilidades son capacidades separadas instalables por el usuario con sus propias instrucciones y límites de herramientas permitidas.
Fermix está en estado alfa (pre-1.0), con licencia MIT, y requiere Elixir ≥ 1.17 y Erlang/OTP ≥ 28.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.