lognote is now Oris — same local-first meeting notes, new name.

Skip to content

the fine print

Everything Oris does, in one place.

The homepage covers the headline. This page covers the rest: every setting, every recovery path, every silent piece of machinery that makes the product work. Read it cover-to-cover or jump to a section.

basics

The basics

Recording, the status pill, what lands in your note.

Starting and stopping a recording

Toggle recording from the mic ribbon or command palette in Obsidian, or from the record strip in the Oris app itself.

The Obsidian plugin puts a mic ribbon icon in the left sidebar. Click it to start, click it again to stop. While a recording is running the icon turns into a red record dot, and hovering it swaps in a stop square so it’s obvious what the next click does.

The same three actions sit in the command palette: Oris: Start recording, Oris: Stop recording, and Oris: Toggle recording. Assign a keyboard shortcut to any of them under Settings → Hotkeys → search “oris”. Oris ships with no default chord, on the grounds that whatever you have already bound is more important than whatever we would have picked.

Recording starts where your cursor is, in the note you have open, so the transcript comes back to the spot you were writing in. See Marker-based insertion for what that means if you move around afterwards.

The Oris app has its own Start recording / Stop strip too, so Obsidian doesn’t have to be open (or installed) to capture a meeting. It’s the same single recording underneath: start in either place, stop in either place. See Recording without Obsidian.

Obsidian with the Oris mic icon idle in the left ribbon, a meeting note open and ready

The same note a moment after clicking record: the ribbon icon is now a red dot and Oris has placed its recording marker at the cursor

Status bar pill

A live recording indicator in Obsidian's status bar — click to stop.

While a recording is active, the plugin shows ● recording 02:14 in Obsidian’s bottom-right status bar. Click it to stop. The pill re-checks every second that the recording is genuinely still running, so it can’t sit there showing a recording that has already stopped.

Obsidian's status bar during a recording: word and character counts on the left, the red recording pill with elapsed time on the right

After you stop, the pill keeps you posted through the work that happens next. It shows ✎ transcribing… while the transcript is being made and ✍ summarizing… while the summary runs. It also covers the moments that used to look like a hang: ⏳ preparing model… if the transcription model has to warm up first, or ⬇ downloading model… if a longer meeting needs a larger summarization model pulled down. The label clears on its own the moment your note lands. See Preparing the model for why that first one matters.

Imports get their own state: ⬆ importing… while a transcript or audio file is being brought in.

The pill lives in Obsidian, so you see it when Obsidian is in front of you.

What lands in your note

A structured summary block followed by a collapsible full transcript.

When a recording finishes, Oris replaces the pending marker in your note with two things: a summary block carrying a TL;DR, action items, decisions, open questions, topics discussed and notable quotes, and a full transcript that renders as click-to-expand so it stays out of your way until you want it. Sections with nothing in them are left out rather than printed empty. Below both, a small footer (_Summarized by **provider** (model)_) records which backend wrote the summary, so you can always tell what Auto picked.

A meeting note in Obsidian with a landed summary: the note's title, the audio wikilink, and the Summary section's TL;DR

Turn off Settings → Summarization → Enable summaries and the transcript still lands, as a plain section with nothing above it. See Skipping summaries entirely.

If summaries are on but the summary fails, because of a bad API key, an unreachable provider, or a model that returned nothing, the transcript lands exactly as it would have. In place of the summary you get a visible ⚠️ block naming the provider, what went wrong, and how to retry. Oris remembers the failure, so the retry command and the app’s Recordings history can both offer you a one-click retry later. See Retry a failed summary.

me / others speaker labels

Mic audio is labeled "me"; system audio is labeled "others".

Because Oris records your microphone and your Mac’s system audio as two separate tracks, the transcript comes back already split by side, with no diarization setup to configure. Anything captured through the mic is tagged me, and anything captured from system audio, whether that’s Zoom, Teams, a browser tab or a phone call played through the Mac, is tagged others. Consecutive segments from the same side get grouped under one block, with timestamps in _[mm:ss]_ format.

One limitation is worth knowing: every remote participant pools under others. Separating remote speakers from each other is a v2 feature rather than something the product does today. If you need to attribute a specific quote to a specific person, the timestamp plus your own memory is the workflow.

Marker-based insertion

An invisible HTML comment reserves the spot where your transcript will land.

When you start recording, Oris writes a unique <!-- TRANSCRIPT_PENDING_<ts>_<pid> --> HTML comment at your cursor. It’s invisible in preview, and it’s how Oris finds the exact insertion point when the transcript is ready. So you can scroll, edit, open other notes, even quit Obsidian, and the transcript still lands where you were when you hit record.

Rename the note while the recording is running and it still lands correctly. Starting a meeting in an Untitled note and giving it a real name afterwards is a common enough habit that Oris looks for its marker across the vault rather than only where the note used to be.

If the marker itself is gone by the time transcription finishes, the transcript is appended to the end of the note. If Oris genuinely can’t find the note, because it was deleted or because the marker turns up in more than one place, the transcript lands in your vault’s inbox/ folder instead. See Inbox fallback.

Markers are an Obsidian idea, so they need an Obsidian destination to mean anything. If you record from the plugin while your destination is a Markdown folder, the note lands there the way that destination always places one: a new file under your naming pattern, or the end of the single note you chose to append to. The marker in the note you were typing in stays where it is, an invisible comment you can delete whenever you notice it. The completion notification names the file that was actually written, so the transcript is never somewhere you have to go looking for.

Frontmatter and metadata

What headers and links Oris adds to a note it writes.

For a live recording, Oris leaves your note’s frontmatter alone. It writes at the spot it reserved when you hit record and touches nothing above or below. The transcript block opens with a ## 🎙️ Transcript heading and an _Audio: [[…]]_ wikilink, so the source recording is one click away for as long as you keep it, and the summary footer records which provider and model wrote the summary.

Imports are different, because there is often no note yet. When Import external transcript… or Import audio file… creates a note, that note gets YAML frontmatter at the top recording where it came from: title, source, source_format, imported_at, and generated_by. Skimming a folder of imports, that’s enough to tell at a glance which file each note traces back to and when you brought it in.

Choosing an existing note as the destination instead changes where that block lands. The same fields are written, but the import is appended to the end of the note rather than becoming page-top frontmatter. Obsidian only treats a --- block as frontmatter when it opens the file, so an appended import reads as a plain block of text rather than note properties.

An imported note's Properties panel in Obsidian: title, source, source_format, imported_at, and generated_by, all filled in by the import

Inbox fallback

When the target note is gone, transcripts land in inbox/ instead of being lost.

A simple rename is usually followed automatically, so the fallback fires less often than you might expect. See Marker-based insertion. But if Oris genuinely can’t work out where a transcript belongs, because the note was deleted between hitting record and transcription finishing, or because the spot it reserved now matches more than one note, it drops the result in your vault’s inbox/ folder as transcript-<timestamp>.md rather than failing the run. A macOS notification tells you it landed there instead of where you originally pointed it.

The folder is created on demand, so there is nothing to set up. A backlog building up in there usually means something upstream is worth fixing, but the work itself is never lost.

The inbox/ folder does one more job now: it’s where recordings started without Obsidian land by default when your destination is an Obsidian vault. There’s no cursor and no open note in that flow, so a fresh note in inbox/ is the designed landing, not a rescue. (A Markdown-folder destination has its own placement rules and no inbox/ involvement.)

Oris treats an inbox landing as a success, because it is one: the recording was transcribed, summarized and saved, just not into the note you were looking at. The notification says where it went rather than warning you that something broke, and the run is recorded as completed — which matters when you are scanning Recordings history, because a note in inbox/ is a note you still have and it should read that way.

A genuine failure to write anywhere is a different thing, and it now looks different too. If Oris cannot write the note at all — the file is read-only, the disk is full, your sync client has it locked — it holds the finished transcript in a durable queue rather than scattering a copy somewhere and hoping you find it. The notification tells you the transcript is safe and waiting, the Recordings tab shows it under Awaiting delivery with a retry button, and the work lands in the note you actually wanted once the problem is cleared. Nothing gets duplicated on the way: a delivery that already succeeded is recognised and skipped instead of appending a second copy. See Deliveries and receipts.

Your Oris (usage stats)

A glanceable card of fun stats — notes, time, words, and your talk-ratio — computed locally, never sent anywhere.

The Oris app’s General tab carries a Your Oris card: a small set of stats about how you’ve used the app. It’s there to glance at, not to act on. There are no buttons, no goals, no nudges — just numbers that add up as you record.

Everything on the card is computed on your Mac from a local usage ledger. Nothing about it leaves the device, and Oris never phones home to assemble it. This is consistent with Oris’s promise that it never sends your audio anywhere: the stats are derived from your own recordings, on your own machine.

What’s on the card

The Your Oris stats card on the app's General tab, showing notes recorded, time captured, words, talk ratio and streak

  • Notes recorded — all-time, plus a this-week count.
  • Total time captured — the summed length of every recording.
  • Words captured — the running word count across your transcripts.
  • Talk-ratio — “you spoke X% of the time.” Because Oris records your mic and the system audio as two separate tracks, it already knows your share of each conversation versus everyone else’s. When your share is low, the card says so gently (“mostly listening 👂”). It’s an observation, not a score.
  • Average session length and longest session — the typical recording, and your single longest one.
  • Busiest day of the week — a plain observation of when you capture most (for example, “you capture most on Tuesdays”).
  • Streak — your current and best run of days with at least one recording. It’s shown for interest only; the card never frames it as something to maintain or warns you about losing it.
  • Capturing since — the date your first recording landed under this build.

A few honest notes

The card starts fresh from this release. It doesn’t backfill recordings you made before it shipped, so the numbers grow from here rather than reflecting your whole history with Oris.

There’s no “time saved” or productivity figure. Oris doesn’t estimate what typing the same notes would have cost you, because any such number would be made up. The card sticks to what it can actually count.

The talk-ratio is the one stat most tools can’t show, and it falls out of the two-track capture for free — no extra processing, no upload, no separate model. It’s a small reflection of how your meetings actually go.

Recordings history

Every recording and import in one place — when it happened, where the note landed, whether the summary succeeded, and what you can still do about it.

The Oris app’s Recordings tab opens with your history. The last five recordings sit at the top as compact rows, and a “See all recordings…” button opens the full list in a sheet — scrollable, newest first, loaded in batches of 50 with a “Show more” footer so even a multi-year history stays snappy. Everything that landed a note appears: live recordings and imports alike (imports carry a small import badge), including runs that failed. The list updates live — a recording that finishes while you’re looking appears at the top on its own. (When a transcript is saved but hasn’t landed in its note, an Awaiting delivery section also appears above the history; see Deliveries and receipts.)

What a row shows

The All recordings sheet, listing recordings with their status, mini-stats and row actions

  • The note and when — the landed note’s name (or “(no note)” when Oris doesn’t know where it went) plus the date and time of the recording.
  • Mini-stats — a one-line caption like 12 min · 1,840 words · you 38% / others 62%. The talk split comes from the same two-track capture behind the Your Oris talk-ratio, and is omitted for single-track audio.
  • Status at a glance — a green check for a clean run, an orange warning when the transcript landed but the summary failed, and a failure mark when the run itself failed.
  • Delivery status — when a transcript was produced but couldn’t be written into your note, the row says so in plain words: “delivery failed (permission) — the transcript is saved, not yet in the note”. The work is held in the outbox; nothing is lost.
  • Audio countdown — how long the recording’s audio has left before retention cleanup takes it (“audio: 82d left”), or “audio pruned” once it’s gone.

What you can do from a row

  • Open note — opens the landed note where it lives: Obsidian for a vault note, your default Markdown editor for a note delivered to a folder destination, and Notes itself for a note delivered to Apple Notes. The row asks the delivery receipt where the note went, so the right app opens for each kind.
  • Share — the standard macOS share sheet, with the note’s Markdown file attached. Sharing works from rows that landed a file; a note delivered to Apple Notes has no file on disk to attach, so share it from Notes itself.
  • Reveal audio — selects the .m4a in Finder.
  • Retry summary — appears when a recording’s summary failed and there’s still enough kept to retry it. One click re-summarizes just that recording, through the same loop every other retry uses; the row shows a spinner while it runs and heals to a green check on success.
  • Retry delivery — appears when the transcript is saved but never landed in the note. One click delivers the saved copy — no re-transcription, no re-summarization, and never a duplicate. The one exception is a delivery whose outcome Oris genuinely can’t determine: there the row asks you to check the note instead of offering a button that could land it twice.
  • Delete audio now — removes the audio and its working files ahead of the retention sweep, after a confirmation that spells out what goes: the audio, the files that go with it, and the ability to retry that summary. The note itself always stays.

