COS Control, from first run to fixes.

COS Control is the Mac companion for COS. It runs the COS server for you, puts your Claude, Codex and Cursor sessions in one place, dictates into any app, records Mac meetings and tracks Work. This guide covers every view and setting in the current release, and what to do when something looks stuck.

Control 0.5.318 · build 371 Server 6.74.0 macOS 14+ Apple silicon

1. Install and first run

Download, connect one AI, and COS sets up the rest.

You need no Homebrew, npm or Terminal for core setup. COS Control brings its own runtime, downloads the COS server and starts it for you.

  1. Download and move to Applications

    Download COS Control, unzip it and drag COS Control into your Applications folder. Updating by hand? Quit the old Control first, then choose Replace. Keep any rollback copy outside Applications. To check the file before you open it, compare its SHA-256 with the value under Verify this download.

  2. Open COS Control

    Open it from Applications. The download is signed with Developer ID and notarized by Apple, so a normal downloaded-app confirmation may appear. If macOS says it cannot verify the app, download it again and check the checksum. Do not remove its quarantine flag.

  3. Welcome to COS

    The welcome window opens by itself the first time. Choose Just my Mac or My Mac and glasses, then Get started. The window walks through Welcome, Connect your AI, Choose access, Connect glasses (only if you chose glasses) and Make yourself at home. Closing it never cancels the install.

  4. Connect your AI

    COS works with the AI you already use, and its subscription and usage limits still apply. The list shows Claude (Claude Code), ChatGPT (Codex), Cursor (Cursor Agent) and Ollama (optional), each with a status such as Not installed, Installed, not signed in, or Signed in. The list updates by itself.

    • Not installed: COS shows the install command, which needs no administrator password, with Copy. Claude Desktop alone is not Claude Code.
    • Not signed in: choose Sign in, or Skip for now. COS types the command into Terminal; if macOS has not allowed that under Privacy & Security, Automation, the command is on the clipboard instead.
    • After 15 minutes COS stops waiting for a sign-in. Choose Check again when you are done.

    Get started needs at least one AI installed. Signing in never blocks it.

  5. Let COS get ready

    COS checks your Mac, downloads its components, checks the download, starts the server and checks your AI connection. You can close the window while it works and reopen Setup guide from the COS menu later. If a step fails, choose Try again. An internet connection is needed for setup.

  6. Choose access

    Each permission switches on one feature, and macOS asks before anything changes. Skip any of them: COS starts without them, and Permissions in the menu bar panel brings the list back. See Permissions.

  7. Connect glasses (optional)

    COS checks Tailscale on this Mac and Tailscale on your iPhone, then shows a pairing code to scan with COS Glasses. Pairing needs server 6.67 or newer. Allow pairing on this Wi-Fi (home only) is an opt-in alternative to Tailscale. Choose Set up later or Use just my Mac to skip. The COS Glasses guide covers the phone side.

  8. Make yourself at home

    The last step introduces Work, Sessions and Meetings, and the session pet, with Keep, Calm or Hide. Choose Finish setup.

The setup guide

The setup guide stays available after first run. Open it from the Dock menu (Setup guide…), the app menu or Help menu, the pet's right-click menu, Setup guide in the Activity header, or the Setup guide row in the menu bar panel. It remembers where you stopped and shows Finish setup · N of M with the next step and Continue setup. Every row has Skip for now or Set up now.

  • Your devices and Your AI: the same choices as first run.
  • On this Mac: Ollama, Voice (local transcription) and Dictation engine.
  • Settings for your AI: Show your AI sessions, Continue agent threads, Jev (TypeSafe) and Permissions.
  • Glasses: pairing, as above.

Voice

Set up and test voice downloads a verified, signed Whisper runtime and its models without Homebrew, benchmarks this Mac and keeps an existing Balanced or Max choice. Allow several GB for models. If a download is missing you see Models not downloaded with a Download button, and Needs more disk space when the disk is too full. The Voice row turns green only after a real dictation works. Until then it reads Checking dictation…, Not tested yet with Test dictation, or Dictation needs attention with Test again.

Dictation engine

This step comes after Voice. Pick Automatic, Parakeet Ultra or Whisper, install Parakeet if you want it, and choose Test on this Mac. The test dictates a 30-second sample with each installed engine and shows how long it took and how many words it got wrong. It is a quick check of this Mac, not a full accuracy test. Picking Automatic while Parakeet is missing installs it in the background, and dictation uses Whisper until it is ready. Parakeet Ultra is recommended on Apple silicon unless the Mac has less than 8 GB of memory or the test says otherwise.

What you need

  • Apple silicon and macOS 14 or later. Mac meeting recording needs macOS 14.2 or later.
  • Internet access for setup, and one supported AI provider installed.
  • Space for voice models: several GB. Parakeet Ultra is a 654 MB download and needs 1.5 GB free.
  • Server 6.74.0 for Whisper dictation, the Parakeet install and the engine test. COS Control installs and updates the server for you.

Already running COS in Terminal?

Stop the foreground server with Control-C before installing the managed service. COS Control refuses to take over a process it does not own, so your jobs and recordings stay safe. When it finds a server it recognizes, the panel offers Adopt Safely: Manage in place keeps your server, and Install managed server replaces it. When it cannot identify the process on the COS ports, it says Ownership conflict detected and will not stop or replace it. You can always go back to the plain npx command later.

2. Permissions

Each one switches on a feature. COS works without any of them.

macOS asks before COS gets any access. Open Permissions in the menu bar panel to see each one as Allowed, Needs you or Not needed yet.

PermissionWhat it switches onWhen COS asks
AccessibilityJumping straight to a Claude or Cursor session and bringing its window forward. Dictation typing into other apps. Fn and single-key dictation shortcuts. Spotting a Google Meet call in a browser by its tab title.From Permissions, the pet's session jump, or Allow insertion into other apps… under dictation.
MicrophoneDictation. Mac meeting recording never records the microphone.On your first dictation.
Screen & System Audio RecordingMac meeting recording, and Mute other apps while you dictate. COS Control appears under System Audio Recording Only.When you start a Mac recording or turn on Mute other apps (0.5.318; 0.5.317 asked only at the first recording).
NotificationsTelling you when meeting audio stops reaching this Mac and when Work needs you.When a feature first needs it.
AutomationTyping the install and sign-in commands into Terminal or iTerm for you during setup.The first time COS opens Terminal for you. Without it, the command goes on the clipboard.
Full Disk AccessListed for background jobs and the glasses server when your setup needs it.From Permissions.
Open at loginStarting COS Control when you log in. The switch is Launch COS Control at login in Settings.From Permissions or Settings.

