Desarrolladores¶
Elissa es de código abierto con licencia MIT: github.com/inginddie/elissa. Los issues y pull requests son bienvenidos; lee primero CONTRIBUTING.md (en inglés).
Correr desde el código¶
uv sync
cd desktop && npm install && npx tauri dev # la app completa; el shell arranca el motor de Python con uv
uv run python -m elissa --browser # solo el motor, con la interfaz en tu navegador
uv run pytest -q # pruebas (sin red ni API keys)
Construir el instalador de Windows en dist\:
powershell -File packaging\build.ps1 # motor (PyInstaller) + instalador (Tauri/NSIS)
tests/smoke_ws.py corre un turno real contra un motor en marcha y puede responder tarjetas de aprobación
(--approve): sirve para probar un cambio de punta a punta sin hacer clic.
Arquitectura¶
- El shell (
desktop/, Tauri 2, Rust): la ventana transparente, la bandeja, el atajo global, el inicio con el sistema, las actualizaciones firmadas y el ciclo de vida del motor. - El motor (
elissa/, Python): un servidor local en127.0.0.1que solo la ventana de Elissa puede usar, con un token por sesión y revisión de origen. Corre el ciclo del agente, los proveedores, las herramientas y la voz. - La interfaz (
elissa/static/): HTML y JavaScript simples, servidos por el motor. Elissa se dibuja en un canvas encharacter.js.
| Ruta | Qué hay ahí |
|---|---|
desktop/ |
Shell nativo: modos de ventana, bandeja, actualizador, ciclo de vida del motor |
elissa/server.py |
API local y WebSocket, voz, configuración guiada, aprobaciones |
elissa/agent.py |
Ciclo del agente, neutral al proveedor, y el prompt del sistema |
elissa/llm/ |
Adaptadores de proveedores; uno compatible con OpenAI es una entrada en PROVIDERS |
elissa/tools/ |
Herramientas; todo lo que cambia algo tiene un preview y pasa por aprobación |
elissa/system/ |
Lo que cambia entre Windows, macOS y Linux, y las capacidades de cada sistema |
elissa/mcp_client.py |
Integraciones MCP |
elissa/static/ |
Interfaz: character.js, sounds.js, i18n.js, app.js |
docs/ |
Esta wiki (MkDocs Material) |
Reglas básicas¶
- Primero la seguridad. Una herramienta que envía, escribe, mueve, hace clic, escribe texto o ejecuta algo debe
tener un
previewque muestre exactamente lo que va a pasar. Nada puede borrar datos del usuario. Lee Seguridad antes de tocar herramientas, aprobaciones o la API del motor. - Secretos solo en el llavero (
elissa.config.set_secret). Nunca en ajustes, registros ni el repositorio. - Sin telemetría. Solo llamadas de red a servicios que el usuario configuró.
- Pruebas para cada comportamiento que cambies; todo
tests/pasa sin red ni claves. - Textos de la interfaz en español; agrega el inglés en
elissa/static/i18n.js.
Editar esta wiki¶
La wiki vive en docs/: las páginas en inglés son pagina.md y las de español pagina.es.md. Para verla:
uv run --group docs mkdocs serve
Las capturas de la ventana de Elissa (docs/media/screens/) salen de la app real, en los dos idiomas, con una
carpeta de datos desechable. Después de cambiar la interfaz, regéneralas (necesita Microsoft Edge):
uv run --with playwright==1.63.0 python scripts/wiki_screenshots.py
Cada push a main publica la wiki en GitHub Pages. También puedes usar el botón arriba de
cada página.
Versiones¶
Las versiones siguen SemVer: los parches son solo arreglos, las menores agregan funciones, y una etiqueta publicada nunca se mueve. Los pasos están en CONTRIBUTING.md y los cambios de cada versión en el changelog.