Actions gray themselves out when they no longer apply. A note that’s been moved or deleted disables Open and Share, pruned audio disables the audio actions, and a summary failure whose recording has since been cleaned up shows the warning with “retry no longer available”.

Where the history comes from

The history is read from the same local usage ledger that powers the Your Oris stats card — a plain append-only file on your Mac that now also records where each note landed and which audio file produced it. The ledger itself never leaves your Mac: it is never transmitted, and the feedback composer’s diagnostics don’t include it. Sharing a note from a row is always an explicit action you take, never something Oris does on its own. The completion notification got the same upgrade: when a recording lands, the banner now ends with that recording’s mini-stats line.

Rows from before this release show stats only: older ledger lines don’t carry note or audio paths, so they render without a note link or audio actions. Oris doesn’t guess or backfill.

Quick Note

A global hotkey, a sentence spoken out loud, and the text lands where you told it to, without opening Obsidian or anything else.

Meetings are one kind of capture. The other is the thought you have between them, which is gone by the time you’ve found a window to type it into. Quick Note is that second path: press a hotkey anywhere on your Mac, say the thing, and the transcribed text lands in the destination you configured. Nothing has to have focus — the hotkey is global. Oris itself does need to stay running, though, and closing its last window quits it, so leave the window open (or minimized) if you want the hotkey live.

The Voice tab in the Oris app, with the voice-capture switch, destination picker, hotkey, activation mode and cleanup toggle

Quick Note lives on the Voice tab in the Oris app. A master switch there, Enable voice capture, turns the whole feature on or off. It’s read once when Oris launches, so flipping it shows “Saved — relaunch Oris to apply.” until you quit and reopen the app. The hotkey is latched at launch the same way. Destination, activation mode, and AI cleanup are the live ones: change any of those and your very next capture uses the new value.

The tab stays put either way. Switching off takes effect at the next launch just as switching on does, so until you quit and reopen, the hotkey is still registered and still captures. Once Oris has started up with it off, the tab says the hotkey isn’t listening and points out that quick notes you’ve already taken are still there to open — turning it back on is one switch and a relaunch away.

Speaking a note

The default hotkey is ⌃⇧Space. It’s registered system-wide, so it works from any app, and it needs no extra permission grant beyond the microphone access Oris already has.

If you swap it for something else, be aware that macOS claims a lot of combinations for itself, and it doesn’t announce it when it does: a reserved shortcut registers perfectly happily and the system then eats the keypress before Oris ever sees it. A hotkey that appears to do nothing is usually this rather than a bug. The Voice tab helps on both counts — it warns you when the hotkey you’ve configured is one macOS is known to own, and it shows whether the registration itself succeeded.

While you speak, a small panel sits in the top-right corner of the screen with a record dot, a running timer, and a level meter. It confirms Oris is hearing you without covering what you were doing. When you finish, the panel moves through “Transcribing…” and “Saving…”, then a short toast names where the note went. On a cold first run the panel says “Preparing model…” and explains the wait rather than looking frozen.

A quick note being captured: the recording pill counts up in the corner, a toast confirms it was saved, and the new note appears at the top of the Quick notes list

Transcription for quick notes runs on your Mac, the same as it does for meetings.

Two ways to activate

Under Activation you pick how the hotkey behaves:

  • Press to start, press again to stop (the default). Best for longer notes, since you’re free to gesture, scroll, or walk away from the keyboard while you talk.
  • Hold to talk, release to finish. Hold the hotkey while you speak and let go when you’re done. A press too quick to be a real hold records nothing rather than starting a capture you didn’t want.

Hold mode is a strict superset of toggle: the key-down still starts a capture, so if a release is ever missed, pressing the hotkey again always finishes the note. It can’t get stuck.

Where captures land

Quick note destination offers four choices:

DestinationWhat it does
In-app inbox (default)The capture stays in Oris’s own quick-notes store. No vault setup needed, and nothing is written to your vault until you say so.
Pinned noteAppends to an existing note in your vault, at a vault-relative path you name (inbox/quick-notes.md, say).
Daily noteAppends to a per-day quick-notes file, created on first use.
Weekly noteThe same, one file per ISO week.

Daily and weekly notes live in a folder you choose (inbox by default) and are Oris’s own files (quick-2026-07-26.md, quick-2026-W30.md) rather than your Daily Notes plugin’s note. Each capture appends as one timestamped bullet, so a day’s file reads as a running list.

The stamp on that bullet matches the note it lands in. In the daily note it’s the time alone (- 10:09 …), because the date is already the note’s name. A pinned note and the weekly note collect captures across days, so there each bullet carries its capture date too (- 2026-08-10 10:09 …) — a month of appends stays readable history instead of a wall of bare times. The date is the day you spoke the note, even when a held capture is delivered later.

Two deliberate behaviors are worth knowing:

  • A pinned note is never created for you. If the note you named isn’t there, Oris doesn’t guess, because a silent create would quietly hide a note you’d renamed or moved. The capture falls back to the in-app inbox instead.
  • A misconfiguration never costs you a capture. Every destination problem (an unset vault, a missing pinned note, an unrecognized mode, a vault write that didn’t go through) falls back to the in-app inbox, and the toast tells you which one happened. If even that write fails (a full disk, a permissions problem), Oris says so rather than shrugging: the toast reads “Quick note not saved — audio kept”, stays on screen instead of dismissing itself, and names the audio file it kept so nothing is silently thrown away.

While a vault destination is configured, the settings tab shows “Next capture lands in …” with the actual path, computed the same way the real capture computes it. With an Apple Notes destination none of these file choices applies — quick notes go to Notes — so the Voice tab says that instead of showing them: it names the folder and the note your captures append to, and the vault fields stay out of the way until you switch back to a file destination.

With an Apple Notes destination, captures go to Notes, and the shapes above change. The sink is a note in Notes rather than a file, so what you get is a note per day (Quick notes — <date>, created as Oris needs it) or one note you name, created the first time you use it. The same stamp rule applies there: the per-day note keeps time-only bullets, and the single named note dates each one. The file choices on the Voice tab, including the “Next capture lands in …” preview they feed, stay configured but don’t act while Apple Notes is the destination; switch back to a vault or folder (by re-running the walkthrough from the General tab, which is where every destination change is made) and they take over again. A capture whose delivery to Notes doesn’t complete is saved to the in-app inbox rather than lost, and what happens next depends on how far the delivery got; the Apple Notes page walks through both cases.

A stuck delivery announces itself. When something can’t be delivered and ends up waiting — a quick note, or any other capture — the Recordings tab’s label carries the count, and when the queue goes from empty to non-empty — and stays that way for the half-minute grace described below — Oris also posts one macOS notification: “A note couldn’t be delivered — it’s saved in Oris.” Clicking it brings you to the Recordings tab in Oris, which holds the Awaiting delivery queue. It’s one banner per incident, not one per capture: three captures failing in a row get a single notification, and you won’t be re-notified on every launch about a queue you’ve already been told about. That grace period exists because a queued delivery Oris is about to finish on its own — the normal state right after you open the app with an Apple Notes destination — isn’t stuck at all, and most of those drain quietly before the banner would fire.

The in-app viewer

Voice → Open quick notes opens the Quick notes window: the captures Oris is holding listed down the left, grouped by day (Today, Yesterday, then dates), and the selected capture’s full text on the right. It lists the ones kept in the in-app inbox — a quick note you routed straight to a vault note went to your vault, and one delivered straight to Apple Notes went to Notes, so those live there and not here. (A held capture that Oris later re-delivered on its own stays listed here too — but it flips to sent the moment that delivery lands, so the list never claims a delivered capture is still waiting.) It updates live, so a note you speak while the window is open appears on its own.

Four actions sit above the text:

  • Send to vault — sends the capture on to your destination (⌘↩). With a file destination it writes the capture into your vault, following whichever vault destination you’ve configured (pinned, daily, or weekly). The in-app inbox isn’t a vault location, so if that’s your setting, sends go to today’s daily quick note. Once it lands, the button becomes Open in Obsidian and takes you straight to the note. With an Apple Notes destination the same button re-sends the capture to Notes rather than writing a file, and once the capture has landed there it becomes Open in Apple Notes — one click and Notes comes forward on the exact note it went to, whether you sent it yourself or Oris finished a queued delivery on its own. A capture delivered by an older version of Oris didn’t record which note it landed in, so it reads Sent to Apple Notes without offering the open. A held capture whose failure happened after Oris had already reached Notes is queued and retried on its own, and when that retry lands the capture flips to sent here by itself — the button stops offering a re-send, so a capture that already landed can’t be appended a second time by accident.
  • Copy — the capture’s full text to the clipboard (⇧⌘C). The text in the pane is selectable too, so ⌘C still copies just what you highlighted.
  • Reveal — shows the underlying file in Finder (⇧⌘R).
  • Delete — removes the capture from Oris (⌘⌫), after a confirmation that’s explicit about whether a copy already went to your vault. Deleting here never touches the vault copy.

Sending to the vault doesn’t remove the in-app copy: the capture stays listed, marked as sent, and the vault note is a separate document from that point on.

Send to vault is how a capture turns into something you work with. This window’s job is to show you what you said and get it where it belongs; once a capture lands in Obsidian it’s an ordinary Markdown note, and reshaping it, filing it, linking it, or folding it into something longer all happen there, in the editor you already use. With an Apple Notes destination the landing spot is Notes, and the same work happens there.

Optional AI cleanup

Tidy up quick notes with AI is off by default. Turned on, it adds punctuation and capitalization and drops filler words before the note lands, so a dictated thought reads like writing rather than a transcript. It uses the same provider settings as your summaries, which means on-device by default — and, if you’ve pointed Oris at a provider that isn’t on this Mac, the note’s text goes there the way a summary would. That’s a cloud provider, or a self-hosted Ollama endpoint running on another machine. That adds a step between “Transcribing…” and the note landing: a second or two on-device with a warm model, longer on a cold one or over the network with an off-device provider. There’s a ceiling on how long it will wait, and passing it just files the plain transcript.

The reason it’s safe to turn on isn’t that a model is trusted, it’s that its output has to earn its place. Dropping “um” is the job, so the check isn’t “did any word disappear”, it’s “is this still the same note”. Before a cleaned version replaces your capture, Oris compares it against the raw transcript and rejects it for content that went missing beyond the filler, wording that was never dictated, or output that drifted into summarizing rather than tidying. Negations and numbers get the strictest treatment of all: they’re checked in place, so one that quietly moves to another clause is rejected outright.

This is a deliberately conservative check rather than a proof. It’s tuned to reject anything suspicious, because a rejection costs you nothing: you get the raw transcript, which is the floor the feature promises. Two things it can’t do, both worth knowing. It can’t certify that an accepted note is word-perfect, since a long capture carries a little tolerance for the ordinary substitutions that come with tidying. And it compares against the transcript rather than against your speech, so a word the recognizer misheard is a word the check will happily preserve. Read a note you’re relying on, the way you would any other. If that trade isn’t one you want, leave the setting off and nothing stands between the transcript and your note. Cleanup that fails, times out, or can’t run lands the raw text the same way.

Very long captures skip cleanup and land raw. It’s a tidy-up pass for a spoken thought, not a rewrite engine for a monologue.

Meetings win

A meeting recording and a quick note both want the microphone, so they can’t overlap, and the tie always breaks the same way: the meeting wins.

Start a meeting recording while a quick note is in flight and the quick note is cancelled. Oris notices within about a second, whichever activation mode you’re on, and the panel says what happened: “Quick note cancelled,” with a line naming the reason, which is that a meeting recording started. Nothing is filed. The meeting recorder starts once the quick note’s recorder has stopped, so the handoff takes a moment and a sentence spoken across it may not land in either recording.

Discarding it is the deliberate part. You didn’t choose to end the note where the meeting cut in, so half of a sentence saved as an ordinary quick note would read exactly like one you meant to stop there, and you’d have no way to tell the difference later. A cancelled note you were told about is the better of the two.

A recording that stops for some other reason (the recorder crashed, or something outside Oris killed it) is treated differently, because nothing else is competing for that audio. The panel says “Recording stopped — audio kept”, stays on screen instead of dismissing itself, and names the folder holding what was captured, the same way every other kept-audio message does.

Going the other way, pressing the hotkey to start a new quick note while a meeting is recording is refused with “Meeting recording in progress.” Stop the meeting first.

Changing the hotkey

Every Quick Note setting is a control on the Voice tab, with one exception: the hotkey itself is shown read-only while the control for changing it in the app is still being built. Until then, the Voice tab tells you what to do if you need a different combination, naming the setting to change (ORIS_QUICKNOTE_HOTKEY) in the message itself. A hotkey needs at least one modifier, so a bare key can’t quietly take over a system-wide shortcut, and it takes effect after a relaunch because it is registered once when Oris launches.

A combination Oris can’t make sense of never leaves you with a dead feature. It falls back to the default and the Voice tab shows a warning naming what it couldn’t read.

Recording without Obsidian

Start, watch, and stop a meeting recording from the Oris app itself, no Obsidian required, and open the finished note from the same strip.

Obsidian is the richest way to use Oris, but it is no longer the only way to start a meeting. The Oris app has its own record strip, sitting above the tabs so it’s visible wherever you are in the app. Click Start recording and the meeting is being captured, exactly as if you’d clicked the ribbon icon in Obsidian. Nothing else needs to be installed or open: on a Mac with no Obsidian at all, this strip plus a Markdown-folder or Apple Notes destination is the complete workflow.

While idle, the strip shows where your next recording will land — the destination you chose during onboarding — and warns you before you record if that destination has a problem (a vault or folder that moved, say), rather than after a meeting has nowhere to go.

During and after the meeting

Once recording, the strip shows a red dot and the elapsed time, with a Stop button. After you stop, it walks through the same stages the Obsidian status pill shows: transcribing, summarizing, and preparing or downloading a model when one is needed. It ends at “Notes ready” with an Open note button that takes you straight to the finished note: in Obsidian for a vault note, in your default Markdown editor for a folder note, or in Notes for an Apple Notes delivery.

A finished run never takes the record button’s place. At “Notes ready” the message and its Open note button sit beside Start recording rather than in place of it, and a run that failed puts its message there the same way, so either way the next meeting is one click away and starting it clears the finished one. While a recording or its transcription is actually running, the strip shows that instead, since there is only ever one recording at a time. The ✕ is still there for when you want to clear the message without recording again, which also brings the destination line back.

Unlike the plugin flow, there’s no cursor and no open note here, so nothing is inserted anywhere while you record. The note is created when the recording finishes, named and placed by your destination’s settings; see Destinations for how that’s decided. In an Obsidian vault, standalone recordings land as new notes in your inbox folder.

If the summary fails on one of these recordings, everything you’d expect still works, and it works from the app: the transcript lands, the ⚠️ block goes where the summary would have, and the retry in Recordings → See all recordings… heals it, patching the note in place on a file destination or delivering the fresh summary as its own note beside the original on Apple Notes. See Retry a failed summary.

One recording, every surface

There is only ever one recording at a time, and every surface sees the same one. A meeting you started in Obsidian shows up in the app’s strip and can be stopped there, and a meeting you started in the app shows in Obsidian’s status bar the same way. The strip is a window onto the recording, not a separate recorder.

If you try to quit Oris while a recording is running, it asks first. The recorder is a separate process and keeps capturing if the app closes, and the dialog says exactly that, offering Stop recording or Keep recording.

From the command line

The same flow works from a terminal for repo installs: oris-record-start with no target starts a standalone recording, and on oris-record-stop the transcript is processed in the background and delivered to your destination, with a notification naming the created note. The old behavior of printing the transcript to the terminal and waiting for it is still there behind an explicit --stdout flag on oris-record-stop, for scripts that were built on it.

Destinations

Where your notes land is a choice, not an assumption: an Obsidian vault, any folder of Markdown files, or Apple Notes. Picked once during onboarding, visible in Settings ever after.

Every transcript Oris produces lands somewhere. Where is an explicit choice called a destination, made once during the guided walkthrough and shown on the General tab from then on. The walkthrough offers three cards:

  • Obsidian vault — the richest integration and the same behavior Oris has always had: cursor-anchored insertion when you record from the plugin, rename-following, the inbox fallback. If you have exactly one vault, onboarding finds it on its own.
  • Markdown folder — any writable folder on your Mac. No .obsidian directory, no Obsidian install, nothing to set up beyond picking the folder. Notes are ordinary .md files you can open with anything.
  • Apple Notes — a note in the Notes account and folder you pick, on this Mac. The one destination that isn’t a file: it needs a permission from macOS at setup, and its deliveries happen inside the Oris app.

Notion is planned. The onboarding cards say so plainly, because a destination that only pretends to work would be worse than one that isn’t offered yet.

How a folder destination lands notes

Choosing a Markdown folder also chooses what happens per recording:

  • Create a new note (the default). Each recording becomes its own file, named by a pattern of date, time, and the note’s title, so a folder full of meetings sorts itself chronologically in Finder: 2026-07-31 14-02 Weekly sync.md. The onboarding step shows a live preview of the name as you edit the pattern, awkward characters in titles are cleaned up so the filename is always valid, and if a name is somehow taken, Oris suffixes rather than overwrites. An existing note is never clobbered.
  • Append to one note. Every meeting lands at the end of a single file you name. Oris creates that note when you continue through the walkthrough, and from then on will only ever append to it. If the file later disappears, the delivery is held safely in the outbox rather than silently recreating a note you may have deliberately removed.

The destination decides, always

A folder is a folder, not an editor, so two things an Obsidian vault can do have nothing to act on here: replacing the invisible marker at your cursor, and following a note you renamed mid-meeting. When they can’t apply, the destination wins. The note is created (or appended) in your folder exactly as it would be for any other recording, and the marker in whatever note you happened to be typing in is left alone. The same holds for importing a transcript into a note you have open. Nothing is refused and nothing is held back: the completion notification names the file that was actually written, so you’re never looking at an unreplaced marker wondering where your transcript went.

Where you see it afterwards

The General tab’s setup list gains a Destination row: the kind and path when everything validates, or the specific problem when it doesn’t. The record strip repeats the destination’s name next to Start recording. Both surface a problem before you record (a folder that moved, a vault that’s gone), not after a meeting has nowhere to land.

Existing Obsidian setups

If you were already using Oris with a vault, nothing changes and there is nothing to redo: your vault carries over as the destination automatically on first launch after updating, recordings keep landing exactly where they always did, and the plugin flow with its markers, cursor insertion, and rename-following is untouched.

Apple Notes

Meeting notes and quick notes delivered straight into Apple Notes on this Mac: pick the account and folder once, allow the one macOS permission it needs, and open the finished note from Oris.

Apple Notes is a destination now, alongside an Obsidian vault and a plain Markdown folder. Pick it during the guided walkthrough and every finished meeting becomes a note in the folder you chose. Quick notes append to a note of your choosing, and the Open note button in Oris takes you straight to it in Notes.

Each meeting’s note is titled with the date and time the recording started, then the meeting’s title: 2026-08-07 14-02 Weekly sync, or 2026-08-07 14-02 Meeting when the meeting has no title of its own. That timestamp is the recording’s, not the delivery’s, so a note that reaches Notes late (after a permission fix, say) still says when the meeting actually happened, and a folder of untitled meetings stays sortable instead of filling with notes all called “Meeting”.

A delivered meeting note in Apple Notes, dark mode: "2026-08-10 10-02 Weekly product sync" open in a Meetings folder, with a Summary, Action Items with owners, Decisions and Notable Quotes — and the day's other deliveries, including a "Quick notes — 2026-08-10" note, in the list beside it.

It is a different kind of destination from the other two. A vault and a folder are files Oris can write whenever it likes. Apple Notes is another app, and macOS only lets one app drive another with your permission. That single fact shapes everything below: the permission macOS asks for once, and the fact that deliveries go through the Oris app rather than around it.

Choosing the account and folder

Choose Apple Notes in the walkthrough and Oris asks Notes itself what you have, rather than making you type anything. It lists your Notes accounts (iCloud, On My Mac, an Exchange or Google account if you have one) and then the folders inside the account you pick, each shown by its full path, Work / Meetings. Two folders called “Notes” in different places are never confused for each other.

A few things are worth knowing at this step:

  • Shared folders are labelled, not blocked. A folder you share with other people shows (shared) beside its name, and picking it raises a warning that says exactly what that means: notes delivered there are visible to everyone you share it with. Oris still lets you choose it. This is your library, and there are perfectly good reasons to want a shared team folder. If a folder you already deliver to becomes shared later, Oris tells you once, the first time it notices.
  • An account with no folders can’t be used yet. Notes needs at least one folder to put a note in, so Oris asks you to make one (File → New Folder in Notes) and offers a Reload folders button, rather than inventing a folder in your library.
  • Oris still keeps a local folder. Even with a Notes destination, Oris needs somewhere on disk for your recordings. If you already have one, it stays: switching an Obsidian vault or a Markdown folder over to Apple Notes leaves that folder as the local root, and nothing about the switch moves a file. Only a Mac with no usable folder yet gets a new one, ~/Documents/Oris. Either way the setup card names the exact path before you commit. Your notes go to Apple Notes and your audio stays in that folder. A note that has not reached Notes yet is in neither place: it is saved durably in Oris’s own delivery outbox, which is what the Awaiting delivery section reads from.

The permission macOS asks for

Before macOS asks anything, Oris explains what is about to happen and why. You see an explainer screen, then a Continue button, and only then the system prompt. The prompt itself asks whether Oris may control Notes, and the reason it gives is the whole scope of what Oris does with the grant:

List your Apple Notes accounts and folders, create and append your notes, and open a note you ask to see.

Click OK and setup carries on into the account picker, which is itself the proof the grant works. There is no second prompt later. The permission is asked for once, in setup, on purpose: a delivery is a bad moment to meet a dialog.

If you click Don’t Allow, nothing breaks and nothing is lost. Oris shows a recovery panel with the exact path to fix it (System Settings → Privacy & Security → Automation → Oris → enable Notes), a button that opens that pane for you, and one warning worth reading: macOS may quit Oris when you toggle its Automation switch — and if it stays open, quit and reopen it yourself, because a running app keeps its old answer until it relaunches. Check again re-reads the answer without asking you anything.

The same goes for the permission being switched off later, however that happens — a change of mind in System Settings, a reset, a restored machine. Deliveries that come due while the permission is off wait quietly rather than failing over and over, and once Oris is running with the permission back on, it notices on its own and delivers everything that was waiting. That includes a delivery that was cut off mid-write when the permission changed under it: Oris first checks the note to see whether anything landed, and only then finishes or re-sends, so nothing arrives twice. You don’t need to retry anything by hand; the fix is the two steps the panel names — flip the switch back on, and make sure Oris has been restarted since.

Once a Notes destination exists, the General tab grows an Apple Notes automation row beside the Microphone & system audio row. It reads allowed, not set up yet, turned off, or not checked, and its button is the fix for the state you’re in rather than a probe of it. When the row says not set up yet, the button is Grant access: a short caption right there explains what macOS is about to ask, the click raises the one system prompt, and the row updates itself with the answer. (If the probe couldn’t reach Notes at all, the button stays Check, since no prompt can be promised until Notes answers.) When it says turned off, the button is Open System Settings, landing on the Automation pane; when you come back to Oris it re-checks the answer on its own, so you’re not asked to click a second time. A quieter Check again link only re-reads the answer macOS already holds and never asks anything. Not checked is an ordinary resting state rather than a problem: reading the answer means launching Notes, and opening a settings tab is not a reason to open Notes, so Oris reads it by itself only when Notes happens to be running already. With Notes closed the row simply says nobody has looked yet, and its Check button is the explicit ask.

The General tab in Oris, scrolled to the Setup card: green checks for Destination reading "Apple Notes · Oris in iCloud", Microphone & system audio, Models ready, Notifications, and an Apple Notes automation row reading "allowed". The record strip above reads "Start recording → Apple Notes".

This is a permission of its own, on top of the microphone and system-audio grants Oris asks for at first run (see Microphone and System Audio Recording permissions) and the notifications prompt that follows them. macOS keeps it separate from all of those, in the Automation section rather than under a microphone or screen-recording heading.

Quick notes into Notes

Choosing Apple Notes also decides where Quick Note captures land, in one of two shapes:

  • A note per day. Oris creates a note called Quick notes — <date> in your folder as you need it, and appends the day’s captures to it.
  • One note. Every quick note appends to a single note you name, created the first time you use it.

A day's quick notes in Apple Notes: a note titled "Quick notes — 2026-08-10" holding four captures, each a bullet that starts with the time it was spoken.

Oris makes that note itself, the first time you use it, and it does not check whether you already have one by that name. Notes allows two notes in a folder to share a title, so if you name a note you already keep by hand you will end up with two of them and your captures will go to Oris’s. Pick a name you are not already using.

After that first capture Oris remembers the note it made and appends to that note, not to anything with that title, so renaming it in Notes does not send your captures elsewhere. The title only comes back into it when that remembered note stops resolving, either because you deleted it or because something invalidated Notes’ own identifiers wholesale, which is what an iCloud sign-out, a restore, or a migration does. The next capture then looks for the note by name before making a fresh one, and it looks only among notes carrying Oris’s own mark. Oris recognises its own by an invisible mark it writes into them, and appends only to those, so a note you keep by hand under the same name isn’t a candidate at all: it is not adopted, and it doesn’t even count as a competing match. A note of yours qualifies only if it carries that mark, which is what happens when you copy Oris’s own notes into one, since the mark rides along with them. Find none and it makes a fresh one rather than resurrecting the note you removed. It will do that once for a given name, not endlessly: delete the replacement too and the capture is held in Oris’s inbox with the reason, rather than a trail of notes being left behind. Find two of its own by that name and it refuses rather than guess, saving the capture to Oris’s inbox and saying why. That last case is rarer than it sounds but real: Notes keeps deleted notes in Recently Deleted for a while and other devices can sync a restore back, so a note Oris already replaced can reappear alongside its replacement. Removing or renaming one fixes the next capture automatically; the one already saved does not retry itself, so send it on with Send to vault from the quick notes viewer, which is the recovery for a held capture.

If a quick note cannot reach Notes at all, it is saved to Oris’s in-app inbox rather than lost. What happens after that depends on how far the delivery got, and the two cases behave differently.

Most failures are terminal, and they wait for you. The Automation permission not granted yet or switched off, a destination that no longer names a note, two notes Oris made in the folder sharing the target title: none of those get better on their own, so nothing re-attempts them. Fix the cause and send the held capture on with Send to vault in the quick notes viewer, which with an Apple Notes destination re-sends it to Notes rather than writing a file anywhere.

A failure that happened after Oris had reached Notes is different. If the write came back in a state a later attempt could resolve, because the note was busy at that moment or because Oris could not read the note back to confirm what it had written, the attempt is queued in Oris’s delivery outbox and the app re-drives it on its own. So a capture sitting in the inbox may still turn up in Notes a little later, without you doing anything.

Either way the inbox copy is kept — that is the never-lose promise — but it does not go on claiming the capture is waiting. When a queued attempt lands, or you send one on by hand, the copy flips to sent in the viewer and Send to vault stops offering it, so a capture that already reached Notes can’t be appended there a second time. The viewer entry stays as the record; Notes holds the delivered copy.

Deliveries go through the Oris app

macOS grants permission to control Notes to an app, and Oris’s is granted to Oris itself, not to the background pipeline that transcribes your meeting, and certainly not to Obsidian. So an Apple Notes delivery always happens inside the Oris app.

Most of the time you will never notice, because the app is open. When it isn’t, because you recorded from the Obsidian plugin and quit Oris, the finished transcript is saved durably and waits. The notification says so rather than claiming a note that doesn’t exist yet:

Transcript saved — opening Oris will finish delivery to Apple Notes.

Open Oris and it delivers on its own within moments. Until then the recording sits in the Awaiting delivery section of the Recordings tab, and the Recordings history shows it as awaiting delivery rather than as a failure. Nothing needs retrying by hand and nothing lands twice: if a delivery was already made, Oris recognizes its own work and doesn’t write a second copy.

Notes itself does not have to be open. Oris launches it in the background when it needs to, without stealing your focus.

Opening the note

Wherever Oris offers to open a delivered note, a Notes destination behaves like any other: the note opens in Apple Notes, scrolled to and frontmost. Those places are the Open note button on the record strip when a recording finishes, and the arrow-in-a-square icon on a Recordings history row.

Oris stores the note’s real Notes identifier when it delivers, so this keeps working after you quit and relaunch both apps, and after you move the note to another folder. Identifiers do sometimes stop resolving: signing out of iCloud, restoring a library from backup, and account migrations can each renumber every note at once. When that happens Oris looks the note up again by its folder and title before giving up. Two notes in a folder are allowed to share a title, so that lookup only accepts an answer when exactly one note matches; anything else, and it says so plainly (“this note can’t be found — it may have been deleted”) instead of guessing. Showing you the wrong note is not a mistake a second click undoes.

Known limitations

Apple Notes is not a Markdown editor, and some of what follows is a property of Notes rather than a rough edge Oris will smooth away later. All of it is worth knowing before you pick it.

  • Formatting settles, it doesn’t round-trip. Notes stores rich text, not HTML, and rewrites what it is given into its own shape. Oris only writes the shapes that survive that rewrite unchanged: headings, bold and italic, bullet and numbered lists, links, and the transcript’s speaker lines. So a delivered note looks the same every time. What you won’t see are horizontal rules, tables, checkboxes, and block quotes, which Notes either drops or turns into something else. Block quotes are written as italic text instead.
  • An append can reformat what’s already in a note. Notes rewrites a whole note as it saves, collapsing some spacing and simplifying the odd element, so the first time Oris appends to a note that already contains your own writing, that writing is tidied into Notes’ own shape. It happens once, deterministically, and only to content Oris didn’t write. Since Oris appends only to notes carrying its own mark, the way to reach this is to type your own text into one of those, such as a heading you add to the quick-notes note. An ordinary note of your own is not appended to, so it is not reformatted either.
  • A retried summary lands as its own note, for now. Oris does not yet patch a block inside an existing Notes note the way it does in a Markdown file, so when a summary fails and you retry it, the fresh summary arrives as a new note titled Summary — <the meeting's title>, in the same folder, carrying the same date-and-time prefix as the original so the two sort side by side. The original note keeps its visible ⚠️ block as the pointer. Patching in place is planned. See Retry a failed summary.
  • A busy note becomes a new note. If you (or a syncing device) are editing the note Oris wants to append to at the exact moment it writes, Oris backs off and tries again. If the note is still busy after several tries, it saves to a new note in the same folder instead of dropping the content. The notification names the note it made, so nothing lands somewhere you weren’t told about.
  • Nothing is delivered while Oris is closed. Covered above, and it is the one behavioral difference from a folder destination: an Apple Notes delivery can wait for you to open the app.
  • Audio never goes to Apple Notes. Only the note’s text is delivered. The recording itself stays in the local folder Oris keeps, under your usual audio retention setting.
  • Shared folders are a warning, not a wall. Oris warns at setup and again if a folder becomes shared, and delivers either way. Deciding what belongs in a folder other people can read is yours to make.
  • An iCloud account syncs, because that’s what it does. A note delivered into your iCloud account syncs to your other devices exactly like any note you type in Notes. Choose an On My Mac folder if you would rather a transcript stayed on this machine. Oris’s transcription and its default summaries still run on-device either way; the destination is a separate choice from where the audio is processed.
settings

Settings & config

Every control in the app, tab by tab.

Settings

Every setting Oris has, tab by tab, in the Mac app's home window.

Oris settings live in the Oris app, not in the Obsidian plugin. Open the app after the setup walkthrough and its home window is the settings manager.

The Obsidian plugin is a thin recording trigger. It starts and stops recordings and reserves the spot in your note where the transcript lands. Everything else, meaning provider, API keys, transcription model and retention, is configured in the app.

Layout

The home window is organized into tabs:

  • General — setup status, walkthrough controls, updates, build info
  • Transcription — transcription model, language
  • Summarization — provider selection, credentials, fallback order, connection tests
  • Recordings — recent recordings and full history, audio retention, auto-stop on silence
  • VoiceQuick Note: the master switch, destination, activation mode, hotkey, AI cleanup, and the quick-notes viewer

The Oris app's General tab, showing the Your Oris stats card, setup status rows, and the Updates and Privacy sections

General tab

  • Your Oris — a stats card summarizing how you have used Oris so far. See Your Oris (usage stats).
  • Setup status — a compact health summary of each setup step: destination, plugin install, permissions, model warmup, notifications. It loads quietly on every app open, and no animation runs unless you explicitly request a re-check.
  • Destination — where your meeting notes land: an Obsidian vault, a Markdown folder, or Apple Notes. A file destination reports its kind and its path. When something is wrong, such as a vault or folder that moved or a store Oris can’t read, the row says exactly what, so you find out before a recording does. See Destinations.
  • Apple Notes automation — present only when your destination is Apple Notes. It reads allowed, not set up yet, turned off, or not checked, and its button is the fix for that state: Grant access raises the one macOS prompt when the permission has never been asked for (a caption explains the ask first, and the row updates itself with the answer), and Open System Settings opens the Automation pane when it has been turned off, with the re-check running on its own when you come back to Oris. A quiet Check again link re-reads the answer without asking anything. Not checked is where the row usually rests until you ask: reading the answer means launching Notes, and opening a settings tab is not a reason to open Notes, so Oris reads it by itself only when Notes happens to be running already; with Notes closed the row waits for its Check button. See Apple Notes.
  • Re-check permissions — runs the test capture in place, the same ~8-second capture the walkthrough uses, without requiring a full walkthrough re-run. Use this after adjusting audio routing or system-audio settings to confirm both tracks are live.
  • Notifications — shows whether Oris is allowed to post notification banners for notes-ready, auto-stop and summary-failed. Banners are posted by the recorder, so if you denied the notification prompt, or later revoked it in System Settings, banners silently stop and this row flags it. It has its own Re-check button and, when notifications are off, an Open System Settings → Notifications link so you can re-enable Oris.
  • Feature tour — opens the in-app tour of what Oris can do. See Feature tour.
  • Send feedback — opens the feedback sheet. See Send feedback.
  • Re-run walkthrough — resets walkthrough progress so you can step through the guided setup again. Settings, models, and permission grants are untouched.
  • Updates — an Automatically check for updates toggle, on by default, so Oris checks daily in the background and prompts you to install when a new version is found. Next to it is a Check for Updates… button to check right now. See Automatic updates.
  • Share anonymous system info — on by default. The daily update check carries a small profile: macOS version, Mac model and CPU, your app and update-tool versions, preferred language. That list is the whole of it, never your audio, recordings, or notes. Turn it off and the update check still runs, just without the profile.
  • Version footer — current build info.

The destination is established during the walkthrough and is not editable here. It is where your notes land, and, when it’s an Obsidian vault, where the plugin is installed. To change it, whether to Apple Notes or back to a vault or folder, use Re-run walkthrough: your prior choices are pre-filled, and steps that are already done check themselves off.

There is no Save button. Changes persist on their own, a toggle or a dropdown the moment you flip it and a text field a moment after you stop typing, and a brief “Settings saved” confirmation appears when it lands. A change you made in another window isn’t reverted by an unrelated change you make here.

That confirmation belongs to Transcription, Summarization, Recordings, and Voice. General’s two preferences, Automatically check for updates and Share anonymous system info, take a different route: they save the instant you flip them but show no banner.

One combination is deliberately held back rather than written: a Quick Note destination of Pinned note with an empty note path. The form keeps showing your selection and the Voice tab explains why, but what actually gets saved is the in-app-inbox default, which is exactly where captures would land anyway. Fill the path in and it saves normally.

Transcription tab

  • Transcription model — a dropdown of the available models, with Large v3 Turbo (recommended) as the default, plus a Custom… option that accepts a free-text model name. Larger models are more accurate but slower, and the default is a good balance.
  • Language — the spoken-language hint. The default is Auto-detect (recommended), where Oris infers the language from the first few seconds of audio. To force a specific language, choose from the list (English, Spanish, French, German, Italian, Portuguese, Dutch, Japanese, Chinese, Korean) or type a language code into the Custom field. Transcription handles far more languages than the list shows, and summary quality depends on the provider and model you picked.

Summarization tab

  • Enable summaries — turn this off to skip the summary step entirely. The transcript still lands in your note. See Skipping summaries entirely.
  • Provider — pick the backend: Auto, Local (mlx), Ollama, OpenAI, Anthropic, or Azure OpenAI. The credential fields below change to match the provider you selected, and values for all providers are kept, so switching back doesn’t lose them.

Each cloud or network provider gets its own card of labeled fields:

  • OpenAIAPI key, and an optional Model.
  • AnthropicAPI key, and an optional Model.
  • Azure OpenAIEndpoint, API key, Deployment, and an optional API version.
  • OllamaEndpoint, and an optional Model.
  • Local (mlx) — no credentials, since it runs on your Mac. A Model override field pins one model instead of letting Oris pick by transcript length. See Pinning a specific local model.