The drag bar for Accessibility and Full Disk Access

For these two, COS opens the exact pane in System Settings and pins a small bar under it: Drag COS Control to the list above, or click plus and choose COS Control. COS shows Allowed only after it has really checked the grant, then the bar hands you back to COS. If nothing works after two minutes, the bar offers Having trouble? with Reset and add again. For Full Disk Access it also offers Check now and Reveal in Finder.

When Accessibility is on but does not count

macOS keys the Accessibility switch to the app's signature. After an update the list can keep an old entry that no longer matches the installed app, so the switch looks on while COS still cannot use it. COS says so on the Permissions row: An update changed COS Control's signature, so the old switch no longer counts.

  • In COS Control: Settings, Session pet, Reset and add again, or the Already on? Reset and add again link on the Permissions row. It removes COS Control's old entry, asks macOS again and opens the list. Then switch COS Control on.
  • By hand: open System Settings, Privacy & Security, Accessibility, select COS Control, click the minus button, then click plus, choose COS Control in Applications and switch it on.

Switching the toggle off and on is often not enough. Since COS Control 0.5.318 the dictation card offers Reset beside Allow…, which does the same as Reset and add again.

Updating from an older copy? The move from the old local signature to Developer ID may require granting feature permissions again in System Settings.

4. Activity: the eight views

Everything COS holds, in one resizable window.

Open Activity from the Dock, from Open in the panel, or with your Open Activity shortcut. The tabs across the top are the eight views, in this order.

Finding your way

  • ⌘1 to ⌘8 open the eight views in order.
  • Home (⇧⌘H) goes to the Activity home. Back (Command and the Left Arrow key, or Escape) goes back one step.
  • The breadcrumb shows where you are, for example COS Control, Meetings, then the meeting.
  • Recency sorts Meetings, Sessions, Memories and Threads by Newest, Oldest or Best match. Domain narrows Meetings and Work.
  • The gear opens Settings, and the header shows Server connected or Server offline.

Messages

Every turn your glasses took, with the answer and any photo you were looking at. Message view switches between Recent and Archive, which lists every older day the server has stored. Search covers both; the Meaning switch searches by meaning and uses your Claude usage, up to 25 searches a day. Open a turn to Copy turn, or Copy + images to bring its pictures along. Copy handoff copies a text handoff of recent messages. A ROUTINE or TASK label marks a run your Mac started, such as the morning brief.

Speakers

Three lists: Meetings to review, Samples to review and Voices, the voice directory. Held voice samples are kept 72 hours. Listen to a sample, choose a name or a scored suggestion with Add to, then Preview the labels it would change in that sample's meeting. Apply is a separate step, and Undo labels puts the labels back while keeping the learned voice. Previewing, applying and undoing meeting labels needs server 6.46.0 or newer. Voice names are suggestions, never certainties.

Meetings

A month calendar, then the day. Open a meeting for its transcript, summary and speakers, with Copy full context (⌘C), Copy summary, Copy transcript, Reveal in Finder and Review voices. Create task, Link to existing task and Review follow-up in Work connect it to Work.

  • Search topics and ideas. Each result says whether it matched by Keyword, Meaning or both. Meaning search needs the COS meeting index; without it, search is keyword only.
  • Import meetings brings in Fireflies recordings: paste your Fireflies API key, choose Check, then Import now or Keep bringing in new meetings. The key is stored on this Mac and never shown again. Suggested merges pairs a Fireflies call with your own recording of the same call.
  • Dictionary opens the one dictionary that meetings and dictation share. See Dictionary.
  • Times read 1:02 PM. Choose the 24-hour clock under Settings, Advanced, Clock.
  • Recording on this Mac, live meetings and Live COS Ask are in Mac meeting recording.

Memories

What COS learned, not the transcript. Its sections are Recent learning, Applied this week, All memories, To review, which holds what COS proposed until you keep or dismiss it, and Knowledge, a graph of your own data you can ask in plain language. A lesson offers Open source record, Explore in graph and Copy context. Memories reads the folder set under COS Data; any Markdown you drop into its memory folder becomes browsable.

Threads

A thread is one piece of work followed across every meeting that touched it. Search topics and ideas, sort by Recency, and open a thread for its note, linked meetings and sources, with Copy as Context (⌘C) and Reveal in Finder. If the list is empty, choose COS Data in the panel to connect your library, or Create Folders to start one.

Dictation

The last tab holds your dictations and what COS learned from them:

  • Suggested from your edits, with Add all and Dismiss. Suggestions are kept for seven days.
  • Learned from your edits and Recent corrections, each with Undo.
  • Latest dictations, then All dictations. Each row shows the time, the word count, how it was delivered (inserted, pasted, sent or copied) and the app.
  • History opens the full, searchable list, with Copy, Fix a word and Delete on each row, and the engine that transcribed it. Clear history… asks first.
  • Dictionary opens the shared dictionary.

5. Dictation

Hold a key, talk, and the text lands where you were typing.

Dictation runs on this Mac with your COS dictionary, never the cloud. Glasses are optional. It uses your microphone; Mac meeting recording is separate and captures what the Mac plays.

Turn it on and pick a shortcut

In Settings, switch on Dictate into Mac apps. It is off by default. Then choose a Microphone (System default or a specific input; Refresh microphones finds a new one) and set a shortcut. Choose Allow insertion into other apps… so COS can type for you.

