anomalia

mcp
Security Audit
Warn
Health Warn
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Warn
  • process.env — Environment variable access in .agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Your marketing department, automated. Open-source Grok Bot alternative specialized in marketing, distribution, and sales.

README.md

Anomalia

Anomalia

GitHub stars Discord Apache-2.0 Get started on anomalia.so

Anomalia — Your marketing department, automated.

Your marketing department, automated. Anomalia is an open-source Grok Bot
alternative specialized in marketing, distribution, and sales. It plans, writes,
designs, and publishes across social, blog, and SEO — nothing goes out until you
approve. Use it hosted at anomalia.so, or run the complete
stack yourself.

Features

  • Weekly editorial plan, then on-brand posts, carousels, and video
  • Calendar and one-tap approve — from the app, email, or
    CLI / MCP
  • Studio: brand kit, products, people, competitors, and voice
  • Radar: news and conversations turned into drafts and lead replies
  • Blog, SEO, and GEO — rank on Google and get cited by AI assistants
  • Multi-brand workspaces (one account, many brands)
  • Propose-approve throughout: the AI never publishes silently
  • Drive it from Cursor or Claude via MCP, or from the anomalia CLI

Stack

  • TypeScript and SvelteKit
  • Supabase (Postgres, Auth, Storage)
  • Node.js 22 and Docker Compose
  • MCP server and CLI in anomalia-cli

Quick start

You need Node.js 22+, Docker with Compose, and openssl.

cp infra/compose/.env.example infra/compose/.env   # fill POSTGRES_PASSWORD, DASHBOARD_PASSWORD, SECRET_KEY_BASE
cp .env.example .env                               # set PUBLIC_SUPABASE_URL=http://localhost:8000 and copy ANON_KEY / SERVICE_ROLE_KEY from infra/compose/.env into PUBLIC_SUPABASE_ANON_KEY / SUPABASE_SERVICE_ROLE_KEY
(cd infra/compose && docker compose up -d --wait)
npm install

export DATABASE_URL="postgres://postgres:<POSTGRES_PASSWORD>@localhost:5432/postgres"
npm run db:migrate
npm run db:seed
npm run dev          # http://localhost:5173 — login with the seeded [email protected] / change-me-now-12345

--wait is required: migrate needs tables that storage and realtime create on
startup. If it stops on a missing storage.buckets relation, run
npm run db:migrate again.

db:seed prints the TENANT_BRAND_ID line to paste into .env for a
single-brand install. The demo login comes from SEED_DEMO_EMAIL /
SEED_DEMO_PASSWORD if you want different ones. Skip the compose step if you
already have a hosted Supabase project — point the same keys at it.

Production: npm run build:node && npm start (port 3000), or from
infra/compose/: docker compose up -d --build app.

Read docs/SELF_HOSTING.md for the complete guide.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md
before opening a pull request. For security vulnerabilities, follow
SECURITY.md instead of filing a public issue.

Anomalia is licensed under the Apache License 2.0.

Questions and ideas are welcome in the
Discord community.

Reviews (0)

No results found