Cliff Notetaker is an invisible meeting assistant built on Recall.ai’s Desktop SDK, using Electron and Express that listens to your meetings and summarizes key points.
Full walkthrough on the Blogpost
Link to the docs for the Desktop SDK.
Follow the steps below to get Cliff running on your computer.
Watch the video below for a walkthrough of the setup:

- Automatic meeting detection
- Background recording using Recall.ai's Desktop SDK
- Transcript generation
- AI meeting summaries using OpenAI
- Displays:
- Meeting participants
- Meeting link
- Transcript
- AI summary
git clone <your-repo-url>
cd <repo-name>npm install @recallai/desktop-sdkCreate accounts and API keys from:
Rename the .env.example file inside of backend to .env and replace the following
RECALL_API_KEY=your_recall_api_key
OPENAI_API_KEY=your_openai_api_key
RECALL_API_BASE=your_api_base_when_you_signup
RECALL_API_BASE is the base URL for your Recall region and is determined when you sign up for Recall.ai
US West 2 -> https://www.us-west-2.recall.ai
US East 1 -> https://www.us-east-1.recall.ai
EU -> https://www.eu-central-1.recall.ai
Asia -> https://www.ap-northeast-1.recall.ai
From the root directory:
npm installRecall.ai requires a public webhook endpoint, so we expose the backend with ngrok.
First make sure you add the authtoken on ngrok:
ngrok config add-authtoken <token>Open a new terminal in your root directory, run:
ngrok http 3000You will receive a URL similar to:
https://abc123.ngrok-free.app
Login to Recall.ai and it will take you to your dashboard, then configure the webhook URL under the Webhooks section.
Add the following endpoint:
https://YOUR_NGROK_URL/webhooks/recall
Example:
https://abc123.ngrok-free.app/webhooks/recall
Add events such as:
sdk_upload.completedtranscript.done
These events allow the backend to:
- Retrieve the recording
- Generate a transcript
- Retrieve the transcript
- Trigger AI summarization
Open a new terminal in your root directory:
cd backendInstall required dependencies in the backend directory
npm install node server.js
The backend will run at:
http://localhost:3000
Open another terminal from the root directory:
npm start- The Electron app detects a meeting window.
- A recording starts using the Desktop SDK.
- When the meeting ends, Recall.ai returns:
sdk_upload.completed
- The backend retrieves the recording ID.
- A transcript job is created.
- Recall.ai sends:
transcript.done
- The backend retrieves the transcript.
- The transcript is sent to OpenAI for summarization.
- The UI displays:
- Meeting participants
- Meeting link
- Transcript
- AI summary
- Recall.ai Desktop SDK
- Electron
- Express
- OpenAI API
- ngrok