ShortcutWhat it doesDefault
Push to talkListens while you hold the key and transcribes when you let go.Off until you set it
Start / stopOne press starts, the next press stops.Off until you set it
Fix last dictationOpens Fix a word on your most recent dictation.⌃⌥F
  • Choose Change, then press the shortcut. It can be a modifier plus a key (with Command, Control or Option), a function key F1 to F20, or one modifier key by itself, such as Fn or Right ⌘. Fn and single-key shortcuts need Accessibility.
  • Using Fn? In System Settings, Keyboard, set Press 🌐 key to Do Nothing, and move any other dictation app off Fn.
  • While you hold Push to talk you can click and drag freely: the text lands where the cursor ends up. A click right after you press the key counts as a modifier-click and does not start dictation.
  • A dictation stops by itself after two minutes.
  • Pressing another key combination while talking, or the Mac sleeping, cuts a dictation short. A second or more of audio is still transcribed and copied, never typed, unless you copied something else meanwhile.

Engines: Automatic, Parakeet Ultra and Whisper

Choose the engine in Settings, Transcription, Dictation engine. Automatic (recommended) uses Parakeet Ultra when it is installed and ready, and Whisper on this Mac otherwise. A line under the picker says what dictation uses right now. The picker needs server 6.74.0; an older server dictates with Parakeet Ultra only and says to update.

Install Parakeet (654 MB) appears in Settings, Transcription, in a Dictation row of the menu bar panel, on a dictation card and in the setup guide. COS Control includes the speech tool Parakeet needs, so there is no Terminal step. Progress and Cancel show while it downloads, every file is checked before it is installed, and dictation keeps using Whisper meanwhile. Cancel keeps nothing partial. Parakeet needs 1.5 GB free, and installs after any recording ends.

Where the text goes

While you talk, the pet's line becomes a listening pill with a level meter and a timer; with the pet hidden it floats near the bottom of the screen. When you stop, COS types into the text box you are focused on, then checks that the box really changed. If it did not, COS pastes once with ⌘V. COS never presses Return or Send.

  • ✓ INSERTED means COS saw the text land. PASTED · ⌘V SENT means it pasted but could not confirm.
  • Terminals (Terminal, iTerm2, Warp, Ghostty, kitty, Alacritty and WezTerm) always get a paste, with line breaks turned into spaces.
  • Claude, Slack and other Electron or Chromium apps are asked to expose their text boxes first; if COS still finds none, it pastes.
  • Restore my clipboard after pasting is on by default: after a paste COS puts back what you had copied.
  • Format spoken lists is on by default. Say “number one, number two” or “bullet, next bullet” and COS writes a numbered or bulleted list, one item per line. Ordinary sentences with numbers stay as they are.

When COS cannot type, a card on the pet keeps the text on the clipboard and says why:

CardWhat to do
COPIED · ALLOW ACCESSIBILITYAllow… opens the Accessibility page with the COS bar to drag COS Control in, and the card closes once it works. Already on? Reset removes the old entry and asks macOS again (0.5.318; see this fix). For now, click where you want the text and press ⌘V.
NO TEXT BOX · COPIEDClick where you want it, then press ⌘V.
PASSWORD FIELD · COPIEDCOS never types into a password field. Paste it yourself if you mean to.
SECURE INPUT ON · COPIEDAnother app is holding secure keyboard input. Click where you want it and press ⌘V.
INTERRUPTED · COPIEDThe dictation was cut short; what was said is on the clipboard.

A card folds away after 20 seconds, and hovering pauses it. The text stays in Recent dictations.

When a dictation cannot be transcribed

The card reads NOTHING INSERTED with the reason and the one action that fixes it:

  • Install Parakeet (654 MB) when Parakeet is not installed. It installs in the background and keeps your audio.
  • Use Whisper when Parakeet cannot run but Whisper can. COS switches the engine and retries the same audio.
  • Retry, only while the audio is held and a retry can work, for example while an engine is warming up.
  • Open Transcription settings when no engine is set up or a retry cannot succeed.
  • Open Settings when the microphone is not allowed. It opens the macOS Microphone list.
  • No speech detected has no button: check your selected microphone and try again.

Fix a word

After each dictation the pill shows FIX for 5 seconds. Fix a word is also on the cards, in the pet's dictation list, in history and on ⌃⌥F. Tap the word COS got wrong (tap another to widen to a phrase), type the spelling under Always write it as, then Save to dictionary. Heard shows your spelling at once, and COS writes it that way from the next sentence.

Replace it in the app puts the corrected words back, including in Claude, Slack and other Electron apps, by pasting over exactly the text COS typed. When COS cannot prove that text is still there, or in a terminal, it copies the fix and tells you what to do. Saving corrections from here needs server 6.73.12.

The dictionary and Learn from my edits

COS keeps one dictionary for glasses meetings, Mac recordings and dictation. A word you add or fix applies from the next sentence. Open it from Activity, Meetings, Dictionary, or from the Dictation tab. It lists Recent corrections with Undo, your Vocabulary and every Correction.

Learn from my edits (Settings) has three choices:

  • Save automatically (the default): when you fix a word COS just typed, in that same field, COS learns it. It watches until you leave the field, three minutes at most. Undo is in Recent corrections.
  • Suggest only: suggestions wait a week in Activity, Dictation, for you to add in a batch.
  • Off.

It works in native apps for now; Claude, Slack and other Electron apps are measured first. It never runs in terminals or password fields.

While dictating: mute other apps

While dictating has Mute other apps (the default), Lower other audio and Off. Muting needs Screen & System Audio Recording for COS Control; until it is allowed, COS lowers your Mac's volume while you dictate and puts it back after. Since 0.5.318, Allow System Audio Recording… in Settings asks macOS, and if macOS was already answered the COS bar opens the page to drag COS Control in. Music and video are muted, not paused, and nothing is muted during a Mac recording.

Sounds

Under Sound, set the Start and Stop sounds separately, each with Preview.

  • Pet's sound is the default and follows your pet: Miles Windu lightsaber for every Jedi (since 0.5.318; in 0.5.317 it was named Miles Windu saber and only the Jedi Miles Windu pet used it), Droid chirp for droids and Soft chime for everyone else. A sound you picked yourself stays as it is.
  • Any pet can use any library sound: Miles Windu lightsaber, Unstable saber, Unstable saber (bright), Dark saber, Saber, full ignition, Saber ignite, Saber, soft, Droid chirp or Soft chime.
  • Your own file… imports a sound up to 20 MB and trims it to 3 seconds. For the stop sound you can use the end of the file.
  • Volume defaults to 60%; at 0 sounds are off. Pitch goes from minus 12 to plus 6 semitones.
  • No sound plays while a COS recording is capturing.