Every cloud and network provider gets a Test button, on its card when you have picked that provider and on its row in the fallback list when the provider is Auto. It checks the values currently in the form with a small live request that exercises the key, the model name, and the endpoint together, then shows either Connected or a specific error pointing at the exact problem. You find out a key is wrong in a second rather than after a meeting.

Fallback order

With Provider set to Auto, the tab shows a drag-reorderable list of providers. Drag them to set the order Oris tries, and each row tells you whether that provider is configured. Providers you haven’t set up are skipped wherever they sit in the list. See Provider auto-detection.

The Summarization tab with Provider set to Auto, showing the drag-reorderable fallback list

Recordings tab

The tab opens with Recent recordings, your last five recordings and imports as compact rows showing note name, date, mini-stats and status, plus a See all recordings… button that opens the full history in a sheet. Rows carry actions to open or share the landed note, reveal the audio, retry a failed summary, or delete the audio early. See Recordings history. That list is display rather than settings, and nothing in it is written back to your configuration. The settings sit below a divider:

  • Audio retention — a Days field controlling how long raw recordings are kept before Oris cleans them up. The default is 90 days, and 0 keeps everything. See Audio retention cleanup.
  • Auto-stop on silence — a Stop recording after a stretch of silence switch, a minutes value, and a Warn me … seconds before it stops field. When both the mic and system-audio tracks go quiet for that long, the recording stops itself and transcription runs normally. The default is five minutes with a sixty-second warning, and changes apply to your next recording. See Auto-stop on silence.

Voice tab

The Voice tab holds Quick Note. It stays present whether or not capture is running, so the master switch and your captures are always reachable. Two of these settings are read when Oris launches, the master switch and the hotkey, while destination, activation, and cleanup are re-read for every capture and apply immediately.

  • Enable voice capture — the master switch. Because it is read at launch, flipping it shows “Saved — relaunch Oris to apply.” until you restart the app. While capture is off, the tab says so and points out that quick notes you have already taken are still openable below.
  • Open quick notes — opens the two-pane quick-notes reader, with captures by day on the left, the selected capture on the right, and Send to vault, Copy, Reveal and Delete above the text.
  • Quick note destination — the in-app inbox (the default), a pinned note at a vault path you name, a daily note, or a weekly note. Daily and weekly notes are created in a folder you choose. A live preview shows the exact path your next capture lands in when your notes go to a vault or folder. With an Apple Notes destination these file choices, the preview they feed included, stay configured but don’t act: the connector decides where captures land (a note per day, or one note you name; the Apple Notes page covers both shapes), and the file settings take effect again when you switch back to a vault or folder (which, like any destination change, happens by re-running the walkthrough from the General tab).
  • Hotkey — the current combination, shown read-only, defaulting to ⌃⇧Space. A control for changing it in the app is coming. The tab warns you when the combination is one macOS is known to claim for itself, and it shows whether the registration succeeded.
  • Activation — press to start and press again to stop, which is the default, or hold to talk and release to finish.
  • Tidy up quick notes with AI — off by default. It adds punctuation and casing and drops filler before the capture lands, using the same provider settings as your summaries.

The Obsidian plugin’s settings tab

The plugin’s own settings tab shows only the paths it detected, read-only, and a link to the Oris app for everything else. Recording, the mic ribbon, the status bar pill, and the retry command all work exactly as before.

Send feedback

An in-app way to send feedback. Composes a prefilled email, with opt-in diagnostics that never include your audio or notes.

Oris has a built-in Send feedback surface in the Oris app, so you don’t have to hunt for an email address when something breaks or you have an idea. Reach it two ways: the Send feedback button on the app’s General tab, or Send Feedback… in the app’s Help menu.

Both open a short sheet with a message box. Type what you want to say (what broke, what’s confusing, what you’d love to see) and hit Send…. That opens a draft in your Mac’s mail app, already addressed to [email protected] with your message filled in. Oris itself sends nothing: it just hands the draft to your own mail app, where you review it and hit Send yourself, so you decide what actually goes out.

Diagnostics are opt-in. The sheet has an Include diagnostics toggle, off by default. When you turn it on, the draft appends a few non-sensitive facts that help with troubleshooting: your Oris version and build, your macOS version, and the status (OK or failed) of your most recent recording along with roughly how long ago it ran. It never includes your audio, your recordings, or your notes, just the version numbers, a one-word run status, and a coarse timestamp. Leave the toggle off and the email carries only your own words.

If your Mac has no mail client configured (or the draft won’t open for some reason), use Copy to clipboard instead. It copies the recipient, subject, and body so you can paste them into whatever you use to send mail.

This is an additional, easier channel alongside the private beta’s email ask, not a replacement: emailing [email protected] directly still works exactly as before. Either way, the fastest way to shape what gets built next is to tell me what broke, and it all goes to the same inbox.

providers

AI providers

Your choice. Local-mlx by default; OpenAI, Anthropic, Azure, Ollama if you want them.

Provider auto-detection

With the summarization provider set to Auto, Oris tries providers in order and uses the first one that's ready.

Setting Settings → Summarization → Provider to Auto, which is the default, means Oris tries the providers in order and summarizes with the first one that’s configured. The order it starts with is OpenAI, Anthropic, Azure OpenAI, Ollama, Local (mlx). A provider counts as ready only when everything it needs is filled in: a key for OpenAI or Anthropic, the endpoint, key and deployment together for Azure, and for Ollama a reachable server that actually has a model installed. Local (mlx) sits at the end as the guaranteed last resort, so Auto falls back to it even when nothing else is set up: Oris would rather run the on-device path and tell you if it failed than report that no provider was available.

The order reflects a simple bet. If you have paid for a cloud key you probably want it used, a local Ollama server is quicker than spinning up the on-device model, and the on-device model is the always-available free fallback that needs no account at all.

You can override the auto-pick at any time by choosing a specific provider in the same dropdown. An explicit choice is always honored, and the fallback order stops applying the moment you make one.

Changing the order

With Provider set to Auto, the Summarization tab shows a drag-reorderable list of every provider. Drag a row up or down and that becomes the order Oris tries. The change saves as you drop it, with no Save step, and each row tells you whether that provider is configured, so you can see at a glance which ones are actually in play. Providers you haven’t set up are skipped wherever they sit in the list, so it is fine to leave all of them listed and let the order matter only for the ones you use.

The Summarization tab with Provider set to Auto, showing the drag-reorderable fallback list

Leave the list alone and Oris uses the built-in order above.

When Auto lands on the on-device provider, the model it uses scales to the length of the transcript, so a standup doesn’t pay for a model sized for a strategy session. Pinning one model instead is a single field: see Pinning a specific local model.

Local MLX (on-device summaries)

On-device summarization: free, private, no signup, and your transcript never goes anywhere.

Local (mlx) summarizes on your Mac, using Apple’s MLX framework. No API key, no cost, and your transcript text stays on the machine along with the audio. It’s what Oris uses out of the box, and what Auto falls back to when no other provider is configured.

The only time it touches the network is to fetch a model. Oris downloads the default one for you during setup, so your first summary doesn’t stall on it, and any larger model is fetched once, the first time something actually needs it. See Preparing the model for what that looks like while it’s happening.

Which model runs is picked from the length of the transcript: a short one gets the small model, a long one gets a bigger one. That choice is also capped by what your Mac can actually hold, so a long meeting on a smaller machine gets the best model that fits rather than one that would swamp it, which is what keeps a big transcript on a small machine from being the reason a summary fails. It can still fail, the same as any provider; summaries are best-effort everywhere, and the transcript lands regardless. To pin one model and skip the switching entirely, see Pinning a specific local model.

Cloud providers (OpenAI, Anthropic, Azure, Ollama)

Summarize with a cloud model on your own key, or with an Ollama server you run yourself.

If you already pay for a cloud model, Oris will use it. The three cloud backends are bring-your-own-key, billed to you by the provider you chose, with nothing proxied through a service of ours. Ollama is the fourth option and works differently: it is a server you run yourself, on this Mac or another one on your network, so there is no key and no bill. What they share is that only the transcript text is sent, and only where you pointed it. The audio itself is never sent to them either way.

Pick the provider under Settings → Summarization → Provider, and the fields below it change to match:

The Summarization tab with OpenAI selected, showing its API key and Model fields and the Test button

  • OpenAI — an API key, and an optional Model. Leave the model blank and Oris uses a fast, inexpensive default (gpt-4o-mini). This is the general-purpose choice.
  • Anthropic — an API key, and an optional Model, defaulting to claude-haiku-4-5. The best summaries we have measured, at slightly more latency.
  • Azure OpenAI — an Endpoint, an API key, a Deployment name, and an optional API version. For anyone whose keys live in an Azure tenant.
  • Ollama — an Endpoint, pointing at http://localhost:11434 by default, and an optional Model. Leave the model blank and Oris uses the first model your Ollama server lists, so name one here if you care which.

Any of them changes which model writes the summary, not what the summary looks like. The shape is the same whichever backend runs: the same sections, the same transcript below it, the same footer naming what produced it.

Test connection

Each provider gets a Test button, on its card when you have picked that provider and on its row in the fallback list when the provider is Auto. It takes the values currently in the form, before you have recorded anything, and makes one small live request that exercises the key, the model name and the endpoint together. You get back either Connected or a specific error naming the actual problem, along the lines of “Invalid API key (401)”, “Model not found” or “Endpoint unreachable”. It’s a couple of seconds, and it’s a far better way to find out a key is wrong than a meeting that comes back without a summary.

Pinning a specific local model

The Model override field pins one on-device model instead of letting Oris pick by transcript length.

By default the on-device summarizer picks its model from the length of the transcript. To use one model for everything instead, put a compatible HuggingFace repo id into the Model override field under Settings → Summarization → Local (mlx). Leave it blank and Oris goes back to choosing for you.

The Model override field under Settings, Summarization, Local (mlx)

It’s worth pinning when you have benchmarked a particular model and want output you can compare across meetings, when you have already downloaded something larger and would rather it were always used, or when you want to try a different model family and see how its summaries read.

Skipping summaries entirely

Turn the summarize step off when you only want a raw transcript.

Turn off Enable summaries under Settings → Summarization and Oris skips the model call altogether. The transcript still lands in your note, just as a plain section rather than a collapsed one with a summary above it.

People turn this off for good reasons: you already process transcripts somewhere else, you would rather read the conversation yourself for the kind of thing you record, you’re keeping cloud spend down, or an on-device summary takes longer on your machine than you want to wait. Switch it back on whenever you like, and the next recording gets a summary again. Nothing about the recordings you made in between changes.

recovery

When meetings go sideways

Runaway recordings, interrupted fragments, failed summaries, orphan markers, all recoverable.

Deliveries and receipts

Finished transcripts and notes are saved durably before they land, and every landing writes a receipt: a failed write waits safely instead of vanishing, and a retry never lands twice.

Behind the notes Oris writes sits one small promise with two halves: the finished content is made durable before it goes into your note, and every landing attempt leaves a receipt. Together they mean a failed write can’t lose the work, and a repeated one can’t give you the same transcript twice.

How a note lands

When a recording finishes, Oris first saves the finished transcript (summary and all) as a durable copy in its own state directory, and only then writes it into your note. If that write succeeds, a receipt records exactly where it landed. If it fails because the note went read-only, the disk filled, or the machine died mid-write, the durable copy simply stays in the outbox, the failure is recorded, and Oris tells you. The recording’s transcript isn’t gone; it just hasn’t landed yet.

The receipt is also what stops duplicates. Before landing anything, Oris checks whether that exact content already reached that destination, so re-running a recovery, clicking retry twice, or replaying an interrupted delivery gives you one copy in your note, not two. The one exception is deliberate: --force on the command line overrides that check, because it exists for the case where you have looked at the note yourself and decided a re-write is what you want. If you’re forcing because Oris couldn’t tell whether a note landed, check first, and use ack when it did.

The same machinery covers imports and quick notes. One honest caveat on scope: the first quick note of a day or week creates its periodic note’s header line just before the capture is persisted, and a quick note you’re still dictating when a meeting recording starts is discarded by design. The durability promise is about finished content on its way into a note, not about every keystroke.

