Cooks
  1. Let your reps cook.

    Cooks is sales engagement software you run on your own server. It handles sequences, a parallel dialer, buying signals and call coaching, and your Claude or Grok can operate it through MCP.

    MIT licenseHosted for youOr self-host on Node and Postgres

  2. Switchboard · Parallel dialer

    A dialer that rings four prospects at once

    It rings up to four numbers at a time and connects the rep to the first person who picks up. The person hears no beep and no recording. When a voicemail answers, Cooks hangs up before it plays.

    Cooks listens to the pickup audio itself, so a "Hello?" is recognized in under a second. The carrier's machine detection takes about three.

    How detection works
  3. Prep line · Sequencing

    Sequences that send in the prospect's time zone

    A sequence mixes email, call, LinkedIn and manual steps. Emails go out inside a send window in the prospect's time zone and under a daily cap per mailbox. A reply or a bounce stops the sequence for that person.

    An email step can be drafted by AI, and the draft waits for a rep when the model is unsure. Unsubscribe links and A/B variants are included.

  4. Lookout · Signals

    A feed of reasons to call

    Link clicks, replies, web research, CRM changes and anything your bot posts through the API land in one feed, tied to the prospect and account. Rules act on it. A second click within a week, for example, enrolls the prospect in a follow-up and creates a task for the owner.

    Accounts in an active sequence get a web scan every seven days.

  5. Tasting room · Coaching

    Coaching from the recording

    Recordings are split by speaker and transcribed, then scored on opener, discovery, listening, value, objections and next step. The report includes talk ratio, the longest monologue and one specific tip.

    Next door, a rep can practice against an AI prospect that interrupts and pushes back. Practice calls are scored the same way.

    Coaching docs
  6. Control desk · Your assistant

    Run it from Claude, Grok or Cursor

    Cooks includes an MCP server. The assistant you already use can look up an account, enroll a prospect, draft an email, place a call and log the result, working on your Cooks data.

    Sending rules such as suppression lists, unsubscribes and daily caps are enforced on the server, not in the prompt.

    Setup
  7. Cellar · Self-host

    Runs on Node and Postgres

    Jobs, rate limits, webhook delivery and MCP sessions are stored in the same Postgres as your prospects, so there is no Redis or queue to operate. Setup is five commands, or one with Docker Compose.

Detection

How Cooks tells a person from a machine

When a carrier answers, Cooks streams the callee's audio back and runs it through voice-activity detection and a few rules. "Hello?" followed by silence is a person. "You've reached", a beep or a long unbroken speech is a machine. If that is unclear, a small model decides within a few hundred milliseconds.

Twilio's answering-machine detection runs at the same time as a fallback. The first verdict on a line wins and the other is ignored.

PickupVerdict lands
Person saying "Hello?"0.8 s
Voicemail greeting1.0 s
Carrier machine detection3.0 s

Measured against the mock carrier in the repo. Timing depends on the recognizer you configure: OpenAI Realtime, a local Nemotron model through sherpa-onnx, or none.

Power dialerLive · batch 3 of 12
Maya Chen+1 415 555 0142 · Globex
person · heard Hello?
0.8 s
Dev Patel+1 312 555 0199 · Initech
voicemail · heard you've reached
1.0 s
Sam Okafor+1 646 555 0127 · Hooli
hung up, rep is busy
0:06
Lena Fischer+1 206 555 0163 · Vandelay
no answer · callback task made
0:31
Talking to Maya Chen
A demo of one batch with example names. Log a call with a disposition, then dial the next batch. The clock runs four times faster than real time.
MCP

Connecting an assistant

The MCP server is a thin client over the REST API. Run it on a laptop against a hosted Cooks, or next to the API for the team. In this setup Cooks itself spends no tokens.

Cooks can also run its own agents for drafts, reply classification and research. Add a key for the model provider you use, or point it at a local model, and each run is logged with its tokens and cost.

An example session. The assistant calls Cooks tools; Cooks applies the workspace rules and records every action.

What the tools cover
  • Prospects and accounts: find, create, update, tag, add notes.
  • Sequences and steps: build, edit, reorder, or draft a sequence from a brief.
  • Enrollments: enroll, pause, resume and finish, with the rules enforced.
  • Tasks: list, complete and skip what is due today.
  • Dialer: place a call, hand one to a Speko voice agent, fetch the transcript, log it.
  • Power dialer: start a session, dial the next batch, see who answered.
  • Inbox: read the unified inbox, send SMS and iMessage with consent checks.
  • Email: draft, send, and import mail that happened outside Cooks.

Claude Code