History

The DICTATIONS pill on the pet shows your latest 10, each with Copy, and links to All dictations. The full history is in the Dictation tab. Keep dictations for sets how long it lasts: 7 days, 30 days (the default), 90 days, Forever or Don't keep. COS keeps at most 5,000, and Clear dictation history asks before deleting.

6. Mac meeting recording and live meetings

Record what the Mac plays, follow it live, ask about it.

COS records the audio this Mac plays, from every app or one you pick, and transcribes it live. Your microphone is not recorded. Glasses are optional. Mac recording needs macOS 14.2 or later and the Screen & System Audio Recording permission.

Start a recording

  • In Activity, Meetings, choose Record under Record on Mac. Or use Record on Mac… in the app's Meetings menu. There is no Record button in the menu bar panel or the Dock menu.
  • The first time, COS shows a notice, Record this Mac's audio, with Record and Not now. Let people know you are recording. macOS then asks once to allow System Audio Recording for COS Control.
  • Options (collapsed) holds the title, which is automatic if you leave it empty, and Audio source: All Mac audio (recommended) or one app only. Refresh apps updates the list.
  • If no sound reaches COS for 12 seconds, the panel says so. With one app chosen, it suggests recording All Mac audio instead.

Meeting detected

When Zoom, Microsoft Teams or Google Meet has held the microphone for 10 seconds, the pet offers Meeting detected with Record, Not now and Never for that app. Record is one click and records All Mac audio. The offer comes once per meeting, never while a Mac recording runs, and waits until a dictation ends. When the app has been off the microphone for a minute, COS asks Meeting ended? with Stop and save and Keep recording. It never stops a recording on its own.

In Settings, Suggest recording when a meeting starts (on by default) has a switch per app, the Never list with Remove, and Show the recording notice again. Seeing a Google Meet tab in a browser needs Accessibility; until then COS watches Zoom and Teams only.

While it records

  • The menu bar icon shows a red dot, the Dock icon a REC badge, and the pet a REC pill. The panel shows Recording · let people know with View live transcript and Stop and save.
  • The live meeting opens in Activity, Meetings: the transcript a few seconds behind the conversation. It follows the newest line until you scroll up; Jump to live catches up. Copy transcript copies the text so far, and Copy full context adds the Ask answers, their sources and file text. Live text and speaker names are preliminary and may change when saved.
  • When a glasses meeting and a Mac recording run at once, Showing switches between them.
  • Files shared in this meeting takes screenshots, slides or files: drop them, Paste screenshot or Add files…. Their text is read on your Mac and shared with Ask. A file that looks like it holds credentials is held back.
  • Show live meeting transcript in Settings (on by default) turns the live view off.

Live COS Ask

Choose Live COS Ask beside the transcript. Presets: Catch me up, Summarize so far, What to ask and Action items, plus Fact check when the server offers it. Or type in Ask about this meeting. A model runs only when you ask. Each answer cites the lines it used and says how far into the meeting it read and which model answered; Stop ends one, and Retry, Copy and Save as follow-up sit under it. Nothing reruns on its own. Questions and answers stay with the meeting after you save it. Choose the model with Model beside Ask, the same setting as the Meeting assistant card. Ask needs server 6.69.0 or newer; on an older server the live transcript keeps working.

End and save

  • Choose Stop and save. Audio stays on this Mac until the saved meeting is verified, then the meeting opens in Meetings. Saved Mac recordings appear in Meetings with server 6.73.14 or newer.
  • A Live now row that has been quiet for two minutes shows No audio for the time. A glasses meeting there offers End and save, confirmed first. A stopped Mac capture still uploading shows Finish saving.
  • If delivery pauses on an error, the audio is kept. Retry saving retained audio does not restart recording; Keep audio for later leaves it on the Mac.
  • A capture that never saved appears under Unsaved captures with Recover, Recover all and Save. Reopening COS Control never resumes a capture.

Limits

  • A Mac recording stops at two hours. Everything up to then is kept and saves as usual; start a new recording if the meeting is still going.
  • It also stops when the Mac sleeps or the user session changes, after 15 seconds with no audio arriving, or when less than 512 MB of disk is free.

7. Work

Your decisions, connected to the work.

Work keeps your existing tasks, links them to the meetings they came from and the agent sessions doing them, and lets you plan and send work to those sessions. Moving a card never runs an agent or publishes anything.

Layout

  • The header has Add task, Review a meeting and refresh.
  • Tabs: Your move (what needs your review, the default), Board, History and More, which holds Focus view, Intake and Waiting on. COS remembers your choice.
  • Filter with Search work (⌘F), Domain and Scope: All work, Needs attention, In progress or Completed.
  • Your move rows offer the next step, such as Check delivery, Answer question, Review result or Open session, and Hide notice. Hiding a notice leaves its task stage unchanged.

The board

Stages, in order: Mentioned (captured for consideration, a list above the board), Planned, Draft, Built, QA and Complete. Stages reflect your decisions.

  • Drag a card between columns to change its stage. Dropping it on Complete asks once; drag it out of Complete to reopen it. Complete shows the latest completions first.
  • Order sorts by Board order, Recent activity, Newest or Oldest.
  • A card shows its title, status, source meeting, a stage menu, Start work and its files. Right-click for Start work…, Copy task ID, Copy context and Move to.
  • When a session reports done, its card can move by itself, with a line such as Moved here at 9:52: the session reported done. and Undo. Cards move up to QA, never to Complete.

A card, its finish line and its sessions

  • Edit task sets the name and Done when: what finished looks like.
  • Start work asks where the work goes before anything is sent: a new session, an existing one, or a fork. When COS is sure, it counts down a few seconds with Change where it goes, Cancel and Start now. Nothing is published, and the card stays in its column.
  • Sessions lists the sessions on the card. A card with many says Loading N sessions… first. Each has View progress, Open, Copy session ID and Unlink, which keeps the session and its history.
  • Link existing session finds a session by title, provider or ID. Choose Link as reference to use what a session did, even one working on another task. References sit in their own group with Open and Unlink. COS uses their summary, outputs and changes as context, never sends to them from this task, and they never change its stage. Linking sends no prompt.
  • When a handoff needs your review, Mark reviewed clears it (Acknowledge for a failed or refused one).