Where you see it

  • The Recordings tab’s “Awaiting delivery” section is the outbox made visible: when anything is waiting, it appears at the top of the tab with what’s waiting, where it was going, and why it hasn’t landed. Each item offers what’s actually safe for its state: retry for a plain failure or an interrupted write, Mark delivered… where a blind retry would be the wrong move, and details either way. That covers two situations: the couldn’t-tell case below, and a quick note whose text is already safe in Oris. A quick note never gets a retry button here, because its real recovery is the Quick Notes viewer’s Send to vault; once you’ve sent or kept it, Mark delivered… clears the leftover item without writing anything. While anything is waiting, the Recordings tab itself says so: its label in the tab strip carries the count — Recordings (2) — so a stuck delivery is announced even when you’re elsewhere in the app, and the count disappears the moment the queue drains. The first time the queue goes from empty to non-empty, Oris also posts one macOS notification — “A note couldn’t be delivered — it’s saved in Oris” — so a failure that happens while you’re elsewhere entirely still reaches you; clicking it brings you to the Recordings tab in Oris. It’s one banner per incident, never one per item, it isn’t repeated on later launches for a queue you’ve already been told about, and it holds off for about half a minute first so a queued delivery Oris is about to finish on its own never raises a false alarm. When nothing is waiting, the section isn’t there at all. One entry there isn’t a failure at all: with an Apple Notes destination, a recording finished while the Oris app was closed waits here until you open it, because macOS grants the permission to control Notes to the app. Nothing needs clicking: opening Oris is the whole fix.
  • The recordings history joins receipts into each row. A recording whose delivery failed says so in plain words: “delivery failed (permission) — the transcript is saved, not yet in the note”. A retry button lands the saved copy. No re-transcribing, no re-summarizing: the bytes that land are the bytes that were saved.
  • The failure notification sends you to the Recordings tab’s awaiting-delivery section, because that is the surface every install has. It used to name a terminal command, which was the wrong advice for anyone who installed the app from the DMG and never touched a shell — and even a repo install doesn’t put that particular command on your PATH. From a checkout, bin/oris-recover reports the same thing in the terminal.
  • A crash mid-write is reconciled rather than guessed at: Oris checks the note itself to see whether the write actually happened before deciding anything. In the rare case it genuinely can’t tell, it says so and asks you to look, because you checking the note beats it writing a duplicate. Once you’ve looked and the note is there, Mark delivered… on the awaiting-delivery item records your answer and closes it, without writing anything to your notes.

The oris command line

The same machinery is scriptable through the oris CLI, the power surface behind all of the above. If you installed from the repo, setup.sh puts oris on your PATH. If you installed the app from the DMG, the binary ships inside the bundle at Oris.app/Contents/Resources/oris/bin/oris: call it by that path, or add that directory to your PATH yourself, since the app doesn’t modify your shell.

The verbs you’d actually reach for:

  • oris deliveries list --failed shows what’s held in the outbox, and why.
  • oris delivery retry <receipt-id> lands a failed delivery from its saved copy.
  • oris delivery recover reconciles attempts that were interrupted mid-write (run automatically by oris-recover).
  • oris delivery ack <receipt-id> is for the one case Oris can’t resolve alone: it couldn’t tell whether a note landed, you checked, and it’s there. ack records your answer and closes the chain without writing anything to your vault, which is exactly the point (a forced retry in that state is what would create the duplicate).
  • oris delivery open <receipt-id> prints the link to where a receipt says the note landed — an obsidian:// link for a vault, a file:// one for a Markdown folder, an oris-applenotes:// one for Apple Notes (which macOS routes back through Oris, since only Oris may ask Notes to show a note). By default it only prints; add --launch to hand that link to macOS as well, which opens it in Obsidian or in whatever app owns the file. (The Oris app never passes --launch — it opens the note itself.)

Everything here is local files under your own state directory. Receipts record ids, paths and outcomes, never note content, and none of it leaves your Mac.

Retry a failed summary

When the summary fails, the transcript still lands and the failure is kept so you can retry it later.

Summarization is best-effort. If the provider is unreachable, the key is wrong, or the model comes back empty, the transcript is inserted into your note exactly as it would have been, with a ⚠️ block where the summary should be. Oris keeps the failure, so nothing about that recording is lost while you go and fix the cause.

Fixing the cause usually means a corrected key or a switch to a different provider under Settings → Summarization. Once that’s done, there are two ways to retry, and both run the same thing.

The Oris app’s recordings history shows a Retry button on any row whose summary failed. One click re-summarizes just that recording, the row spins while it works, and it settles into a green check when the summary lands.

Inside Obsidian, two commands cover the same loop without leaving the editor: Oris: Show failed summaries (no retry) lists what’s pending, and Oris: Retry failed summaries works through all of them and reports back.

The ⚠️ block in your note names the app first and Obsidian second. A recording made without Obsidian can land in the note of someone who doesn’t have Obsidian installed, so the app’s retry is the one route that always applies.

Either way, a retry reuses the transcript that already exists rather than re-transcribing the audio, so it takes as long as a summary and not as long as a meeting. On a file destination, an Obsidian vault or a Markdown folder, it then patches the original note in place, replacing the ⚠️ block with the real summary. A retry that fails again leaves the note untouched, ⚠️ block and all, and records the newer error against that recording instead. The note stays as it was, while the failure you see in the app’s history is always the most recent attempt.

An Apple Notes destination recovers differently, because patching a block inside a Notes note is not shipped yet. There, a successful retry delivers the fresh summary as its own note, titled Summary — <the original note's title>, in the same folder. The original note keeps its ⚠️ block as the pointer to where the summary went. Retrying again with the same summary doesn’t stack copies: the same content is recognized and lands once. Patching in place is planned.

A successful retry is also written down twice, each record with its own job: the note write lands through the delivery core and leaves a receipt naming the note it landed in, and the retry’s outcome is recorded against the recording itself, which is what heals the row in the recordings history to a green check.

When there was no note yet

A recording started without Obsidian has no note while it’s being summarized — the note is created afterwards, wherever your destination puts it. So when the summary fails on one of those, the failure Oris writes down doesn’t name a note, because at that moment there wasn’t one.

Retrying still finds it. Oris records where each recording’s note landed, and a retry with nothing else to go on asks the delivery core for that landing, then heals the note it actually created. You get the same result as any other retry: the ⚠️ block replaced on a file destination (or the sibling summary note created on Apple Notes), the sidecar cleared, a receipt written.

If the landing can’t be worked out, because the record of it was lost to a crash or a cleared state directory, the retry reports the attempt as unsuccessful. It leaves the recovered summary in a file next to the audio so the work isn’t lost, and keeps the failure so the Retry button stays where you can see it. The rule throughout this loop: a retry counts as a success only when the text reached the note you’d open.

Orphan marker recovery

Reconciles abandoned TRANSCRIPT_PENDING markers with the matching audio file.

If transcription is killed mid-flight, by a reboot, a force-quit, or a machine that ran out of memory, the <!-- TRANSCRIPT_PENDING_<ts>_<pid> --> marker is left sitting in your note with nothing to replace it. The audio is still there; only the step that turns it into a transcript didn’t finish.

Oris can find those orphans. It scans your vault for stranded markers and pairs each one with the recording it most likely belongs to, matching on when the marker was written against when the audio was recorded, within about a minute either way.

Run Oris: Scan for orphan recording markers from Obsidian’s command palette and it shows you what it found: how many stranded markers there are, how long the oldest has been sitting, and which notes they’re in. Scanning never changes anything by itself, which is deliberate, so a marker is never quietly overwritten while you’re still deciding what to do about it.

Actually recovering them is the second, separate step, and the same notice hands you the command for it, filled in for your install so you can copy it straight out. Running it lands the transcripts where they were always meant to go — and it’s smart about how. A marker whose transcript was already produced and saved (the pipeline finished, only the note write didn’t) is delivered from that saved copy: no re-transcription, no re-summarization, and no risk of a second version of the same meeting appearing anywhere. Only a recording that never got as far as a transcript is re-transcribed from its audio. A recording whose note actually landed already — say, in the inbox after a rename went wrong — is recognized and left alone, with the stale marker pointed out so you can delete it.

External transcript import

Run Zoom/Teams/Otter/VTT/SRT/plain transcripts through the same summarize-and-land pipeline.

If someone else recorded the meeting — Zoom’s auto-transcript, Teams, Otter, a copy-pasted plain-text transcript, a VTT/SRT subtitle file — Oris runs it through the same format → summarize → land-in-your-vault flow that a live recording would use. Format is auto-detected; override it (vtt, srt, otter, plain, json) if the sniffer misfires (rare, but possible with copy-pasted text that happens to look JSON-ish).

The Obsidian plugin’s Oris: Import external transcript… command opens a modal: paste a transcript or pick a file, choose a format, and pick where it lands: Inbox, New note (custom path), or an existing note you choose. That last option is labelled Replace marker in existing note, but what it does today is append the import to the end of the note you picked, so expect to find it at the bottom rather than at a marker. The optional “copy original into <vault>/_archive/” toggle preserves the source file with cross-link frontmatter so it survives even if you later delete the produced note. Import runs in the background: clicking Import closes the dialog right away and the work continues while you keep working or start another recording. A status-bar pill (⬆ importing…) shows it running, and when the note lands you get a notice you can click to open it, plus a macOS banner if you have switched away from Obsidian. The transcript is summarized by whichever provider you’ve set up under Settings → Summarization, which is on-device by default (see Local MLX); on that default, a long transcript that needs a bigger model downloads it once. Only one import runs at a time.

Audio file import

Point Oris at an existing audio recording (Voice Memo, Zoom/Teams export) and run it through the full transcribe → summarize → land pipeline.

Sometimes the recording already exists — a Voice Memo you dictated on your phone, a Zoom or Teams recording someone shared, an .mp3/.wav/.m4a from another tool. Audio file import runs that file through the exact same transcribe → format → summarize → land-in-your-vault pipeline a live Oris recording uses, without you having to re-record it live. It’s the audio sibling of external transcript import: that one takes an already-transcribed file, this one takes raw audio and transcribes it first with the same on-device WhisperKit model.

Supported formats. The picker lists the common ones — .m4a, .mp3, .wav, .aac, .m4b, .caf, .aiff, and .flac. That list is a convenience filter rather than a hard limit, because Oris decodes audio the same way the rest of macOS does. In practice, if QuickTime Player opens the file, Oris can transcribe it. Pick “All files” in the dialog to try one that isn’t listed.

The Obsidian plugin’s Oris: Import audio file… command opens a modal: choose an audio file, optionally set a title, and pick where the note lands — inbox/, a new note at a custom path, or appended to the end of an existing note. The optional “copy the original audio into <vault>/_archive/” toggle preserves the source file so it survives even if you later delete the produced note. Import runs in the background: clicking Import closes the dialog right away and the transcription continues while you keep working. When the note lands you get a notice you can click to open it, plus a macOS banner if you have switched away from Obsidian. The transcript is summarized by whichever provider you’ve set up under Settings → Summarization, which is on-device by default (see Local MLX), and only one import runs at a time.

One thing to know about speaker labels. A live Oris recording captures your microphone and the system audio on two separate tracks, which is what lets it split the transcript into “me” vs. “others” (see me/others speaker labels). An imported audio file is almost always a single mixed track — everyone’s voice is already blended together — so the transcript isn’t speaker-split. The imported note carries a short callout saying so, so it’s never a surprise. (A rare export that happens to carry two separate audio tracks, like some Zoom recordings, does get the split automatically.)

capture

Capture behaviors to expect

The quiet machinery: silence watcher, clamshell guard, device-switching, disk-full.

Auto-stop on silence

Recording stops itself after a stretch of silence on both sides of the call.

A recording you forget to stop doesn’t run all afternoon. When both your microphone and the call’s audio have been quiet for five minutes, Oris stops the recording itself and transcription runs as normal. A minute before that happens you get a notification telling you it’s about to, so a long thinking pause is easy to rescue: make any sound and the countdown resets.

Change it, or turn it off, under Settings → Recordings → Auto-stop on silence. There’s a switch, the number of minutes, and a Warn me … seconds before it stops field for the heads-up. Changes apply from your next recording.

The Recordings tab, showing audio retention and the auto-stop on silence controls

Sleeping your Mac mid-recording doesn’t count as silence. Oris recognizes the gap for what it is and starts the countdown fresh when you wake up, rather than stopping the recording the moment you open the lid.

Clamshell guard

Refuses to start when the lid is closed and built-in speakers are the default output.