claude mcp add cooks \
  -e COOKS_API_URL=http://localhost:8080 \
  -e COOKS_API_KEY=cooks-api-... \
  -- npx -y https://github.com/walter-grace/cooks/releases/latest/download/cooks-mcp.tgz

Create the key under Settings, then API keys. The tarball on GitHub Releases is the distribution; nothing is published to npm.

Claude Desktop and Cursor

{
  "mcpServers": {
    "cooks": {
      "command": "npx",
      "args": ["-y", "https://github.com/walter-grace/cooks/releases/latest/download/cooks-mcp.tgz"],
      "env": { "COOKS_API_URL": "http://localhost:8080", "COOKS_API_KEY": "cooks-api-..." }
    }
  }
}

Paste into claude_desktop_config.json or .cursor/mcp.json. Windsurf and Codex take the same shape.

Grok

pnpm --filter cooks-mcp dev          # hosts https://your-host/mcp
# grok.com/connectors → New connector → Custom
#   URL    https://your-host/mcp
#   then sign in when Grok asks

Grok runs the OAuth sign-in in a pop-up, so each person signs in with their own account and approves scopes. The host has to be reachable from the public internet.

claude.ai and remote clients

claude mcp add --transport http cooks https://your-host/mcp
# or paste https://your-host/mcp as a claude.ai connector

No key to share. The client gets a 401 with OAuth discovery, registers itself, and each person signs in and approves scopes for one workspace. Tokens carry their role, so a rep cannot delete a sequence they do not own.

A draft is sent only after a person confirms it. Suppression lists, unsubscribes and daily caps are checked by the server on every send. Tool errors return the API's error code, so an assistant that enrolls someone twice sees "already enrolled" and moves on.

Also included

Mailboxes

Gmail, Microsoft 365 or SMTP, with inbound sync for replies and bounces.

Inkbox channels

An email address, an SMS number and an iMessage line per rep, with one inbox and STOP honored.

HubSpot

Contact and company sync, auto-enroll from a list or deal stage, calls and email on the timeline.

Voice agents

A Speko agent places the call from a script and brings back the outcome, transcript and recording.

Compatible API

Same paths, envelopes and paging as the commercial API it mirrors. Existing clients change one base URL.

Webhooks

Signed, retried events for calls, emails, enrollments, tasks and prospects.

Sign-in

API keys, OAuth 2.1 with PKCE, or Clerk SSO. Secrets are encrypted at rest with a key you hold.

Web app

Tasks, prospects, sequences, emails, calls, dialer, practice, signals and settings.

Compared with Nooks and Orum

Nooks and Orum charge per seat and quote prices on a sales call. Cooks is MIT licensed, so the recurring costs are telephony and your server.

TopicCooksNooksOrum
LicenseFree, MIT. No per-seat fee.Custom quoteCustom quote
Pricing publishedThis pageNo, "get in touch"No, "based on package and users"
Minimum seatsNoneNot publishedNine
Parallel dialerUp to four lines; the first person to answer is connectedYesYes, on the Ascend plan
TelephonyTwilio at its published rate: $0.014 a minute in the US, $1.15 a month per numberNot publishedNot published
Try itWhole product, locally, against a mock carrier, for as long as you likeNot publishedTrial capped at 500 dials
Where the data livesYour Postgres, your serverTheir cloudTheir cloud
Assistant accessMCP server for Claude, Grok and CursorNot on their public pagesNot on their public pages

Nooks, Orum and Twilio facts read from their pricing pages in October 2026, linked in the footer. Check them before you buy; they change.

Ten seats, reported
$7.8k–18ka year on Nooks

Buyers report $65 to $150 per user per month (Vendr, February 2026). The list quote is said to run higher.

Ten seats, reported
$12k–24ka year on Orum

Buyers report $100 to $200 per user per month (Vendr, February 2026), and nine seats is the floor.

Ten seats on Cooks
$0a year in licenses

100,000 outbound minutes cost about $1,400 at Twilio's rate, ten numbers $138, plus whatever your server costs.

Self-host

Setup

You need Node 22, pnpm 9 and Postgres 15 or newer. Jobs, rate limits, the webhook outbox and MCP sessions live in that database, so there is nothing else to operate. Bootstrap prints a workspace API key once, and the web app is served at /app.

Docker Compose starts Postgres, the API, the worker, the MCP server and Mailpit together. Production notes, Twilio setup and the mock carrier for trying the dialer without an account are in the self-hosting guide.

git clone https://github.com/walter-grace/cooks.git && cd cooks
pnpm install
createdb cooks && cp .env.example .env
pnpm bootstrap --email you@example.com --workspace "My Team"
pnpm --filter @cooks/api dev    # http://localhost:8080
pnpm --filter @cooks/worker dev # engine, mail, webhooks, AI