Work chat

Work chat sits under the card. Describe the outcome; COS explains its plan and drafts an assignment for each linked session, each carrying only its own context. Drop or paste images, video and files; attachments stay with the task.

  • Plan with picks Sonnet or Opus (Opus by default) and Effort Low, Medium or High (High by default), when the server offers them.
  • Plan (⌘Return) stops at Ready to send. Each assignment has Send, Edit and Skip; the round has Send all and Not now, which keeps them as drafts. Nothing is sent until you press Send, and every send re-checks the task first.
  • Plan and send plans and sends through the same checks. The first time, it asks whether to send plans without review; Send plans without review in Settings, Work is off by default.
  • A round reads Dispatched only when an assignment reached its session; otherwise it says why, such as Not delivered or Delivery uncertain. If the task changed since planning, it reads Needs a new plan.
  • Each round shows how much context it sends, and each linked session how full its context is. Show, preview or trim lets you remove or add items before sending.

When earlier work is still open

A send that earlier work would hold now queues. The card says Queued behind the session it waits for, with Cancel and Send in parallel, and it sends by itself once that work is done, reviewed or answered, after the same checks. Queued work sends while COS Control is open and waits while it is closed. In Settings, Work, When earlier work is still open is Queue it (the default) or Ask each time, which offers Queue it, Send in parallel or Check first. This needs server 6.73.15; an older server checks first, under Earlier handoffs need a check first.

Intake and Waiting on

Intake shows what your meetings produced that is not on the board yet: suggested meeting links, your items to review, and other people's asks. Keep or Drop each one, or Decide later. Each item under Waiting on has Done, Still waiting and Drop, and dropped cards can be restored. Both need a server that offers them.

Work settings

  • Work notifications (on) tells you when a session needs you.
  • Open new sessions in the app (on): a new session starts on this Mac and opens in its own app once its first reply is done.
  • Decision models with a Jev key lets Work suggest whether to continue, fork or start a session. It only suggests.

8. Sessions

Claude, Codex and Cursor chats on this Mac, in one list.

Read any agent session on this Mac and send a message into the real thread, whichever tool started it.

Sessions is off until you turn it on. In Settings, under Tools, switch on Show Claude sessions and choose Apply, or use Show your AI sessions in the setup guide. It is off by default because it reads another product's private state folder and serves session names, workspaces and times (not conversation content) over your local network. Leave it off on an untrusted network.

The list

  • Clock picks Updated or Opened in the last 7 days, or Pinned at any age: Codex pins, Claude Desktop stars and Cursor sidebar pins.
  • Search matches titles and recent transcripts. Recency sorts Newest, Oldest or Best match.
  • Open a session to read its transcript. An Activity block above the turns says what it is doing now: Working with a clock, Waiting on a permission, a question or a plan approval, Failed, Done or Idle, with its last tool steps.
  • Open in platform opens it in its own app. Copy session copies a short brief to pick the work up in another agent.
  • A session Work started shows From Work with Open in Work.

Write into a session

Type under the transcript and press Send (⌘Return). The message lands in the real thread and the reply comes back in the pane. Long turns keep running after you close the window. This needs Continue agent threads in Settings, which is on by default.

  • A session in the middle of a turn queues your message and sends it when the session is ready. The queue is listed under the composer with each message's place and text. While a message waits, Edit puts it back in the composer (Send then reads Replace) and Cancel removes it. A message the session already took cannot be recalled.
  • Where a message cannot be queued, Retry tries again and Fork with this message runs it in a copy of the thread; the original is untouched.
  • Cursor: a message goes into a Cursor chat only while it is mid-turn, when its turn ends. Otherwise send it from Cursor. Open in platform raises Cursor's Agents window; pick the chat there if COS cannot find it.
  • You can also message a session from the pet. See The session pet.

9. Transcription settings

Which engine hears what, on this Mac.

Everything here runs locally. Cloud transcription stays off unless a server administrator deliberately turns it on.

SettingWhat it does
Dictation engineAutomatic (recommended), Parakeet Ultra or Whisper, for Mac dictation. Server 6.74.0.
Preview modelThe engine for live meeting preview text, such as Whisper Turbo or Parakeet Ultra. Applies to the next live chunk.
HQ modelThe engine for saved meetings. Applies to the next saved meeting.
Second opinion and Refine with second opinionAn optional second engine to refine the transcript.
Install Parakeet (654 MB)Installs Parakeet Ultra for dictation and as the second opinion. Licenses names its model and tool licenses.
AdvancedFront end and Quiet detection.

The Transcription card appears with server 6.72.0 or newer. The engine names in Preview, HQ and Second opinion come from the server.

Tier, preview and replay (under Tools)

  • Transcription: Balanced or Max, then Apply. Balanced is recommended: Small.en for live text, Large-v3-Turbo to commit, Large-v3 to polish. Max keeps Large-v3 resident and may use much more memory. The status card names the model behind each stage.
  • Meeting Turbo preview shows fast provisional meeting text, then replaces it with the speaker-attributed transcript. Turn it off for an immediate rollback.
  • Adaptive audio cleanup is off by default. It cleans retained audio only when you press Play; the raw recording is never changed.
  • Idle Metal HQ is for powerful Macs: it uses Metal for post-meeting HQ while the Mac is idle.
  • Repair Whisper restarts local Whisper.

Meeting assistant

The Model used only when you ask during a meeting. Sonnet is the default for fresh settings; other chats keep their own models. Refresh connected models rereads what your AI offers. Home city is used only when a fact check needs a starting point: city and state, no street address. Leave it blank to use your phone's area.

10. The managed server

The same open-source server, without the terminal.

COS Control runs the public @gotcos/glasses-server for you, with its own Node runtime. It starts at login, keeps one verified owner, and refuses to replace a process it does not recognize.

What it runs

  • A LaunchAgent that is the only owner of the server.
  • A recovery agent that checks the server every minute and brings it back without creating a second owner.
  • Its files under ~/Library/Application Support/COS Control/runtime/, one folder per server generation.
  • Your existing ~/.cos-glasses configuration, recordings, meetings and messages stay compatible.

