Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cliff Notetaker

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: Build a meeting notetaker like granola

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:


Features

  • 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

Setup

1. Clone the repository

git clone https://github.com/recallai/cliff-notetaker.git
cd cliff-notetaker

2. Download the Desktop Recording SDK on your computer

npm install @recallai/desktop-sdk

3. Create API Keys

Create accounts and API keys from:


4. Add Environment Variables

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


5. Install Dependencies

From the root directory:

npm install

6. Start an ngrok Tunnel

Recall.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 3000

You will receive a URL similar to:

https://abc123.ngrok-free.app

ngrok tunnel


7. Configure Recall.ai Webhooks

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

webhook success

Add events such as:

  • sdk_upload.completed
  • transcript.done

webhook success

These events allow the backend to:

  • Retrieve the recording
  • Generate a transcript
  • Retrieve the transcript
  • Trigger AI summarization

8. Run the Backend Server

Open a new terminal in your root directory:

cd backend

Install required dependencies in the backend directory

npm install 
node server.js

The backend will run at:

http://localhost:3000

9. Start the Electron App

Open another terminal from the root directory:

npm start

How It Works

  1. The Electron app detects a meeting window.
  2. A recording starts using the Desktop SDK.
  3. When the meeting ends, Recall.ai returns:
sdk_upload.completed
  1. The backend retrieves the recording ID.
  2. A transcript job is created.
  3. Recall.ai sends:
transcript.done
  1. The backend retrieves the transcript.
  2. The transcript is sent to OpenAI for summarization.
  3. The UI displays:
  • Meeting participants
  • Meeting link
  • Transcript
  • AI summary

Tech Stack

Other Desktop Recording Resources

If you want to learn more about how to access system audio we've also written a blog on covering accessing system audio in multiple ways with demos. If you're just interested in macOS screen capture APIs there is a guide on all of the APIs to record on macOS. For those interested in Granola.ai, we've also put out a blog on open source Granola.ai alternatives and a tutorial on how to build a meeting notetaker like granola. Finally, if you are interested in building a desktop recorder from scratch without Recall.ai, read the blog post on how to record meetings without bots.

About

Building a desktop recording app with DSDK

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages