Anomalia
Anomalia planifica, escribe y diseña todo: publicaciones, artículos, alcance de clientes potenciales. Tú apruebas con un toque; el resto se publica en todos los canales.
Documentación
Anomalia CLI — CLI de automatización de redes sociales con IA, servidor MCP y habilidad de agente
Automatiza tus redes sociales desde la terminal. Anomalia es el piloto automático de IA para redes sociales que planifica, escribe, diseña y publica publicaciones, artículos de blog y auditorías SEO/GEO en piloto automático. Este repositorio es su cliente de línea de comandos, servidor MCP (Protocolo de Contexto de Modelo — stdio + HTTP) y habilidad de agente: todo lo que necesitas para ejecutar automatización de redes sociales, generación de contenido y flujos de aprobación desde una terminal o un agente de IA.
Este repositorio ofrece tres formas de usar el mismo producto (mismo OAuth, misma API, sin tokens estáticos):
| Qué es | Para quién | |
|---|---|---|
| CLI | anomalia comandos de terminal | Humanos y scripts |
| MCP | Servidor de Protocolo de Contexto de Modelo (stdio + HTTP) | Cursor, Claude, otros hosts MCP |
| Skill | Habilidad de agente (skills/anomalia/) | Agentes de código / skills.sh / npx skills |
Necesitas una cuenta de Anomalia. Esto es un cliente, no una herramienta independiente: cada llamada se comunica con la API de Anomalia a través de HTTPS. Sin una cuenta no hay nada que manejar.
Con el CLI de Anomalia puedes automatizar publicaciones en redes sociales, aprobar contenido generado por IA con un toque, editar un carrusel diapositiva por diapositiva, convertir una publicación en video, ejecutar auditorías SEO y GEO, y gestionar tu blog — desde la terminal o desde un agente de IA como Cursor o Claude.
┌─────────────┐ ┌─────────────┐ ┌──────────────────┐
│ anomalia │ │ MCP host │ │ Agent + Skill │
│ CLI │ │ (Cursor…) │ │ (npx skills) │
└──────┬──────┘ └──────┬──────┘ └────────┬─────────┘
│ │ │
│ lib/api.ts + OAuth session │
└─────────────────┼───────────────────┘
▼
Anomalia /api/v1/*
1. CLI
Instalación
Elige uno:
| Método | Comando | Notas |
|---|---|---|
| npm | npm install -g anomalia-cli | Requiere Node.js ≥ 20 |
| Homebrew | ver abajo | macOS / Linux, binario independiente |
| Instalador | ver abajo | script curl → binario en PATH |
| Desde el código fuente | ver abajo | Requiere Bun |
npm
npm install -g anomalia-cli
# or: pnpm add -g anomalia-cli / bun add -g anomalia-cli
anomalia login
Homebrew
brew tap andreabuttarelli/anomalia-cli https://github.com/andreabuttarelli/anomalia-cli
brew install anomalia
anomalia login
Instalador (binario independiente) — macOS arm64/x64 y Linux arm64/x64, sin Node/Bun requerido:
curl -sSL https://raw.githubusercontent.com/andreabuttarelli/anomalia-cli/main/scripts/install.sh | bash
anomalia login
Actualiza más tarde con anomalia update, o npm install -g anomalia-cli@latest / brew upgrade anomalia dependiendo de cómo lo instalaste. Más detalle: docs/distribute.md.
Inicio rápido
anomalia brands
anomalia dashboard my-brand
anomalia content my-brand --status pending_user
anomalia approve my-brand --all
anomalia seo my-brand
anomalia web my-brand generate --topic "..."
anomalia ads my-brand --remix
anomalia ai my-brand --message "..." --pipe
Cada comando toma el slug de la marca como primer argumento. anomalia --help los lista todos; anomalia <command> --help detalla uno. Se aceptan prefijos cortos de las tablas; los prefijos ambiguos dan error en lugar de adivinar.
| Área | Comandos |
|---|---|
| Publicaciones | content, approve, post <id> [show|edit|regenerate|slide|reorder|video|publish] |
| Planificación | plan, weekly-plan, calendar, gtm |
| Marca | studio, voice, people, products |
| Web | seo, geo, keywords, web |
| Anuncios | ads — campañas, gasto, propuestas de impulso, remix, duplicar/eliminar (--sync, --propose, --remix, --create, --approve, --pause, --resume, --duplicate, --delete, --reject, --ad por creatividad individual) |
| Información | dashboard, status, analytics |
| IA | ai --message "..." — lenguaje natural, acceso completo de lectura/escritura |
Dump completo de comandos: llms.txt · más documentación: docs/
Desde el código fuente
Requiere Bun.
git clone https://github.com/andreabuttarelli/anomalia-cli.git
cd anomalia-cli
bun install
bun run cli.ts --help
2. Servidor MCP
Mismas herramientas y OAuth que el CLI. Documentación: docs/mcp.md.
bun run mcp # stdio (local hosts)
bun run mcp:http # http://localhost:8787/mcp
Remoto: https://mcp.anomalia.so/mcp (JWT Bearer requerido). Salud: GET /health.
Cursor — stdio
{
"mcpServers": {
"anomalia": {
"command": "bun",
"args": ["run", "/ABS/PATH/to/anomalia-cli/mcp/stdio.ts"]
}
}
}
Cursor — HTTP
{
"mcpServers": {
"anomalia": { "url": "https://mcp.anomalia.so/mcp" }
}
}
Si Connect falla con Not an https or loopback URI: cursor://…, tu versión de Cursor todavía está usando el callback OAuth de esquema personalizado — usa stdio arriba, actualiza Cursor (loopback http://localhost:8787/callback), o consulta docs/mcp.md.
- Local stdio:
loginherramienta oanomalia loginexistente →~/.config/anomalia/session.json - HTTP remoto:
Authorization: Bearer <access_token>(se espera 401 sin él)
3. Habilidad de agente y plugins
Habilidad de agente publicable para Cursor, Claude, skills.sh y otros:
npx skills add andreabuttarelli/anomalia-cli --skill anomalia
# or
bash scripts/install-skill.sh --project
Paquete: skills/anomalia/ → plugins/anomalia/skills/anomalia/ (SKILL.md + references/ para configuración de MCP, mapa de herramientas, CLI).
Cuando la habilidad está activa, los agentes prefieren herramientas MCP si están conectadas, de lo contrario el CLI.
Plugin de marketplace para Claude Code / Codex
Misma habilidad + MCP remoto, empaquetado para instalación de plugin y envío a directorio:
# Claude Code
/plugin marketplace add andreabuttarelli/anomalia-cli
/plugin install anomalia@anomalia
# Codex
codex plugin marketplace add andreabuttarelli/anomalia-cli
Lista de verificación de envío (directorio comunitario de Claude + directorio de plugins de OpenAI): docs/plugins.md.
Configuración
Configuración cero por defecto → https://anomalia.so, con respaldo automático a http://localhost:5173 cuando una aplicación local está respondiendo.
| Variable | Propósito |
|---|---|
PUBLIC_APP_URL | Apuntar CLI/MCP a otra instancia de Anomalia |
SENTRY_DSN | (MCP HTTP / Vercel) Errores → Sentry |
SUPABASE_SERVICE_ROLE_KEY | (MCP HTTP / Vercel) Filas en mcp_logs |
MCP_PUBLIC_URL | URL base MCP pública para metadatos OAuth |
Sesión: ~/.config/anomalia/session.json. anomalia logout la borra. No hay secretos incrustados en este repositorio ni en el binario.
Arquitectura
Cliente HTTPS delgado — sin acceso a base de datos, sin acoplamiento con el código del servidor de Anomalia:
CLI ──┐
MCP ──┼── HTTPS ──► /api/v1/* ──► Anomalia
Skill ─┘ (guides agents to CLI or MCP)
- Comandos CLI:
commands/+cli.ts - Cliente HTTP:
lib/api.tssolo - MCP:
mcp/(reutilizalib/api.ts, registra herramientas) - Habilidad / plugins:
skills/anomalia/→plugins/anomalia/(manifiestos de marketplace de Claude + Codex)
Desarrollo
bun install
bun run cli.ts --help
bun run mcp
bun run mcp:http
bun run typecheck
bun test
bun run build # binary → dist/
bun run build:all # all four targets
bun run vercel-build # MCP bundles under mcp/api/
Lanzamientos: empuja una etiqueta v* → CI verifica tipos, ejecuta pruebas, compila binarios multiplataforma + .tar.gz + SHA256SUMS.txt en el lanzamiento de GitHub, incrementa Formula/anomalia.rb, y publica anomalia-cli a npm cuando NPM_TOKEN está establecido. Detalles: docs/distribute.md.
Licencia
Copyright © 2026 Andrea Buttarelli.
Licenciado bajo la Licencia Pública General Affero de GNU v3.0 o posterior. Puedes usarlo, modificarlo y redistribuirlo, pero las obras derivadas deben permanecer de código abierto bajo la misma licencia, deben conservar el aviso de copyright y deben declarar sus cambios — incluso cuando se ofrecen a usuarios a través de una red.