Transcription
The app listens to the microphone and, if you allow it, to call audio, so both sides of a conversation are written down. Each line is labeled You or Others.
On headphones the two sides stay separate on their own. On speakers, call audio is taken out of the microphone so the other person is not written down twice. If you decline call audio, the microphone is still transcribed, and those lines are labeled You.
A Start / Stop button at the top of the window halts transcription and starts it again. Listening is on when the app opens. New lines appear as they are saved, and the transcript stays pinned to the latest line until you scroll up.
Days are listed in the sidebar. Search filters that list and the lines on the selected day. Matches include the transcript and notes.
Click one line, then another, to select a stretch. Copy puts that stretch on the clipboard, including notes that fall inside it. Escape clears a selection in progress. The same stretch is what the language model sees when you ask a question.
A stray “Yeah” or “Okay” that shows up in a notification sound or other background noise is dropped.
Ignored apps
Open Ignored Apps from the menu bar. The window lists apps that are running, with a checkbox beside each one. Check an app to leave its audio out of the transcript. Music, a game, or anything else playing in the background stays out.
The choice is saved by the app’s bundle id and applied again the next time that app is running, including if it launches while Stenojot is already listening. Apps you have ignored stay on the list when they are not running, marked Not running, so you can uncheck them. A filter at the top of the window narrows a long list.
This only affects audio the system can attribute to that app. On speakers, the microphone can still hear it. Headphones avoid that. Ignoring a browser drops every sound from that browser, including a call in a tab.
Pause while Music plays
Pause While Music Plays is in the menu bar, next to Ignored Apps. It is off until you turn it on, and the choice is remembered. While it is on, Stenojot watches the Music app. Playing music pauses transcription, including sound the microphone hears from speakers. The status line reads “Paused while Music is playing.” The speech model stays loaded. Transcription resumes when Music is paused, stopped, or quit.
The first time you turn it on, macOS asks whether Stenojot may control Music. Allow that so Stenojot can see whether a song is already playing. If Stenojot opens during a song, it waits to measure the room’s noise floor until the music stops, so the song is not treated as background noise. This switch only watches the Music app.
Notes
Click the gap between lines to insert a note, or type a longer one in the composer at the bottom of the window and save it. Notes can be edited or deleted.
A note stays with the transcript around it. Copying a stretch includes the notes inside it, and a question about that stretch includes them too.
Questions
Choose a language model from LLM Settings in the menu bar (⇧⌘L). The weights download once into the app’s folder and stay there after you quit. Several sizes are available, from a small model that fits a short question on an 8 GB Mac to larger ones that handle a full day more comfortably.
Open the LLM panel at the bottom of the transcript. The context line says whether the question is about the full day or about the stretch you selected. Click a line, then another, to choose that stretch. Clear selection sends the whole day.
Type a question and press Send, or ⌘Return. The prompt includes who said each line, and any notes in that stretch. The reply streams into the panel and is saved on the transcript.
The same loaded model writes action items, daily summaries, and knowledge-base updates. Switching models unloads the previous one.
Replacements
Open Text Replacement Settings from the menu bar. Each rule is a find-and-replace pair. New lines are rewritten before they are saved.
- Matching is by whole word and ignores case.
- A rule with an empty replacement deletes the matched text.
- Leftover punctuation and extra spaces are cleaned up.
Apply to All Past Transcripts rewrites what is already saved. A line that becomes empty is removed, along with notes attached to it.
Daily summaries
Each day in the sidebar has Generate, or View once a summary exists. Generate needs a language model from LLM Settings. The same model that answers questions writes the summary.
The day is split into stretches. A new stretch starts after more than a minute with nothing said, so two conversations that follow each other closely can stay in one stretch. The model summarizes each stretch. Notes are included when they add something the transcript does not. Action items for the day are appended on their own.
A second pass then reads the finished summary and removes passages that add nothing, such as a note that someone only said “Yeah.” The result opens in its own window. Edit it and press Save. Regenerate runs the summary again and replaces that day, including unsaved edits. Change the summary prompts first if you want a different result.
If the app stays open past midnight, it writes summaries for the days that ended while it was running. A day it was closed for is left alone until you press Generate.
After the summary is saved, documents with Allow LLM updates turned on are checked against it. While that runs, the summary window says “Checking for knowledge base updates.”
Knowledge base
Under the day list, the sidebar has a knowledge base. Add creates a document and opens it. The window has a title, a description, and a text body. Edit them and press Save. A blank title shows as Untitled in the list.
The list is a table: the title, and the day it was last edited. The document you saved most recently stays at the top. A mark beside the title means Allow LLM updates is on for that document.
Each save keeps the previous version. History lists those earlier saves. Choosing one shows what changed between that version and the save that replaced it: removed lines, added lines, and a few unchanged lines around the edit. Back, or Escape, returns to the editor. Delete, in the list or in the window, removes the document and its versions.
Allow LLM updates is off until you turn it on for that document. After a daily summary is saved, and after each action-item pass, the model reads every document with the box checked. It sees the title, description, and text, plus the finished summary or the same transcript stretch that was sent for action items. If the document should change, the new text is saved, the last edited day moves, and the previous text is kept as a version. New or changed facts are stamped with when they were heard, such as [Sep 23, 2026, 3:04 PM]. If nothing should change, the document is left as it is.
System prompts
The menu bar has a System Prompt menu with five instructions. Each one opens its own window. Save stores the text on this Mac. An empty instruction uses the built-in one, except Transcript, where empty means no extra instruction at all. Reset restores that window’s built-in text, or clears Transcript.
Transcript
This instruction is sent with questions you ask in the LLM panel. It steers how those answers are written. Leave it empty to send only the transcript and the question. Reset clears it.
Action items
The checklist sits beside the transcript. After a pause of about 30 seconds, the model reads the latest finished stretch and adds concrete tasks. A stretch is only scanned once. You can add, check off, and delete items yourself, including when no model is downloaded.
This prompt is the instruction for that extraction. The built-in one asks for a JSON array of short tasks: something someone committed to, was asked to do, or still needs to do. Small talk and vague intentions are ignored. If there is nothing to add, the reply is an empty list. Reset restores that built-in text.
Summary
This instruction is sent with each stretch when a daily summary is generated. The built-in one asks for a short summary of what was discussed, not a line-by-line copy of the transcript. If a stretch has nothing worth keeping, the model is told to output nothing. An empty instruction uses that built-in text. Reset restores it.
Summary Pass 2
This instruction is the cleanup pass over the finished summary. The built-in one drops passages that add no information and keeps useful facts, the date heading, time headings, and action items when they are worth keeping. It is not supposed to add new content. An empty instruction uses that built-in text. Reset restores it.
Knowledge
This instruction is sent for each knowledge document that allows model updates, after a daily summary is saved and after each action-item pass. The built-in one changes the document only when the new material adds, corrects, or removes something worth keeping, and it puts a datetime beside each new or changed fact for when that information was heard. If nothing should change, the reply is NO UPDATE. An empty instruction uses that built-in text. Reset restores it.