Health at a glance

The status card shows the server state (for example Running · managed), Ownership (Verified direct PID when all is well), Recovery, local transcription, Background jobs, the transcription tier and its models, meeting sync, the agent CLIs it found, and your Work folder and Meetings library.

Safe restarts

Restart, Stop and Start sit under the status card. Restart and Update Server are locked while a job or recording is active, and the card says why. Background jobs (on by default) keeps replies running when the phone closes; it changes only once active work is done.

Doctor and tools

Run Doctor (under Tools) checks COS Control, Node.js, npm, the Claude, Codex and Cursor CLIs, Whisper, ffmpeg, runtime ownership, Memory and Threads, the AI provider bridge, a real query, runtime integrity, update recovery and private config, and shows the results under DOCTOR.

  • Guided Setup asks you to choose a transcription setup, Balanced (recommended) or Max, then runs it.
  • Repair Managed Runtime and Repair Whisper fix the runtime or local Whisper.
  • Work Folder is your COS project root, where Claude, Codex and Cursor search and edit. Meetings Library is the folder you already use for meetings, containing YYYY-MM/*.md. COS Data connects Memory and Threads; Create Folders makes them.
  • Copy Pairing Token copies the token the glasses use. Copy Report copies a support report. Open Logs opens ~/Library/Logs/COS Glasses. Health opens the server's health page.
  • Local model picks an Ollama model when a local Ollama daemon is running, or Automatic for the newest pull.
  • Launch COS Control at login, Show in menu bar only and Open Activity with are at the end.

11. Updating and rollback

Updates prove themselves before they switch.

Updating COS Control

  1. COS Control checks for updates at launch and every six hours. The refresh button in the panel checks now.
  2. When one is ready the menu bar glasses turn gold and the panel shows Update available. Choose Update.
  3. What's New in COS Control opens with a summary and what changed. Choose Download and install, or Cancel. Return never installs.
  4. COS downloads, checks the file's SHA-256 and the app's signature, then quits and reopens by itself. The glasses server keeps running. After an update, What's New opens once on its own.

An update waits until a meeting and any video upload finish. If it cannot be installed, nothing changes and the banner says why, with Try again. The previous copy is kept outside Applications, at ~/Library/Application Support/COS Control/updates/previous/, so macOS does not register it as your login app. There is no restore button for it in the app.

Updating by hand: quit the old Control, replace /Applications/COS Control.app, then open that installed copy. Updating Control does not restart the server.

Updating the server

Update Server downloads the new release and verifies it, stages it as a new generation and switches to it. It then waits for health and a real query on at least one installed AI provider. If that proof fails, it restores the previous generation and tells you. Rollback Server, under Settings, Advanced, goes back to a retained earlier generation (up to two are kept) and verifies it.

12. Troubleshooting

When something looks stuck.

Start with Run Doctor under Tools: it names the failing check. These are the fixes people need most.

Accessibility is on, but dictation only copies the text

The card says Allow COS Control in Accessibility while System Settings shows COS Control switched on. macOS can keep an old entry that no longer matches the installed app, often after an update. Remove it and add it again: open System Settings, Privacy & Security, Accessibility, select COS Control, click the minus button, then click plus, choose COS Control in Applications and switch it on. In COS Control you can do the same from Settings, Session pet, Reset and add again. Switching the toggle off and on is often not enough.

COS Control is missing from Screen & System Audio Recording

macOS lists an app there only after the app asks. Start one Mac recording with All Mac audio and choose Allow when macOS asks. Or open System Settings, Privacy & Security, Screen & System Audio Recording, click plus under System Audio Recording Only, and choose COS Control. It is needed for Mac meeting recording and for Mute other apps while you dictate; without it COS lowers the volume instead.

Voice says “No speech detected” but the engine test passed

In COS Control 0.5.317 the Voice row's check can report no speech even though your microphone is fine: its test clip repeats one sentence, and the server discards repeated text. COS Control 0.5.318 fixes it; update, then choose Test again.

Your AI is not detected

Open your AI app and sign in, then choose Check again in COS. Claude Desktop alone is not Claude Code: install Claude Code (COS shows the command, with no administrator password and no sudo), run claude and finish the browser sign-in, or use Codex or Cursor Agent instead.

Claude or Codex needs sign-in

Sign-in always happens on the Mac. Run claude auth login or codex login in Terminal, finish the provider sign-in, then choose Check again in COS. GPT models need the Codex CLI on this Mac; check it with codex --version.

Server setup fails

Choose Try again. Setup needs an internet connection. If it keeps failing, use Run Doctor for the failing check, then Repair Managed Runtime. If the panel says Ownership conflict detected, another server owns the COS ports: stop the server you started in Terminal with Control-C, then try again.

Dictation does nothing when I press the shortcut

  • Check that Dictate into Mac apps is on and the shortcut is set. Push to talk and Start / stop are off until you choose a key.
  • Fn and single-key shortcuts need Accessibility. Allow it, then turn dictation off and on.
  • If COS says another app may already use the shortcut, choose another one.
  • Using Fn: set Press 🌐 key to Do Nothing in System Settings, Keyboard.

A dictation says Nothing inserted

Use the one button on the card. Install Parakeet or Use Whisper fixes a missing engine, Retry appears while an engine warms up, and Open Transcription settings means no engine is set up yet. Whisper dictation needs server 6.74.0; update the server if Settings says the server dictates with Parakeet Ultra only. See error cards.

Parakeet will not install

Parakeet needs 1.5 GB free; free some space, then choose Check again. It installs only after a recording ends. A failed install offers Try again, and Use Whisper keeps dictation working meanwhile.

A Mac recording hears nothing

Make sure the call plays through this Mac and is not muted. If you picked one app, stop and record All Mac audio instead. Check that COS Control is allowed under System Audio Recording Only. Remember that Mac recording never records your microphone.

A saved Mac recording is not in Meetings

Saved Mac recordings appear in Meetings with server 6.73.14 or newer; update the server. If the meeting says Saved meeting not found yet, wait for finalizing and choose Refresh. Audio that did not save stays on the Mac under Unsaved captures, with Recover.

Sessions is empty

Sessions is off by default. In Settings, under Tools, switch on Show Claude sessions and choose Apply. To write into a session, Continue agent threads must also be on.

Jump to session does not bring the window forward

Jumping needs Accessibility. Choose Grant under Settings, Session pet; if it is already on, use Reset and add again.

Restart or Update Server is greyed out

A job or recording is active, and COS will not interrupt it. The status card says what holds it. Save or end the meeting, let jobs finish, and the buttons come back.

An update did not install

The banner says why and offers Try again. Nothing was changed: an update that cannot be checked or staged is discarded, and the glasses server was not touched. Finish any meeting or video upload first. If macOS blocks a downloaded copy as unverified, download it again and check its checksum; do not remove its quarantine flag.

Message numbers are in the thousands

If replies come back numbered #14820 instead of #12, your install predates message eras and is still counting from the whole archive. Check it with your pairing token (the route is token-gated, so a plain curl returns 401; copy the token with Copy Pairing Token):

curl -H "X-Cos-Token: YOUR-TOKEN" http://YOUR-SERVER-IP:3141/api/message-counter

A healthy install returns both a max and an era. If era is missing, update to server 6.16.9 or newer, then start a fresh era once, from inside the installed package (for a managed install, ~/Library/Application Support/COS Control/runtime/generations/<version>-<hash>/node_modules/@gotcos/glasses-server/):

npx --yes tsx server/scripts/reset-message-era.ts --confirm

Restart the server and reconnect the phone. Your archives are not deleted; only the short numbering restarts at #1.

If you run the server in Terminal instead

  • npm reports EACCES or a root-owned cache: do not use sudo or recursively change ownership. Start COS with a private cache: npm_config_cache="$HOME/.cos-glasses/npm-cache" npx --yes @gotcos/glasses-server@latest.
  • @latest started an older server: compare server_version in /api/health with npm view @gotcos/glasses-server dist-tags.latest. If they differ, stop the old process and rerun with npm_config_prefer_online=true added to the command above.
  • Local Whisper is unavailable: run brew install whisper-cpp, stop COS with Control-C and start it again. COS Control users get Whisper from the setup guide's Voice step instead.

Still stuck? Choose Copy Report under Tools and email it to dev@gotcos.com, or open an issue on GitHub.

13. FAQ

The short answers.

Do I need COS Glasses?

No. Choose Just my Mac at first run. Sessions, Work, dictation and Mac meeting recording all work without glasses. You can connect glasses later from the setup guide.

Do I need Homebrew, npm or Terminal?

Not for core setup. COS Control brings its own runtime and downloads the server and voice tools for you. You may use Terminal once to install or sign in to your AI's command-line tool; COS shows the exact command.

Which AI do I need?

One is enough: Claude Code, Codex or Cursor Agent, signed in on this Mac. Ollama is optional for local models. Your AI's subscription and usage limits still apply.

What does it cost?

COS Control and the server are free and open source. Prompts bill to the AI subscription you already use. Local Whisper and Parakeet transcription are free.

Does dictation or recording send audio to the cloud?

No. Dictation never uses the cloud, and meetings are transcribed on this Mac. Cloud transcription stays off unless a server administrator deliberately enables it with their own key.

Does Mac recording record my microphone?

No. It records what the Mac plays: every app, or one you choose. Let people know you are recording.

Does it run on an Intel Mac?

No. COS Control needs Apple silicon and macOS 14 or later.

Can I go back to running the server in Terminal?

Yes. The runtime is the same @gotcos/glasses-server. Quit COS Control any time and go back to the plain npx command; your data does not change.

Where is my data?

On this Mac. The server keeps its configuration, recordings, meetings and messages in ~/.cos-glasses; COS Control keeps its runtime and app data in ~/Library/Application Support/COS Control/. There is no COS-hosted copy.

Where do I get help?

Email dev@gotcos.com, open an issue on GitHub, or book a working session.

14. Release notes

Recent COS Control releases, newest first.

Each release also opens in What's New inside the app. The full history is in the COS Control changelog.

Control 0.5.318 / server 6.74.0

Fixes from the first Macs on 0.5.317. Allow on a dictation card opens the exact Accessibility page with the COS bar to drag COS Control in, and the card closes once it works; if Accessibility already reads on but dictation only copies, Reset and add again removes the old entry and asks macOS again. COS asks macOS for System Audio Recording when you turn on Mute other apps or start a Mac recording, so COS Control appears in that list. The setup guide’s Voice check no longer says “No speech detected” on a Mac where dictation works, and with the session pet off the setup list asks for Accessibility when dictation is on. Miles Windu lightsaber is the dictation sound for every Jedi pet. The full Mac guide is at COS Control Docs.

Control 0.5.317 / server 6.74.0

Mac dictation works for every user. Settings, Transcription, Dictation engine: Automatic uses Parakeet Ultra when it is installed and ready, and local Whisper otherwise; dictation never uses the cloud. Install Parakeet (654 MB) from the menu bar, Settings or a dictation card, with no Terminal step. The setup guide tests each installed engine on this Mac, and a dictation that fails says why with one action that fixes it. Fix a word now updates Heard and the pasted text, and Replace works in Claude and Slack; spoken lists become lists; Learn from my edits saves your corrections; COS Activity has a Dictation tab. In Work chat, a send that earlier work would hold now queues and sends by itself once that work is done, reviewed or answered (Settings, Work: Queue it or Ask each time, which adds Send in parallel). Sessions can be linked to a task as a reference, never sent to from it. The board has a Complete column again, cards with many sessions say they are loading, and a card no longer stays blocked after you reviewed its earlier handoff.

Control 0.5.315 / server 6.73.14

Mute other apps now silences other audio while you hold the dictation key; 0.5.313 and 0.5.314 set the mute up without starting it. If the mute cannot start, COS lowers the volume instead and Settings says why. New dictation sound: Miles Windu saber, the default for the Jedi Miles Windu pet.

Control 0.5.314 / server 6.73.14

Fixes a crash in 0.5.313 when a dictation start or stop sound finished. While a meeting records, on this Mac or the glasses, the pet shows a REC pill; click it to open the live meeting.

Control 0.5.313 / server 6.73.14

Dictation keeps listening while you click and drag with the hold key down, and the text lands where your cursor ends up. A dictation cut short is still transcribed and copied, unless you copied something meanwhile. Fix a dictation from the pill for 5 seconds. When Zoom, Teams or Google Meet takes the microphone, the pet offers Record: one click records all Mac audio. Saved Mac recordings appear in Meetings with server 6.73.14. Work chat shows what each assignment will send before you send it, and the Work tab uses much less CPU.

Control 0.5.287 and server 6.71.12: meeting evidence and compact setup

Meeting answers include a qualitative confidence note with a reason. COS accounts for incomplete G2 transcription, keeps evidenced test scenarios separate from real commitments, and distinguishes a clear correction from an unresolved contradiction. New questions about saved meetings can read accepted finalized passages; previous answers retain their original quotations. Model qualification details are collapsed until expanded. Optional Jev setup no longer holds the setup reminder open. Labeled answers and the COS-styled What’s New view from Control 0.5.283 are included.

Meeting context on compatible companion builds lets you confirm a domain and calendar suggestion for COS lookup. Calendar metadata does not prove what was said. Timestamp and progressive-refinement canaries remain disabled; no raw-ASR accuracy or 30-second refinement claim is made. With explicit public-topic consent, server 6.71.12 can retrieve a claim from the recent transcript and a cost benchmark, cite linked evidence, and distinguish an average from a comparable project. The setting defaults off. Companion 628 exposes that choice and a native bridge error-loop fix; it remains a private device-test candidate. Public companion 624 stays supported.

Control 0.5.282 and server 6.70.0: ask about a live meeting

The menu-bar icon and a REC badge in the Dock show when a meeting records. Open the live transcript from the menu-bar panel, the Dock menu, a Dock click or Command-Shift-L. Live COS Ask sits beside it with Catch me up, Summarize so far, What to ask, Action items and a question box. A model runs only when you ask. Answers start from the current meeting and cite the lines they used; a question you type can also look in COS memory and earlier meetings, and with server 6.70.0 a plain public question can search the web using only the words you typed.

Questions, answers and sources are saved with the meeting, and unsent questions are saved too. Stop or retry an answer yourself; nothing reruns on its own. Saved meetings show their Ask history, and sources open where they came from: the transcript line, an earlier meeting, a memory, the file or the web page. Add files under Files shared in this meeting, or drop or paste a screenshot on the Ask box: text is read on your Mac and shared with Ask, and files that look like they hold credentials are held back. Pick the Meeting assistant model under the Ask box or in Settings; Sonnet is the default for fresh settings; explicit saved choices are preserved. Copy full context adds every answer, its sources and file text to the transcript, and Copy transcript on a saved meeting copies only the transcript. Ask keeps saving while the Mac is locked during a meeting.

Ask needs server 6.69.0 or newer. On an older server, Ask and Settings say to update the COS server, and the live transcript keeps working. Includes the 0.5.278 Live now transcript and the 0.5.277 panel changes. Pairs with server 6.70.0.

Control 0.5.278: follow a live meeting on your Mac

While a G2 meeting records, Meetings pins a Live now row with a red dot and elapsed time. Open it to read the transcript a few seconds behind the conversation. It follows the newest line until you scroll up; Jump to live catches up, and Copy transcript copies all text so far with speaker names and times.

Live text is preliminary, and speaker names are voice matches rather than certainties. Saving opens the saved meeting, whose text can change as it is finalized. Discarding shows that the meeting ended without saving. A hidden window stops checking for new text. Show live meeting transcript in Settings turns the view off. Pairs with server 6.67.0.

The menu-bar panel also includes the 0.5.277 changes: the standing version card is gone, the version appears beside Control, and the top-right refresh button refreshes status and checks for updates. Available updates open What’s New before you choose Download and install.

Control 0.5.277: a tidier panel

The standing version card is gone from the menu-bar panel; updates still arrive as the gold Update available banner. The refresh button at the top right refreshes status and checks for updates, and the line under Control says Checking for updates, then Up to date or Couldn’t check for updates. The version shows next to Control, and Settings in Activity has the same refresh and check button.

Control 0.5.276: Messages answers are formatted

COS answers in Messages (Recent, archived chats and session chat replies) now render bold, lists, headings, quotes, code and links instead of raw Markdown, the same way Meetings does. Row previews show clean text. Copy turn and Copy + images still copy the original text. Only web links are clickable in any pane that renders Markdown, and italic text now draws as italic.

Control 0.5.275: What’s New before you update

When an update is ready, Update in the menu-bar panel (or Check for updates) opens a What’s New window with the release, a summary and what changed. Download and install shows each step, and COS Control quits and reopens by itself while the glasses server keeps running. After an update, What’s New opens once on its own. An update that cannot be staged now stays open and says why, instead of closing COS Control.

Control 0.5.274: connect your glasses in one scan

Setup guide, Glasses: COS checks Tailscale on your Mac and on your iPhone, then shows a pairing code. In COS Glasses 6.10.621 tap Scan code on your Mac, photograph the code (or use a screenshot, or type it), then tap Allow on the Mac. Codes last 5 minutes and work once, and the Allow card names the device and warns when it is not on your Tailscale account. Pairing on home Wi-Fi is an opt-in 10-minute switch. When a new COS Control is ready, the menu-bar glasses turn gold and the panel opens with an Update available banner.

Server 6.67.0 adds the pairing routes. Pasting the pairing token still works everywhere.

Control 0.5.273: setup and Settings in Activity

Open COS Control from the Dock and choose Settings in Activity. It shares the menu-bar controls and saved preferences. The setup guide distinguishes missing AI tools from tools that need sign-in, guides macOS permissions, and resumes where you left off. Local voice downloads a checksum-verified, Developer ID signed and Apple-notarized Whisper runtime without Homebrew. It benchmarks your Mac and keeps an existing Balanced or Max choice. Recommendations for smaller Macs remain provisional.

Server 6.66.0 adds the managed Whisper path and reliable Claude detection outside your shell. Haiku is the server default for final dictation polish when the client does not send an explicit choice; saved client selections still win. This is separate from your local Whisper transcription tier.