CRM + Dialer + AI Coaching
Consuelo is an open-source sales platform.
opensaas packages (in packages/):
| Package | Description |
|---|---|
api |
REST API layer — route definitions, auth middleware |
cli |
consuelo CLI tool |
dialer |
Twilio-based calling (local presence, parallel dialing) |
coaching |
AI coaching via Groq/OpenAI (real-time + post-call) |
contacts |
Contact management, CSV import, phone normalization |
analytics |
Call analytics and metrics |
sdk |
Unified SDK entry point |
metering |
Usage tracking and rate limiting |
logger |
Structured logging |
- Node.js 24+ (
engines.node: ^24.5.0) - Yarn 4+ (via corepack:
corepack enable) - Docker + Docker Compose (for Postgres + Redis)
- Git
# 1. clone and install
git clone https://github.com/consuelohq/opensaas.git
cd opensaas
corepack enable
yarn install
# 2. copy env and fill in values
cp .env.example .env
# at minimum set: APP_SECRET, PG_DATABASE_* vars
# 3. start infrastructure (postgres + redis)
docker compose up db redis -d
# 4. start the CRM (frontend + backend + worker)
yarn start
# → frontend: http://localhost:3001 (Vite, HMR enabled)
# → backend: http://localhost:3000 (NestJS)See .env.example for the full list. Key variables:
| Variable | Required | Description |
|---|---|---|
APP_SECRET |
Yes | JWT signing key (see AUTH.md) |
PG_DATABASE_* |
Yes | Postgres connection |
REDIS_URL |
Yes | Redis connection |
AUTH_GOOGLE_CLIENT_ID |
No | Google OAuth |
TWILIO_ACCOUNT_SID |
No | Twilio for dialer |
GROQ_API_KEY |
No | AI coaching |
Single auth system — built-in JWT auth. No Clerk, no separate provider. See AUTH.md for the full documentation (token format, secret derivation, refresh flow, middleware).
ESLint config applies globally. opensaas packages (packages/api, packages/cli, etc.) have strict overrides:
no-console: 'error'— use structured logger@typescript-eslint/no-explicit-any: 'warn'- SQL parameterization enforced (no template literals in
.query())
All opensaas packages use strict: true.
- pre-commit — lints and typechecks staged opensaas
.tsfiles - pre-push — runs
scripts/code-review.sh(13 mandatory checks from CODING-STANDARDS.md)
type(scope): description
Types: feat, fix, refactor, docs, test, chore
Scopes: cli, api, dialer, coaching, contacts, analytics, sdk, metering, logger
Bot commits set suelo-kiro[bot] as committer (not author): GIT_COMMITTER_NAME="suelo-kiro[bot]" GIT_COMMITTER_EMAIL="260422584+suelo-kiro[bot]@users.noreply.github.com"
- Fork the repo
- Create a feature branch from
main - Make your changes (follow CODING-STANDARDS.md)
- Push — pre-push hooks will run the 13 code review checks
- Open a PR
Same as Twenty — AGPL-3.0.