There’s a macOS quirk worth knowing about if you work with the lid shut. When your Mac’s output is set to its built-in speakers and the lid is closed, system audio can’t be captured at all. You’d still hear the call, because the sound is coming out of your monitor or whatever else you have plugged in, but the recording would carry your voice and nothing else. You wouldn’t find out until the transcript arrived with only one side of the conversation in it.

Oris checks for that combination before a recording starts and refuses to begin, telling you which outputs you could switch to instead. Pick one of them in Control Center → Sound, or open the lid, and start again.

Output device switching mid-recording

Pairing AirPods or changing output devices mid-meeting doesn't break capture.

Changing where your Mac’s sound comes out in the middle of a meeting used to be the kind of thing that quietly cost you the other side of the conversation. Pair AirPods, plug in a USB audio interface, switch to an external display’s speakers, and the system-audio half of the recording is suddenly bound to a device that isn’t there any more.

Oris notices the switch and reconnects system-audio capture to the new device on its own, without stopping the session. No audio is lost across the change. From your perspective, the recording just keeps going.

Sample rates are re-read, not remembered

Reconnecting mid-recording raises a subtler question: the audio format of the system-audio stream can follow the new device. Switch from 48 kHz speakers to a 44.1 kHz interface and the samples arriving afterwards are 44.1 kHz. If Oris still believed 48 kHz, it would label them wrongly and resample by the wrong ratio. The result is audio that plays back roughly 9% fast, and a transcript made from a pitch-shifted recording.

So the format is read fresh rather than remembered. Oris re-reads it whenever reality can have moved: at the start of a recording, again after every device change, and again if the output device changes its own sample rate without the default device changing at all, which is what happens when you adjust the rate in Audio MIDI Setup, or an app like a DAW drives the device. A format that can’t be read, or that comes back nonsensical, is discarded in favour of the last known-good one rather than adopted.

One consequence is worth knowing about. macOS’s own audio encoder accepts sample rates only up to 48 kHz, so if your output device runs above that (a hi-res DAC at 96 kHz, or the headphone jack configured for 96 kHz in Audio MIDI Setup) the recording is encoded at 48 kHz rather than refusing to start. Nothing is lost that matters here: transcription downsamples to 16 kHz mono regardless.

Audio interfaces, docks, and virtual devices

System audio is captured correctly when your output device also has inputs, and hi-res outputs are handled rather than refused.

Most Macs make this question boring. Built-in speakers, AirPods, a Bluetooth headset: macOS presents each of those to Oris as a playback device carrying nothing but playback, even when the hardware has a microphone, because the microphone shows up separately as its own input device. So when Oris captures the audio coming out of your machine there is only one stream to take.

Some hardware is not like that. A USB audio interface (a Focusrite Scarlett, MOTU M2, UA Volt, SSL 2, Audient iD4) is a single device carrying its inputs and its outputs together, and macOS presents it that way. So is a dock or a monitor with a built-in mic and speakers, a class-compliant USB headset, and a virtual audio device used as your output, which is what Loopback, BlackHole, and some conferencing apps install. On those, the audio Oris receives arrives as several streams at once: the device’s own inputs, and the system audio Oris actually wants.

Oris works out which stream is which before recording starts, by asking macOS to describe the streams it is about to receive and comparing that against the device it is recording through. It checks the answer rather than trusting it, and it re-checks whenever the picture can have moved, which is when you change output device mid-recording. If that check is inconclusive it tries a second one based on the channel layout.

What it will not do is guess. On this kind of hardware the stream sitting next to the one Oris wants is usually the device’s own input, which is often your microphone, so a wrong guess would quietly file your own voice as the other side of the conversation. If neither check can identify the meeting audio, Oris records nothing for the system track and tells you rather than filing something that looks right and is not.

What you should see

Nothing different. The “others” track holds the meeting, the “me” track holds your microphone, and the transcript separates them as usual. The point of this page is that the interesting cases already work, not that they need attention.

If you want to confirm it, the recorder’s log (~/.local/state/oris/audio-capture.log) records which stream it chose on the sys topology: line at the start of each recording, and again on the stats: line at the end.

Sample rates above 48 kHz

Oris encodes system audio through macOS’s own AAC encoder, and that encoder accepts sample rates only up to 48 kHz. If your output device runs higher, which happens with hi-res DACs and with the headphone jack when it is configured for 96 kHz in Audio MIDI Setup, the recording is encoded at 48 kHz instead of refusing to start. Your playback device is left exactly as you set it. Nothing that matters is lost: transcription downsamples everything to 16 kHz mono anyway.

When it still goes wrong

If the “others” track comes out empty or holds the wrong audio on an unusual setup, the fastest fix is to switch your output to the built-in speakers or a headset for the meeting. Then send the log along with the make and model of the device, because a device that defeats the checks above is worth fixing properly rather than working around.

Disk-full notification

A macOS notification fires when a recording can't write because the disk filled up.

If a recording keeps failing to write, rather than hiccupping once, and the reason turns out to be that the drive your recordings live on is full, Oris tells you rather than quietly losing audio. You get a single macOS notification reading Disk full — audio write failed. Recording may be losing audio. Free space and stop the recording.

One alert per recording, not a stream of them. Free up some space and stop the recording yourself, at which point the part that was written before the failure transcribes normally. A recording that hit this is still worth stopping properly rather than force-quitting.

Audio retention cleanup

Old recordings get deleted automatically; the notes that reference them are untouched.

Meeting audio adds up, so Oris clears out old recordings on its own. Settings → Recordings → Audio retention sets how long a recording is kept, in days, defaulting to 90. Set it to 0 and Oris stops clearing anything out on its own, leaving deletion as something you do deliberately from a row in the history. When a recording ages out, its audio and the working files that go with it are removed together.

Your notes are never touched. A note that links to the audio keeps its link, which Obsidian then shows as a broken one, so it’s obvious the source recording is gone rather than misplaced.

Cleanup happens when you start a new recording rather than on a schedule, so a long stretch away from Oris won’t churn through old files in the background.

The app’s recordings history shows where each recording stands. While retention is on, every row carries a countdown (“audio: 82d left”), which reads “audio pruned” once the file has gone. Set retention to 0 and no countdown appears at all, because nothing is going anywhere. Because the sweep only runs at the start of a recording, “0d left” means eligible rather than deleted: the file goes the next time you record. Rows also carry a Delete audio now action for clearing one out immediately. That one is worth reading the confirmation on, because deleting a recording’s audio also gives up the ability to retry its summary.

A recordings history row showing the audio retention countdown and its row actions

transcription

Transcription behaviors to expect

Hallucination filtering and speaker-bleed cleanup, both automatic.

Silence-hallucination filter

Drops the phantom "Thank you." / "Bye." segments Whisper invents on silent audio.

Whisper is known to invent text on silent audio, usually short stock phrases like “Thank you.”, “Thanks for watching.”, “All right.” or “Bye.” Because Oris transcribes your microphone and the call’s audio separately, a stretch where one side says nothing is a stretch where those phantoms would otherwise show up attributed to that side.

Oris catches them before they reach your note, using a curated list of the phrases Whisper reaches for alongside signals about whether there was any real speech in that stretch at all. The bar is deliberately high for anything conversational: short fillers like “okay”, “yeah”, “thank you” or “bye” only count as a phantom when they are the whole segment, so a real sentence that merely contains one of those words (“Okay, so let’s move the launch to Friday…”) is kept however long it runs. The stock video sign-offs (“thanks for watching”, “subscribe to my channel”) are treated more aggressively and matched anywhere in a segment, on the grounds that they are far likelier to be an artifact than something anyone said. If you spend your meetings talking about video scripts, that is the one case where a real line could go, and the recording is what you would check it against, for as long as you still have it: see Audio retention cleanup, which clears recordings after 90 days by default.

The filter runs on each side before the two are woven together, so the transcript you read is already clean.

Speaker bleed cleanup

Recording on speakers instead of headphones means your mic hears the call too. Two passes drop the duplicate speech before it reaches your note.

If you take a call with the audio coming out of your laptop speakers rather than headphones, your microphone hears the other side as well as you do. Left alone, that lands the same sentence twice in the transcript: once cleanly on the others track, and once as a muddier echo on the me track, which reads as though you repeated everyone.

Two passes clean it up. The first is a text-similarity check that compares what the two tracks heard around the same moment and drops the near-duplicate from your track. The second is an independent check of whether your microphone actually heard speech at that point, which catches the leftovers the first pass is too cautious to remove.

Both run automatically on every recording. Headphones sidestep the problem entirely, because the mic never hears the far side in the first place.

permissions

Permissions

Two TCC grants on first run, and how to re-test them.

Microphone and System Audio Recording permissions

Two click-Allow prompts on first run, both attributed to "Oris" in System Settings.

The first time you hit record, macOS shows two click-Allow prompts, both labeled Oris: one for Microphone, the obvious one, and one for System Audio Recording, which is what lets Oris capture the other side of a call. macOS treats those as two separate permissions with different risks attached, so there is no single combined grant to click.

Grant them once and they stay granted. Every Oris update keeps the same signed identity, so an update never sends you back through the prompts. If you want them back deliberately, to re-test the flow or to hand the machine on, reset them yourself:

tccutil reset Microphone   com.shariqh.oris.recorder
tccutil reset AudioCapture com.shariqh.oris.recorder

Note the service name for System Audio Recording is AudioCapture, not SystemAudioCapture or kTCCServiceAudioCapture. As of macOS 26.4 that’s the name that works.

The notification prompt

There’s a third prompt, and it isn’t a TCC one: macOS asks separately whether Oris may post notifications. That’s what delivers the “Notes inserted” banner when a recording finishes, along with the auto-stop and summary-failed alerts. Oris only ever asks once, from a dedicated request during the walkthrough (and, for people who never run the walkthrough, at the start of your first recording). Nothing else in the app asks on the side, because macOS grants exactly one prompt and a request fired from the wrong place can burn it without ever showing you anything.

If notifications end up denied, macOS will not present that prompt again. The only way back is System Settings → Notifications → Oris → Allow Notifications. Oris doesn’t let that state hide: the walkthrough’s permission step flags it with a link straight to the pane and a Re-check button, and the app’s General tab carries a permanent Notifications row showing the same thing. Recording, transcription, and summaries all work normally without notifications; you simply don’t get the banner.

install

Install, upgrade, uninstall

Drag it in, let it walk you through setup, and let it update itself.

Guided walkthrough

The Mac app's setup tour: destination chosen, plugin installed if you're using Obsidian, permissions granted, first note recorded — models prepare while you learn.

Getting Oris is a download, a drag into your Applications folder, and a double-click. There’s no terminal step and no second installer to go and find. The app opens into a guided walkthrough the first time you launch it and handles the rest from there, including putting the plugin into Obsidian for you if that’s where your notes live. Instead of a wall of settings, setup is a short tour:

  1. Pick a destination. First the tour asks where your meeting notes should land, offering three cards: Obsidian vault (record from the Obsidian plugin), Markdown folder (any folder — no Obsidian needed), or Apple Notes (straight into Notes on this Mac). Choose the vault and Oris reads Obsidian’s registry and, when the answer is unambiguous (exactly one vault installed, or exactly one currently open), fills it in automatically; only when several vaults are present and none is clearly active does it ask you to pick from the detected list or browse to the folder. Choose a Markdown folder and any writable folder will do — no .obsidian directory required — plus a choice of how notes are named or appended. Choose Apple Notes and the tour explains the one permission macOS needs, asks for it, then lists your Notes accounts and folders to pick from. A line under the cards is honest about the limits: Notion is planned. See Destinations for the full picture. Continue stays disabled until the card you’ve selected is actually finished (a vault picked, a folder chosen, or Apple Notes set up through its permission-and-folder flow), so you can’t step past a destination that couldn’t deliver. If you already had Oris set up, this step says so and Continue is ready immediately; pick a different card and the same rule applies until that card’s setup is done.

  2. Install the Obsidian plugin. Only when your destination is an Obsidian vault — pick a Markdown folder or Apple Notes and the tour skips this step entirely, since there’s no vault for a plugin to live in. When it does run, one step puts the recording controls inside Obsidian; the tour waits until Obsidian confirms the plugin is up, with live hints if anything needs a manual toggle. If Obsidian starts in Restricted Mode (which blocks community plugins by default), the tour surfaces the exact toggle to turn it on (Settings → Community plugins → Turn on community plugins) and waits for you to enable Oris.

  3. Grant permissions. macOS asks twice here, once for the microphone and once for system audio, because Oris captures both sides of your calls. (An Apple Notes destination needs one more, for permission to control Notes, but that one is asked for back in step 1 where you chose it, not here.) The tour runs a test capture (~8 seconds, plays a chime so the system-audio track has something to hear) and checks both tracks. Missing or denied microphone access and a missing system-audio authorization are hard blocks, since those are required for recording to work. If the system-audio track was authorized but captured only silence during the test (sometimes happens with unusual audio routing), the tour shows a warning and lets you continue anyway; your microphone still records, so you can try a real recording and see whether the other side comes through. A quieter prompt follows, asking for permission to post notifications, which is how Oris tells you a recording finished and your notes landed. If notifications were already turned off for Oris (an earlier install, or a prompt dismissed before you got here), macOS will not ask again, so instead of failing silently the tour says so and offers a direct link to System Settings → Notifications plus a Re-check button once you have flipped it on. Recording works either way, so you can continue anyway; you just won’t see the “Notes inserted” banner.

  4. Models prepare while you wait. Recordings are transcribed entirely on your Mac, so the first launch downloads and optimizes the on-device models in the background. A progress strip at the bottom of the step shows a percentage for each model as it downloads, then switches to an explicit Compiling for the Neural Engine label once the download finishes, so a bar sitting at 99% reads as “still working,” not stuck. When it’s done, the strip reports how long each phase took. Meanwhile the tour shows a sample note (summary, action items, decisions, open questions, and the speaker-labeled transcript) so you know exactly what you’ll get before you’ve recorded a thing. (Summaries can also use a cloud provider you configure; the audio itself is never sent to it.)

  5. Record your first note. A three-line instruction plus an optional ~20-second read-aloud script, so your first real note lands while the tour is still open to celebrate it. The Back button is on the left; Finish is on the right.

