You stop agreeing to scope in the moment and regretting it later. When the client asks “how long will the export take?”, the number from your own prep is already under the camera. When they slip in “just a small extra”, a short hint and a ready phrase appear before you answer. After the call, the action items, your promises and the transcript are on a Meetings page, and you did not write any of it.
This is a beta: built and tested by one person on real calls, and built on other people’s open-source models (see open source inside).
Facts or silence
Silence is the default. A tip carries a number, a date, a name, a status or a ready phrase, or it is not shown. A tip appears when one of these fires:
A question to you
The answer as a ready sentence, with the fact and its source.
Your turn
Someone calls you by name: your update, ready to read.
A new request
An ask that looks like a change request: "do not agree now" and a phrase that buys time.
A promised date or estimate
It never suggests hours. The assignee gives the estimate.
Fix the owner and date
A decision was discussed but nobody owns it yet.
A contradiction
Something said against a recorded decision.
It follows the live topic, not the plan: when the talk leaves your agenda, it looks for facts about what is being discussed or stays quiet. Proactive hints (“you can add…”) are off by default and one switch away.
Instant before smart
A model needs seconds to think, and the conversation does not wait. So before the call the skill prepares a small fact book and instant cards from your project: tickets with estimates, decisions, dates, open questions. During the call the recorder on your Mac matches every phrase against them and shows the fact within 1 or 2 seconds, with no model in the loop. Claude adds what the cards could not know. With the optional local search (below), the match works by meaning, not only by the exact words.
What a tip looks like
Built for a small window right under the camera, so your eyes do not wander. 2 to 5 short lines: the gist first, then a ready phrase in the language of the call. Simple sentences, everyday words, no abbreviations.
A tip marked as internal relies on an internal source and is never meant to be repeated to the client.
The tips window
Tips appear in their own small window, not in a chat you have to keep open. It opens by itself when the recording starts, at the top centre of the screen, right under the camera.
🆘 Help now
You are talking and cannot type. One click: the best facts for what is being said appear at once, then the next sentence you can say.
⏸ Pause, ▶ resume
The talk went aside? Pause the tips. In the app the transcript pauses too (both sides, the dot turns grey); press play and it comes back to the live topic.
One field
Typing searches your fact book on the spot. Enter sends the question to Claude, and the answer arrives in the same window.
One menu
Meeting type, audience, language, microphone, text size, transparency and help live behind one gear. The top bar stays clean.
One warning at a time
Your microphone stopped recording? One alert with a button that fixes it, such as switching to the Mac's own microphone.
Stealth or demo
Hidden from screen sharing and screenshots by default. Switch stealth off to show the window to colleagues.
Pin any card, including your speech, so it stays on top; unpin it and it returns to its place. A ❓ line shows a question to you the moment it is heard, before the tip arrives. The interface speaks English or Ukrainian; the tips follow the language of the call. The 🎙 button is the mic mute: the recorder cannot see the mute button of Meet or Zoom, so when you are muted in a cafe, press it too. Closed the window by accident? Ask in the chat to open it again, and it comes back with every tip since the start of the call.
It reads the meeting by itself
You do not pick a meeting type before every call. Two things are worked out from the schedule, the project and what is being said, and you can correct them in the gear menu:
- Who is on the other side. Your team (candid, your language), a client (their language, internal facts stay internal, wording tuned to their culture) or your own manager playing the client on an internal project.
- What is happening. A discussion, or you presenting: then it stops interrupting and keeps your outline (Now and Next) in view.
Two meeting types need a choice because they need their own preparation: Presentation (your talk as an outline that follows you) and Interview, with three roles:
- Observer. Someone else asks and answers; you get a reference answer to compare with what you hear, and an analysis after the call.
- Interviewer. You ask; it tracks your planned questions and suggests a follow-up when an answer is vague.
- Coach. You are the one being asked: a steering committee, questions after a demo, a quarterly review, an audit, or a rehearsal before any of these. Like a coach at the edge of the field: short cues during the game, while you play it yourself. It keeps your prepared talking points, numbers and results within reach, reminds you of the part of a question you have not answered yet, and helps you keep the answer short and structured. It uses only what you prepared and never invents facts.
For client calls, an optional culture lens from your project notes adjusts the wording and reads the signals: in many cultures “a bit concerning” means a real problem.
Presentation mode: slides and tips side by side
When the meeting type is Presentation and the prep has slides (a <name>.slides.json file next to the brief), the tips window splits into 2 halves: slide cards with the full text of your speech, and the usual tips stream. It works the same in the Cowork skill and in the app.
One slide at a time
Cards snap into place one by one. Move with the arrows, the buttons or the mouse wheel.
A timer with a limit
Set the minutes you have, and the time of each slide scales to fit. The pace shows your words per minute.
Auto
Slides turn by the schedule with a short signal, and a warning comes 10 seconds before a slide's time is up.
Trim
Running late? Hide the paragraphs marked as safe to skip and keep only what must be said.
Each paragraph on a card has a kind: read aloud, may skip, a hint for you (not to be read), or a colleague’s line that comes right before your part. My slides / All slides switches between your part and the whole deck when several people present. At the end a table compares the plan with the actual time of every slide. 📑 hides or shows the cards, ⇄ swaps the 2 sides (the choice is remembered). The window grows towards the cards, so the tips stream stays where you put it.
Who is speaking
Everyone on the other side arrives in one audio stream. An optional local voice model tells the voices apart. When a new voice has spoken for a few seconds, the window asks “Who is speaking?” with a quote, so you know whom it means, and buttons with the names from your project and from earlier calls. Nothing is named without you. One click fixes a wrong line or merges two voices; the names apply to the whole call. Identifying voices never delays a tip.
Built for real calls
- The microphone does not go silent unnoticed. If the stream freezes (it happens after unmuting in some meeting apps), the recorder restarts it, switches to the Mac’s own microphone if needed, and tells you once.
- The loop does not stop by itself. A red warning appears if Claude stops listening, and one word in the chat brings it back.
- The prep is checked. The call does not start on an empty fact book: the skill checks that the cards and facts were written.
Optional: local search with Ollama
With Ollama and a small multilingual embedding model (bge-m3), the recorder understands meaning, not only words. Facts appear when a question is phrased differently from your notes, 🆘 finds the right one, and the text files of each project, including a local copy of your Notion, become searchable during the call. Each project gets its own index, so projects never mix. Logs show whether it helped on your calls, and one switch turns it off.
A call, step by step
- Prep in the same session. Meeting prep, the Notion pages or folder to focus on. The brief, the fact book and the cards start from it.
- Say “live tips” right before the call. Recording starts at once (your microphone and the other side as 2 channels), the tips window opens under the camera and shows your speech.
- Use the window, not the keyboard. 🆘 when you need help now, ⏸ when the talk goes aside, a question in the field when you have a second.
- Stop it explicitly. Type “stop” in the window or the chat, close the Terminal window, or let the idle timer ask. Closing Zoom or Meet does not stop the recording.
Open it before the call (standby). You can start a few minutes early: the window opens, but nothing is recorded and no microphone warnings appear while you wait. Recording starts by itself when the other side has been speaking for about 5 seconds, or at once when you press the green Start. This works in the skill and in the app.
No time to prepare? Start anyway. A preparation makes tips richer, it is not required. Without it you still get the red tips when you are addressed (a question to you, your turn, a new request, a date being promised), HELP NOW, answers to questions you type, a search over the project folder, On me and the meeting page after the call. A question nothing ready answers gets a sentence you can say at once (“give me a minute, I will check”) and starts a deeper, read-only search: Claude Code reads the project folder, the local Notion copy and earlier calls, and the answer arrives as a new card, usually in 15-60 seconds. Missing until a preparation arrives: the speech card and the instant fact cards. A preparation that finishes after the start joins the call by itself, so a late one costs you a quieter first few minutes, not the call. Two lines in Call context (the goal, what to look for) already help.
Correct what you see. ✎ on any card edits its heading, phrase and points, or removes it; in On me, × removes a line, a double-click corrects it and a field adds what the call picture missed. Corrections stay for the call and the Notion summary takes them as true. The 📄 button opens the full preparation next to the tips, editable; Read prep in Home shows and edits it before the call.
Proactive tips during the call. The 💡 button in the top bar switches proactive tips (ideas to add: a missing owner or date, a fact worth mentioning) on and off without opening ⚙. The top bar now reads left to right: the dot, the title and the timer; then what the tips do (💡 proactive, ⏸ pause) and your mic (🎙); then the view (transcript, ⚙). End call stays apart, in the window’s title bar, and always asks first.
Calendars and Home. Settings > Calendars: add accounts in System Settings > Internet Accounts (several Google and Microsoft accounts are fine), connect, and tick the calendars with your calls. Start call then shows the calls around now as chips (in progress, in 5 min, overlapping ones too); a click fills the title, time, participants and, for a regular meeting, everything from its last call. Home lists the calls ahead with Prepare (it asks first for the project or workspace and what matters on the call), Set up, Start or Switch, this week’s numbers, and the recent calls with Notion, Transcript and Show in Finder. An optional reminder before calendar calls is off by default.
Back-to-back calls: Up next. During a call, Start call becomes Plan an upcoming call: the same window with a red “Recording: …” line on top, so it is clear it does not start anything. Add to Up next keeps the call, Prepare writes its preparation while you talk (one at a time; the others wait in line), and End current call and start this… switches after one question. In the tips window, ⚙ > Up next lists the planned calls with their preparation (Edit, Prepare, Switch, ×), and the dock shows the next one with a Switch… button. End call offers “End and start
The dot next to the call’s name shows the recording: grey while waiting for the call or paused, blue while the recording starts or stops (between pressing Start and the first transcribed second), blinking red while it records, orange when the microphone has a problem, green when it has stopped and the transcript is saved.
After the call: notes you did not have to write
A wrap-up in the chat: action items with owners and dates, new requests, your commitments, open questions, and answers worth coming back to. It goes into the meeting’s existing Notion page (for example the one Notion AI Meeting Notes created), and a new page appears only when there is none. Your notes from the call become lessons for the next one. Next steps (a report, a change request, a risk) are offered, never run without your command.
Pacenote app (beta)
The same tips loop as a native macOS app in the menu bar, without a Cowork chat running during the call. It records the call on your Mac, transcribes it there with Whisper on MLX and calls the Claude API directly with your own API key, kept in the macOS Keychain.
No chat to keep alive
The app asks the model on events (a question, your name, a new request) instead of a chat loop that can fall silent.
Spending limits
A soft and a hard limit per call and a monthly cap. The menu shows this call and this month. At the hard limit only the local layer keeps working.
Local AI built in
A small model on the Mac (bge-m3) matches facts and cards by meaning and powers 🆘 and project search. No Ollama needed.
Ready for the call
Standby start, a choice of microphone that stays put, the split view for presentations and the same tips window.
Notes in Notion
After the call the wrap-up and the transcript land on the meeting's Notion page: added to the existing one, or a new page when there is none.
Knows who is speaking
As in the skill: name a new voice once from the project's people, and the tips and the summary use the name. Voice prints stay on your Mac.
Interviews, both sides
Pick your role in Start call: you watch, you ask, or you are the one being interviewed. Tips follow the role.
Fast on busy hours
When Claude is slow to start, the same request goes again and the first good answer wins.
It is a beta, so expect rough edges:
- Not notarized yet. On the first launch macOS refuses to open it: open System Settings > Privacy & Security, press Open Anyway next to Pacenote and confirm (on macOS 14 a right-click > Open also works). After that it opens normally. Before that, you can check the download against the SHA-256 checksums published with every release:
shasum -a 256 ~/Downloads/LiveTips.dmg. - macOS 14.4 or newer on Apple silicon (M1 or newer).
- Python 3.10 or newer. The Setup window checks it and installs the rest (Python modules and models, about 2.5 GB in total) with a tick next to each step. Nothing needs an administrator password.
- Claude: an API key, your Claude plan, or both. The key is billed by Anthropic per use (usually $0.10 to $1.20 per hour of a call, and the limits keep it in check). Your Claude plan works through Claude Code, best for the preparation and the summary. Settings > AI picks the way for each job and switches by itself when one is out.
After the call: the meeting page in Notion
Turn on Write the call summary to Notion in Settings and add a Notion token in Keys. When you end the call, one Claude call writes the wrap-up: action items with owners and dates, decisions, your commitments, new requests, open questions and risks. The app finds this meeting’s page in your Meetings database (its date within 20 minutes of the call start, so a Notion AI Meeting Notes page counts) and appends a Pacenote section with the transcript as a sub-page. No page yet: it creates one, with a real date in the title. Missed it? Send last call to Notion in the menu bar does it later. Only text goes to Claude and Notion; audio stays on your Mac.
Shortcuts. Control-Option-H is HELP NOW and Control-Option-P pauses the transcript and the tips, even while the meeting app has the focus; change them in Settings > General > Shortcuts. The app and the skill can also record the same call side by side, each with its own files, if you want to compare them.
App or skill?
Both do roughly the same job: the same rules, the same “facts or silence”, the same tips window. Pick the one that fits how you work.
- Skill in Cowork: no API key, it runs on your Claude plan, and it can look things up in Notion and the tracker during the call. It needs the Cowork chat to stay busy for the whole call.
- App: one click from the menu bar, no chat to watch, your own key or Claude plan, and your limits.
They work best together. Make the prep in Cowork (the brief, fact cards, an outline and slides for a presentation): the app picks it up by itself when the prep title matches the call title, so keep the same title for both. Without a prep the app still works: it uses the call context you type in Start call and a local search over the project folder.
Open source inside, beta outside
The heavy parts are other people’s open-source work: speech recognition, voice and text embeddings. What is built here is the glue around them: the audio capture and its watchdogs, the filters around Whisper, the tips window, the protocol between the recorder and Claude, instant cards, speaker naming, the local index and the skill itself. Claude writes the tips.
- Whisper (OpenAI, MIT) on MLX (Apple, MIT): speech recognition.
- WebRTC VAD (BSD) via py-webrtcvad (MIT): speech or silence.
- sherpa-onnx (Apache-2.0) with the WeSpeaker voice model (trained on VoxCeleb, CC BY 4.0): who is speaking.
- Ollama (MIT) with bge-m3 (BAAI, MIT): local search by meaning.
It is a beta: tested by one person on one Mac since October 2026, thresholds are still tuned, Zoom and Teams are not fully verified. The full list with licences, links and what exactly is built here is on the open source page. Found a problem? Open an issue.
Why it is built this way
- Local Whisper. Client conversations do not go to a third-party transcription service. The model runs on Apple Silicon. The network is needed once, to download it.
- 2 channels, not 1. Microphone and system audio are captured separately, so the transcript knows when you speak.
- Your languages are fixed in advance. Your microphone is recognised only among your own languages. Better than auto-detect.
- Files as the interface. The skill (the written instructions Claude follows) and the recorder talk only through a few files and one small command line helper.
Privacy and etiquette
- Audio is not stored. Recognised phrases go straight to a text file, audio buffers live only in memory.
- Voice prints, if you turn speakers on, stay on your Mac. A voice print is biometric data in many countries: tell people, and delete the ones you do not need.
- Transcripts stay in your project folder. Keep them out of public repositories.
- The Meetings page is internal. The skill never sends anything to the client.
- Tell participants you keep a transcript and use an assistant, as with any note taker. Consent rules differ by country, by contract and by the meeting itself.
- The full text: Pacenote privacy policy and terms of use.
What you need
| Mac | Apple Silicon (M1 or newer, 16 GB of memory is enough), macOS 14.2 or newer |
| Tools | Xcode Command Line Tools, Python 3.10+ |
| Disk | About 2.5 GB for the model and the environment, plus about 1.3 GB for the optional extras |
| Claude | The app: a Claude API key, or a Claude plan with Claude Code. The skill: Claude desktop (Cowork) with a connected folder and the live-tips skill. A PM Control Tower project config is optional |
| Notion | Optional but recommended: the brief and the page after the call need it |
| Optional | Ollama with bge-m3 for local search; the voice model for “who is speaking” |
The Pacenote app needs less: macOS 14.4 or newer and Python 3.10 or newer, the rest comes from its Setup window. See the app section.
A model tip: a faster model for everyday calls, the strongest one for interviews and high-stakes calls.
Install, about 15 minutes
Most of the time is the model download. Do it once, after floor 2 works.
1. The tools it needs
If you do not have them yet, paste these into Terminal one at a time (Cmd+Space, “Terminal”). Homebrew itself is on the setup page.
xcode-select --install
brew install python@3.12
The first one opens a window. Press Install and wait until it finishes.
2. Put the recorder on your Mac
The recorder lives in the Pacenote repository (the app installs its own copy, this is for the skill). Download the repository, then ask Claude in a task with the work folder:
copy the recorder folder from ~/work/live-tips to ~/work/Tools/live-transcriber
3. Run the installer
This one you run yourself in Terminal, because macOS gives sound permissions only to the person at the Mac:
bash ~/work/Tools/live-transcriber/install.sh
It builds a small audio program, installs the speech model (about 1.6 GB) and then tests your sound.
4. Allow the microphone and system audio
During the test macOS asks 2 questions. Answer Allow to both:
- Terminal would like to access the microphone. This is your side of the call.
- Terminal would like to record system audio. This is everyone else on the call.
When the script asks, play any sound (a YouTube video) for 5 seconds.
Missed the pop-ups? Open System Settings, Privacy & Security:
- Microphone: switch on Terminal.
- Screen & System Audio Recording: add Terminal under system audio recording.
5. Optional extras
Who is speaking (a local voice model, about 30 MB):
bash ~/work/Tools/live-transcriber/bin/install-voices.sh
Local search by meaning: install Ollama, then index each project once before its calls (later runs only add changed files):
ollama pull bge-m3
~/work/Tools/live-transcriber/bin/lt index "$HOME/work/Acme Portal"
6. Check it
Ask Claude:
check ~/work/Tools/live-transcriber/logs/install.log and tell me if the install is OK
Done when the log ends with install OK and both the mic and sys peaks are above zero. If sys is zero, most likely nothing was playing during the test. Play a video and ask Claude to run the system audio check from docs/en/17-live-tips.md.
7. Try the tips window
python3 ~/work/Tools/live-transcriber/bin/demo_prompter.py
A scripted call of about 2 minutes plays in the real window: a speech, tips, a question marker, a “Who is speaking?” card, a microphone warning. Press 🆘 and ⏸ to see what they do. To check stealth, start a meeting in Google Meet, share your entire screen and look at what Meet shows you are presenting. Done when the window is not in that picture.
8. Try it on a fake call
In a Cowork task with the work folder and Notion on:
live tips <your project>
A “Live transcriber” Terminal window and the tips window open by themselves. Talk for a minute, then write stop in the chat. Done when you get a wrap-up in the chat and the meeting’s page in your Meetings database.