Picking up where you left off. If you relaunch (or re-run) the tour after some steps are already done (destination chosen, plugin loaded, models downloaded), it doesn’t blink past them. A brief summary screen checkmarks everything that’s already set and points at the one step that still needs you, then lands there. The progress dots along the top turn into checkmarks as each step completes, and a Back button lets you step back through finished steps to review or change them without the tour pulling you forward again.

Re-learn the tour anytime. Oris menu → Reset Walkthrough restarts it from the top. Your settings, destination, downloaded models, and permission grants are untouched; it only forgets that you’ve seen the tour.

The home window. Once the walkthrough is done, launching the app takes you to its home window, which is where every setting lives from then on. See Settings for the tab-by-tab tour. The Obsidian plugin carries no provider or model settings of its own, so you configure all of it here.

Preparing the model

Progress feedback while models warm up — so a first run or a long meeting never looks frozen.

Oris transcribes on your Mac, which means the first time it runs a model (and occasionally afterward) macOS has to prepare that model for the Neural Engine. That preparation is a one-time cost, but it can take a few minutes, and a silent few-minute wait is indistinguishable from a hang. This is the progress feedback that makes the wait legible.

During setup. The guided walkthrough’s model step shows a live strip: a download percentage for each model as it’s pulled down, and, once the download finishes, an explicit Compiling for the Neural Engine label so a bar sitting at 99% reads as “still working,” not stuck. When it’s done, the strip reports how long each phase took, so you can see where the minutes actually went.

During a recording. Most of the time the model is already warm and transcription starts instantly. But a model can go cold after a macOS update, or after a long stretch of not recording, and then Oris has to re-prepare it right when you stop a recording. When that happens the Obsidian status bar shows ⏳ preparing model…, so the wait reads as preparing rather than broken. It clears the moment real transcription begins.

Offline, once the model is on disk. Loading a downloaded transcription model is pure local work: Oris checks its own model cache first and reaches for the network only when that cache is genuinely missing something. A recording stopped on a plane, behind captive-portal Wi-Fi, or during an ISP blip transcribes exactly like one stopped on a healthy connection. The one transcription case that does need the network is a model that isn’t fully on disk yet (a first run, a switched model, an interrupted earlier download) — and then the status bar says ⬇ downloading model… honestly instead of leaving “preparing” to spin.

For longer meetings. A long transcript may call for a larger summarization model than the one set up during onboarding, and that larger model is fetched the first time it’s needed. That download can be several gigabytes, so instead of a silent pause the status bar shows ⬇ downloading model…, and since you may not be looking at Obsidian at all, Oris also posts a one-time notification telling you it’s downloading a summarizer model and your notes will follow when it’s done. Any live recording that needs a summarizer model Oris hasn’t downloaded before gets the same heads-up, and a longer recording calling for a bigger model is simply the most common reason. (An imported audio file can trigger the same first-use fetch, but shows it in its import progress indicator instead of this banner.) Once it’s downloaded it stays cached, so the wait is a one-time cost per model.

None of this needs any action from you. It’s feedback, not a step. The point is simple: whether it’s your very first recording or your longest meeting yet, Oris tells you it’s working instead of leaving you guessing.

Feature tour

An opt-in, dismissible tour of Oris's features — offered after setup and reachable any time — that matches the destination you chose and surfaces only what's new for returning users.

After the setup walkthrough lands your first note, Oris offers an optional tour of what it can do. It’s never required: a small, dismissible prompt — “Take a 1-minute tour of what Oris can do?” — appears alongside the first-note celebration with Take the tour and Maybe later. Finishing setup works exactly the same whether or not you take it. (You can also reach the tour, or skip straight to your notes, right from the first-note step — before you record anything.)

The tour is a short, card-per-feature walkthrough — Next, Back, progress dots, and a Done. Each card explains one feature in a sentence or two and, where it helps, a concrete “try it now” nudge.

What the tour covers

The feature tour sheet showing one of its cards, with progress dots and Back and Next buttons

The current tour walks through the shipped feature set:

  • Recording basics — how you start and stop a meeting, which depends on the destination you chose during setup. In an Obsidian vault: click the mic icon in the left ribbon to start, click it again to stop; a marker drops into your note and the transcript lands there when it’s done (there’s no default keyboard shortcut — bind one yourself under Settings → Hotkeys if you’d like). For a Markdown folder: click Start recording in the strip at the top of the Oris app, click Stop when you’re done, and when the recording finishes Oris writes it into your folder the way that destination places notes — a new file named by your pattern, or appended to the single note you chose. See Recording without Obsidian.
  • Both sides, no bot — Oris captures your microphone and the call’s audio together and labels them “me” and “others.” Nothing joins the meeting, and the audio is transcribed on your Mac.
  • Auto-stop on silence — a recording you forget to stop ends itself after 5 minutes of silence on both sides, with a heads-up notification 60 seconds before.
  • Record, then carry on (Obsidian destinations) — the moment you start recording you’re free to switch notes, rename this one, even quit Obsidian; the recorder runs on its own and the transcript follows its marker back into place.
  • Troubleshooting & recovery — if a summary can’t be generated the transcript still lands and the failure is called out, and you can retry it once you’ve fixed the cause: from Obsidian’s command palette, or from Recordings → See all recordings… in the app, which is the route that always works. In a vault you also get orphaned-marker recovery, for a note that wandered off mid-transcription.
  • Quick Note — press your quick-note hotkey anywhere on your Mac (⌃⇧Space by default), say the thing, and the text is filed without opening anything; captures land in an in-app inbox by default, or straight into a note you pin or a daily or weekly note. See Quick Note.
  • Import & reshape transcripts (Obsidian destinations) — bring in a transcript you already have (a .vtt/.srt caption file, an Otter export, a meeting tool’s download) and Oris formats and summarizes it like a recording you made here.

The Quick Note and Import & reshape cards appear only when the matching capability is present in your install, and the import card lists only the parts that are actually available, so the tour never advertises a feature you don’t have. Quick Note’s card shows once voice capture is enabled. Cards like this light up on their own once their capability ships, so there’s no separate update to chase.

The same rule covers your destination. The tour teaches the flow you actually chose: a Markdown-folder setup is never told to click Obsidian’s ribbon icon or to run a command from Obsidian’s command palette, and the cards that only make sense inside a vault — the marker that follows a renamed note, orphaned-marker recovery, importing transcripts — are simply not shown. Change your destination and the tour changes with it, since it reads the destination when you open it rather than when the app starts.

Only what’s new — no forced replays

The tour is built so a returning user is never marched back through steps they’ve already seen. Oris remembers which cards you’ve been through (separately from the setup walkthrough’s own state). If a later update adds a new feature, the next launch surfaces an opt-in “We added something new — take a look?” rather than replaying the whole tour. If you’ve already seen everything, you’re not prompted at all.

Re-open it any time

You can open the tour whenever you like from the Oris app’s General tab — the Feature tour button is always there. When there are cards you haven’t seen yet (for example, after an update added a feature), a small New badge appears beside it. Declining (“Maybe later”) just stops the prompt from nagging — it doesn’t hide the tour from the General tab.

Automatic updates

Oris keeps itself current via signed, over-the-air updates that are cryptographically verified before installing.

Oris checks for updates automatically — once a day, in the background. When a new version is available, it lets you know with a quick prompt that shows a short “What’s new” summary of what changed; one click downloads the cryptographically verified update and installs it. You don’t need to visit a download page or run a script.

What updates, what stays put

The update replaces the app and refreshes the Obsidian plugin bundled with it (see below). Your notes, recordings, configured providers, API keys, and the on-device models are all untouched. Oris’s promise that it never sends your audio anywhere carries forward unchanged through every update.

Keeping the Obsidian plugin in sync

The Obsidian plugin ships inside the app, so each app build carries a matching plugin. When you launch the app it keeps your vault’s plugin matched to the installed app — normally that means copying in a newer plugin after an update, but it also means restoring the matching plugin if you ever roll the app back, so the plugin and the app version it talks to never drift apart. You don’t reinstall anything. Obsidian keeps running the previously loaded plugin until it’s reloaded, so the next time you’re in Obsidian you’ll see a quick “Oris updated — reload to apply” prompt with a Reload now link. One click swaps in the matching plugin; until then, recording keeps working with the version already loaded.

Verification

Every update is code-signed with a Developer ID certificate and notarized by Apple before it’s published. On top of that, Oris uses Sparkle’s Ed25519 signature scheme: each download is signed with a private key that never leaves the maintainer’s control, and the app verifies the signature cryptographically before installing anything. A tampered or corrupted file is rejected.

Checking manually

Both controls live under Settings → General → Updates: an Automatically check for updates toggle, on by default, and a Check for Updates… button for checking right now. The same manual check sits in the Oris menu → Check for Updates…. Either one contacts the update server, tells you whether a new version is there, and offers to install it.

The Updates row on the app's General tab, with the automatic-check toggle and the Check for Updates button

Turn the toggle off and Oris stops checking on its own; the manual button still works whenever you want it.

Uninstall and reinstall

Oris removes like any other Mac app: quit it and drag it to the Trash. Your notes and recordings stay where they are.

Oris is an ordinary Mac app, so removing it is the ordinary thing: quit Oris, then drag Oris from your Applications folder to the Trash. Nothing else has to be undone first.

Your notes and your recordings are not part of the app. They are your own files, they live in your vault and in the recordings folder, and they stay exactly where they are. Uninstalling removes the tool that produced them, not the work.

What stays behind. Two things outlive the Trash. The Obsidian plugin stays installed in the vault, where you remove it the way you remove any community plugin, under Settings → Community plugins in Obsidian. And your Oris settings are kept outside the app, deliberately, so that an update never loses them. If you reinstall later, the app opens straight to its home window with everything as you left it rather than starting the walkthrough again.

Clear your API keys before you uninstall, not after. Those settings include any provider keys you pasted in, and they survive the app being deleted. So if you’re passing the Mac on, selling it, or just done with a provider, do this while Oris is still installed: open Settings → Summarization, empty the API key field on every provider card you filled in, and wait for the Settings saved confirmation. There’s no Save button, so clearing the field is the whole action. Then quit and drag the app to the Trash. Doing it in that order is the difference between a key that’s gone and a key that’s still sitting on a machine you no longer own.

If something is wedged, start with the walkthrough. A full uninstall is rarely what you actually want. Settings → General → Re-run walkthrough steps you back through vault, plugin, permissions, and models without touching a single setting, and it fixes most of what a reinstall would have fixed. See Guided walkthrough.

Making macOS ask about the microphone again. Removing the app does not remove the permissions you granted it. If you want the microphone and system-audio prompts to appear from scratch, reset them explicitly: see Microphone and System Audio Recording permissions.

that's the lot

Missing something you expected to see? Email [email protected] . The handbook tracks the product, so if it's here it ships, and if it ships it should be here.