Your AI sessions. One calm place.

Meet COS Control, your Mac companion for Claude, Codex and Cursor. See what is running, catch the next reply, and return to the right session. Start with one useful task. Add meetings, memory and glasses when you are ready.

Turn a loose thought into a plan.

Open your usual AI app and send a small task:

Help me plan tomorrow. Ask what matters most, then turn my answer into three clear priorities.
  1. See it in Sessions. Find that conversation in COS Control.
  2. Follow the reply. Read its progress while you work elsewhere.
  3. Go back when it needs you. Open the same session in its AI app.

Already use Claude, Codex or Cursor? Start with a session you already have. No glasses or voice setup required.

Get running. Then try one task.

Set up your Mac, then try your first useful session. COS installs and runs its server for you.

Download for Mac

  1. 1

    Download and move to Applications.

    Unzip the download and drag COS Control into your Applications folder. Updating manually? Quit the old Control first, then choose Replace. Keep any rollback copy outside Applications.

  2. 2

    Open COS Control.

    Open it from Applications. This download is signed with Developer ID and notarized by Apple. A normal downloaded-app confirmation may appear.

  3. 3

    Connect your AI, then Get started.

    Use a signed-in Codex app, Claude Code, or Cursor Agent. If none is found, the welcome window helps you connect one. Choose Get started; COS downloads and starts its server using the runtime included with the app. Leave the window open while setup finishes. If the connection fails, choose Try again.

  4. 4

    Try your first task.

    When COS says it is ready, choose Open Sessions. Send the planning prompt above in your AI app, then find the conversation here. Follow its reply and use Open in platform to return to it. Existing installations keep their current controls and data.

Add meetings, memory, glasses or voice later

Choose your Work Folder and Meetings Library, or connect your glasses. Set up local voice separately when you need it. macOS asks for microphone, files, notifications or Accessibility access when the feature needs it; Accessibility is used for the pet’s session jump.

What you need. Apple silicon, macOS 14 or later, internet access, and one supported AI provider signed in. Core setup includes its own Node/npm runtime. Add local voice through the in-app setup guide: COS downloads its verified Whisper runtime and models. Allow several GB for models. Optional spoken replies and image features have separate dependencies.

Everything in one window. Open COS Control from the Dock, then choose Settings in Activity for the same controls as the menu-bar panel. The resumable setup guide helps you install and sign in to your AI provider, review permissions and add local voice. Voice setup downloads verified, signed Whisper tools without Homebrew and keeps your existing transcription tier.

Updating an older copy?

The move from the old local signature to Developer ID may require granting feature permissions again in System Settings. If macOS blocks this current download as unverified, download it again and check the checksum; do not remove its quarantine flag.

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.

Stuck during setup?

If your AI is not detected, open it and sign in, then choose Check again in COS. If server setup fails, choose Try again. Use Doctor in the menu bar for the failing check. If dictation only copies its text while Accessibility shows COS Control on, remove COS Control from the Accessibility list with the minus button and add it again with plus; Settings, Session pet, Reset and add again does the same. Follow the full setup guide for provider and optional glasses steps.

Eight views into the work it already holds.

The companion is the part you actually open.

Every turn your glasses took, with what it was looking at.

Ask a question mid-meeting and the answer is waiting on your Mac afterwards, alongside the photo you were looking at when you asked. An Archive switch lists every older day it has stored and searches the whole store by text. Copy a text handoff into any chat, or bring the images along explicitly.

TODAY · 30 TURNS · MONTHS IN ARCHIVE

Messages#312 · 2:14 PM

What did we decide about the Lakeside migration timeline?

Three calls reference it. The June 4 review moved cutover to Q4, pending the parity list Priya owns. Nothing since has changed that date.

whiteboard-0604.jpg

Listen. Name. Review what changes.

Speakers has Meetings to review, Samples to review, and Voices. Listen to held samples, grouped by who they sound like, choose a name or a scored suggestion, then preview the labels it would change in that sample’s own meeting. Apply is a separate action. Undo restores the labels while keeping the learned voice samples. Long lists scroll without hiding the toolbar.

Choose Link to existing task to find the task this meeting belongs to. Its meeting reference and attached files become context for the next Work handoff, while the existing task and its earlier links stay intact.

LISTEN · PREVIEW · APPLY · UNDO

Meetings to review14 recent
Parity walkthrough, Lakeside3 to name
Pipeline reviewnew
Northwind renewalreviewed

Ask live or after saving.

Record on your Mac. Start a recording with Record in Activity, Meetings (or Meetings, Record on Mac… in COS Control’s menu), or say yes when the pet notices a Zoom, Teams or Google Meet call holding the microphone; Stop Mac recording and save sits in the same menu. COS records all Mac audio by default, or one app you choose, and says so when no sound is reaching it. The REC pill on the pet opens the live meeting: the transcript as it arrives, with Live COS Ask beside it. When a glasses meeting and a Mac recording run at once, Showing switches between them. A Live now row that has gone quiet offers End and save. Saved Mac recordings appear in Meetings beside your other calls, and a capture that stopped early can still be saved. A Mac recording stops at two hours for now. The Mac guide walks through recording and the live view step by step.

Control 0.5.289 adds a Transcription card: choose Whisper Turbo or Parakeet Ultra for the live preview and the HQ model for saved meetings, and install Parakeet. Control 0.5.288 adds a Home city setting so fact checks start from the right place, and a meeting the server already finished no longer shows as Live now. Control0.5.287 and server6.71.12 add saved-meeting follow-ups and a Fact check button. Answers are shorter, preserve useful summaries and distinguish reported labor from verified savings. Inline citations open their evidence. Broader comparison usefulness is limited; phone/G2/Android field acceptance remains pending. Experimental transcription and automatic cue flags stay disabled.

Since Control 0.5.287, answers include an evidence-confidence note and unavailable model details stay collapsed until expanded. Optional Jev setup no longer holds the setup reminder open. Server 6.71.12 adds accepted finalized passages to new saved-meeting answers, with earlier answer quotes preserved. Live transcription stays preliminary.

While a meeting records, from your glasses or on this Mac, the menu-bar icon and a REC badge in the Dock say so, and a Mac recording opens in the same live view. Open Live now (or press Command-Shift-L) to follow the transcript on your Mac. Scroll back to pause following, Jump to live to catch up, or Copy transcript to take the text with you. Live text and speaker matches are preliminary. Saving opens the saved meeting; discarding shows it ended without saving. Turn off Show live meeting transcript in Settings to disable this view.

Live COS Ask sits beside the live transcript 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 this meeting and cite the lines they used. A question you type can also look in COS memory and earlier meetings, and a plain public question such as who is can search the web. Web search uses your typed public-topic words by default. With explicit public-topic consent, server 6.71.12 can also select public keywords from recent transcript passages for fact-checks and cost comparisons; private meeting details and files are withheld. Companion635 exposes this choice through Fact check; physical phone/Android acceptance remains pending. Every question and answer stays with the meeting after you save it, switch meetings or restart. Stop a running answer or retry one yourself; nothing reruns on its own.

Beside Live COS Ask, Cues lists the meeting’s live cues, newest first, with the same five verdicts on each, so rating one takes a click while the meeting runs. Cues needs COS server 6.79.0 or later.

Drop, paste or add files under Files shared in this meeting, or drop a screenshot on the Ask box. Their text is read on your Mac and shared with Ask; the model never sees the image itself, and a file that looks like it holds credentials is held back. Pick the Meeting assistant model right under the Ask box or in Settings. Sonnet is the default for fresh settings; existing explicit choices are preserved, and other chats keep their own models. Copy full context adds every answer, its sources and the file text to the transcript. Sources open where they came from: the transcript line, an earlier meeting, a memory, the file or the web page. Ask needs server 6.69.0 or newer, and public web lookup needs 6.70.0; on an older server the live transcript keeps working.

Phone review is also available in the COS Glasses companion: formatted notes, retained voice samples, saved-profile search and explicit confirmation. Its monochrome phone theme is separate from this Mac workspace.

A month calendar, then the day. Open a call for the transcript, the summary, and who spoke, laid out as a document with Copy full context as the one gold button. Search everything stored by keyword, or by meaning when you cannot remember the title. Meetings another recorder made come in too: paste a Fireflies key and COS pairs its transcript with your own recording of the same call, merges the two into one record, and keeps Undo beside it. Times read 1:02 PM; the 24-hour clock is one pick away under Settings, Advanced.

Choose Link to existing task to find the task this meeting belongs to. Its meeting reference and attached files become context for the next Work handoff, while the existing task and its earlier links stay intact.

MAC RECORDING · LIVE TRANSCRIPT · LIVE ASK · FILES · COPY FULL CONTEXT · FIREFLIES · 12- OR 24-HOUR

MeetingsAugust

Thursday, August 14

9:00 AMPipeline review42m · 4 speakers
11:30 AMParity walkthrough, Lakeside58m · 3 speakers
3:00 PMNorthwind renewal27m · 2 speakers

The decisions, not the transcript.

What was settled, what was corrected, and the context worth keeping. Recent learning shows what COS captured and used in the last 90 days; To review holds what it proposed until you keep or dismiss it, and a memory it captured can be accepted or pruned; Knowledge is a graph of your own data you can ask in plain language. Markdown you drop into the folder becomes browsable alongside it. No vector database required to start. Cues to rate shows the last seven days of live cues one at a time, with what was said just before each, so you can mark it Useful, Late, Repeat, Wrong or Obvious (keys 1 to 5); Rated cues lets you change your mind.

RECENT LEARNING · TO REVIEW · CUES TO RATE · KNOWLEDGE · COPY AS CONTEXT

Memories5,529 stored
decisionCutover moves to Q4Jun 4
contextPriya owns the parity listJun 4
correctionNever quote list price on a renewalMay 22

Work that develops across meetings.

A thread is one piece of work seen across every call that touched it, so you can tell what is compounding from what has quietly stopped. The shape beside each one is its activity over the last seven weeks. Open one and its note, target date, topics, stakeholders, linked meetings, milestones, and sources are on one page; Copy as context carries all of it.

64 TRACKED · 11 ACTIVE

Threads64 tracked
Lakeside parityactive
Q4 pipeline modelslowing
Northwind renewalstalled

Claude, Codex, and Cursor, in one list.

Every agent chat on this Mac, whichever tool started it. Pinned threads stay listed at any age. Open one to read the transcript, or copy a redacted brief to pick the work up somewhere else.

Open a Claude session and an Activity block above the turns says what it is doing right now: Working with a clock, Waiting on a permission, Failed, or Idle with its last reply, plus the last eight things it did. A composer sits under every session, and on the session pet. Type a message and it lands in the real thread on your Mac, with the reply back in the pane. Long turns keep running after you close the window. A thread mid-turn can queue your message for delivery when the session is ready. Recorded hold reasons explain why a follow-up is still waiting; the queue is listed under the composer with each message’s place and text, with Edit and Cancel while it is waiting. Where the queue cannot take it, Retry and a Fork with this message button that runs your message in a copy while the original stays untouched. On the session pet, RUNNING counts the sessions at work; DONE and WAITING appear only when they have something, and REC leads while anything records.

TEXT IN, REPLY BACK · QUEUE LISTED, EDITABLE, CANCELLABLE · PINNED KEEPS ITS OWN CLOCK

Sessions63 on disk
claudeParity build, Lakesiderunning2m
codexMigration script reviewidle1h
cursorSession search reworkrecentyesterday

Working · 4m 12s · Ran npm test, then git diff. Type into the composer and it posts into the real thread. The reply comes back here.

The task, its meeting, and the session doing it.

Work keeps your existing tasks and groups them by domain. Follow each through Mentioned, Planned, Draft, Built, QA and Complete. Open the source meeting, inspect recorded handoffs, and return to the same work.

Board shows the sessions Work sent above the board: which is running, which is waiting on you, and which reply is ready, with Open session and Mark reviewed on the card. Drag a card between columns to change its stage, or onto Start work to put a session on it; nothing runs until you confirm where it goes. Complete is the last column: drop a card there to finish it, or drag it out to reopen it. Work chat plans before it sends. Describe the work and COS splits it into assignments, each carrying only its own context, and each linked session shows how full its context is. An assignment waits at Ready to send with Send and Edit, and every send re-checks the task first; Plan and send runs the same checks without stopping. Choose Sonnet or Opus, and the effort, beside the composer. A round reads Dispatched only when an assignment reached its session, and otherwise says why it was not delivered. A new idea sent while earlier work is still open waits behind that work and sends by itself when it is done; Settings, Work can ask each time instead, with Send in parallel. Link a session as a reference to use what it did, without ever sending to it from that task. Focus opens an item with its Agent workspace pinned beside it: what is happening now, where the next handoff goes, and the context it sends.

Review a saved meeting when you choose. Then continue in an existing agent session, fork it, or start a new one. Review the context before sending; the selected agent keeps its own permissions. Completing a task does not approve publication.

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, each answered in place. Tasks show who their meetings involved. With a Jev key in Settings, Work suggests whether to continue, fork or start a session, and only suggests. Open in platform goes straight to the Claude session, including one Work ran on this Mac, and that session links back to its work.

A new session starts on this Mac and opens in its app once its first reply is done: Claude and Codex in their own apps, Cursor in Terminal with cursor-agent. With server 6.58.2 a Claude one is named after its task and shows in Work, Sessions and on the pet while it runs. Work follows the session: the card moves to Draft when the session has the work and to QA when the session reports done with evidence, never to Complete, and every move can be undone. A session that needs you says so on the card and in a notification.

Server 6.61.4 and newer keeps a merged G2 meeting linked to its canonical review even when the original file survives. COS Control 0.5.266 includes responsive task-name editing and review/resize improvements. From Meetings or Speakers, choose Link to existing task to attach a saved meeting to the work already underway. See release coverage.

Your glasses can start work here too. Start work, Reply by voice and Not done yet on the glasses leave a request that Control checks against the task again and sends through the same guards as the Agent workspace, then reports back to the glasses. A session started from the glasses stays in the background so the glasses can keep replying. Needs server 6.59.0.

BOARD OR FOCUS · SESSIONS AT WORK · DRAG TO START, CONFIRM FIRST · INTAKE · NEW SESSIONS OPEN IN THE APP · CARDS MOVE UP TO QA · STARTED FROM THE GLASSES

Work17 tasks
draftDraft the Lakeside parity memohandoff recorded4m
plannedPrepare the cutover checklistThu 09:00
mentionedReview the Q4 pipeline modelfrom glasses

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

Pick any shortcut to hold or toggle, Fn by itself included. Dictation runs on this Mac, never the cloud: Automatic uses Parakeet Ultra when it is ready and local Whisper otherwise. Install Parakeet (654 MB) from Settings, the menu bar or a dictation card, and Whisper keeps working while it downloads. COS checks that the text landed in the field you were typing in; if it could not, the text waits on the clipboard and the card says why. The pill says STARTING until the microphone is really hearing you, and if your Mac misses the moment you let go of the key, COS notices and finishes the dictation normally, typing the text instead of copying it. Switching to a microphone with a different audio format, like the Studio Display Microphone, no longer quits the app.

Fix a word corrects the dictation where you typed it, in Claude and Slack too, and teaches the dictionary your meetings use. Learn from my edits saves the corrections you make afterwards. This tab keeps your recent dictations, with the engine that ran and where each one went, and the dictionary, with Undo. Settings sits beside History and Dictionary, so the microphone and the shortcut are one click away.

ON THIS MAC · ANY SHORTCUT · FIX A WORD · ONE DICTIONARY

Dictation50 recent
slackMoving the Lakeside review to Thursday at nine.inserted
claudeDraft the cutover checklist from the parity list.Parakeet
iterm2Run the migration tests again.pasted
learnedlake side to Lakesidesaved

The pet is not decoration. It is the live map.

Start with the Cloud Puff and one visible ledger for Running, Done, and Waiting. Choose an animated character whenever you want. The demo below shows the optional Miles Windu character.

COS session deck4 agents · live
Running 4All systems
CodexRelease checksmu-chief-staff · building
ClaudeControl motioncos-control · refining
CursorAgent routingcos-glasses · wiring
ClaudeDocs launchgotcos-site · verifying

See the work. Open the work. Write back into it.

The ledger combines the agent sessions on this Mac, shows what is running, finished, or waiting on you, and keeps the workspace visible. Click a row to use the strongest destination that platform exposes. Or open Activity, read the transcript, and send a follow-up into the actual thread without hunting for its window.

CodexOpens the task thread and accepts follow-up messages.Thread route
ClaudeOpens the matching session, or its terminal when Claude Code is running there.Session route
CursorRaises the Agents window, then selects the matching session row.Agents route
LocalOllama appears as a private model family when its local daemon is running.Model route
“I love that I can click on it and it just opens up my running tasks for me. Saves me time.”Early Control user

Your session state, at a glance.

The bundled Cloud Puff is the simple default for new users. Existing pet choices stay yours. The centered ledger beneath any pet changes to Running, Done, or Waiting, so you can read the state without reopening every agent. Open the RUNNING list and each live row carries a paperplane: a card names the session, you type, Return sends into the real thread. For more animation, choose Miles Windu or another character in Characters. You can also use a gallery pet or bring your own sprites.

Miles Windu Version 15, below, is re-rendered from 2x art, and every running state shuffles its opponents: four casts with one session, three each with two, three, and four or more.

4+ sessionsShown with four or more running

Every loop ends with the next squad walking in while the last one falls. Three opponent casts, shuffled so the same fight never plays twice in a row.

Frames
64
Now playing
Cast 1 of 3
Running 4+
IdleShown with no sessions running8F
Ready
1 sessionShown with one session running46F · 4 casts
Running 1
2 sessionsShown with two sessions running37F · 3 casts
Running 2
3 sessionsShown with three sessions running43F · 3 casts
Running 3
Message a session from the petHover a live row and press the paperplane. The card names the session, so you always know where the message goes; Return sends it over the same routes the glasses use. A running Claude session takes it straight into its own window. Supported busy sessions can queue the message until they are ready. A queued message is still waiting to be sent; recorded hold reasons remain visible in Sessions. The card says which happened, then closes itself. What is queued shows under the field with its place in line and its text; tap a row to read the whole message, Edit to change it while it still waits, × and it will not be sent.
Four optional advanced JediStart with Cloud Puff, then choose Miles Windu, Nia Solari, Elara Vale, or Rowan Vale for authored idle, walking, and workload-specific stories. All four rotate shuffled opponent casts, so a long run does not replay one fight.
300 variety petsChoose from the OpenPets gallery. They stay still, but the live ledger, routing, and session controls remain fully available.
Bring your own spritesUpload a single PNG, or install a custom state pack with separate strips and timing for idle, one, two, three, and four-plus sessions. The live Running, Done, and Waiting ledger stays underneath, keeping completion status glanceable with any art.Build a custom pet pack
Build a custom animated pet pack
  1. Draw each animation as one horizontal PNG strip. Every frame in a strip must have the same width and height.
  2. Add session-pet-states.json to the same folder. Name each file explicitly and declare its frame count.
  3. Use interval for seconds per frame. Use renderScale only when one pose needs visual normalization.
  4. In Control, open Session pet, Character, Install sprite pack and choose the folder.
{
  "poses": {
    "idle":    { "file": "idle.png",    "frames": 8,  "interval": 0.20 },
    "working": { "file": "one.png",     "frames": 12, "interval": 0.12 },
    "duel":    { "file": "two.png",     "frames": 16, "interval": 0.14 },
    "trio":    { "file": "three.png",   "frames": 16, "interval": 0.16 },
    "swarm":   { "file": "fourplus.png","frames": 24, "interval": 0.18 }
  }
}

Complete state vocabulary

A full pack may also define waiting, done, error, attention, and patrol. A strip can contain 1–32 frames. Per-pose renderScale is clamped from 0.5 to 3.0. Missing states fall back safely instead of turning a one-cell image into sliced confetti.

Character size and animation speed remain user settings. The pack's interval establishes authored timing at 100%; macOS Reduced Motion freezes animated strips.

300

Choose a companion that feels like yours.

These are ten of the community figures available inside Control. Every one keeps the same Running, Done, and Waiting ledger beneath it.

Visit the OpenPets gallery
Cloud Puff community petCloud Puff
Raccoon community petRaccoon
Fox community petFox
Penguin community petPenguin
Robot community petRobot
Budgie Berry community petBudgie Berry
Rabbit community petRabbit
Astro Bot community petAstro Bot
Planet community petPlanet
Brew community petBrew

The server appliance COS was missing.

Same server. A native controller around it.

COS Control wraps @gotcos/glasses-server in a small Mac app that adds durable startup, background work, local transcription controls, meeting recovery, safe updates, rollback, and diagnostics that report the system you are actually running.

Verified ownership, scheduled recovery

A managed LaunchAgent owns one verified server process. COS Control will not race a terminal process or seize a port it does not recognize. Scheduled recovery brings the service back without creating a second owner.

Safe updates with proof

Restart is blocked while a recording or job is live. Updates stage an immutable generation, verify the server and agent paths, then switch. If proof fails, the prior verified generation is restored.

Replies that survive the phone

Accepted replies can keep running on your Mac while you browse, lock the phone, or close COS. One machine-wide Background jobs switch controls every connected device. Applying a change drains active work, restarts safely, verifies the capability, and rolls back if proof fails.

Live meetings without the six-second wait

Meeting Turbo preview renders provisional text from the still-open phrase, then gives way to the canonical speaker-attributed Large-v3 transcript. The machine-wide switch is default-off, persists through managed updates, and can be disabled immediately without touching saved audio, recovery, or polish.

Fast preview, authoritative transcript

Choose Balanced or Max and see the effective model for every lane. A low-latency preview shows what COS hears while you dictate. The authoritative live commit replaces it, and saved meetings receive full local polish. Canonical work always gets priority over provisional preview.

Meeting safety you can see

Control reports active recordings, HQ polish, retained batches, and unsaved captures instead of hiding them behind a generic healthy light. Restarts stay locked while durable work is active, and recoverable captures remain visible before retention expires.

Cleaner review audio, raw always preserved

An optional, default-off Adaptive replay switch cleans retained audio only after you press Play. The immutable raw WAV stays authoritative and remains an exact bypass. Live recording and transcription preempt cleanup, and failed cleanup immediately falls back to raw playback.

One Activity workspace

Messages, Speakers, Meetings, Memories, Threads, Sessions, Work, and Dictation open together in a resizable window. Messages keeps a Recent and an Archive view, so older stored days stay browsable and searchable. Speakers starts on Meetings to review: unnamed first, hide reviewed, and Next to name. Meetings has a day calendar, transcript, summary, and copy, plus keyword and meaning search across stored calls. Lookup on Meetings, Sessions, Memories, and Threads can sort Newest, Oldest, or Best match next to Domain. Peer tabs, Home, Back, and scoped breadcrumbs keep your place clear. Closing Activity stops voice playback, and a late server response cannot replace the newer record you selected.

Sessions from Claude, Codex, and Cursor

Sessions lists chats from this Mac. Updated and Opened look back 7 days. Pinned is its own clock: ChatGPT/Codex pins, Claude Desktop stars, and Cursor sidebar pins stay listed at any age, including Desktop-only Claude chats. Keep-warm ready rows stay out. Search matches sidebar titles and recent transcript bodies. Click a row for the transcript and a composer: a message you type lands in the real thread, and the reply comes back in the pane. Long turns keep running after the window closes. Supported busy sessions can queue the message until they are ready. Sessions shows recorded hold reasons while a follow-up waits; structural refusals still offer Retry or Fork with this message. Copy session puts a redacted kickstart brief on the clipboard.

GOT COS, once the panel is open

The menu bar still uses eyeglasses for a running or offline glance. Open Control or Activity and the GOT COS lockup is the brand. Headings use Fraunces, UI copy uses DM Sans, and chrome numbers use JetBrains Mono, the same trio as this site. Every control inside follows it: a dropdown opens as a card list with a gold rule on the chosen row, a view switch is words with a gold rule under the current one, and switches and checkboxes fill gold.

Name held samples, with a preview

Each loose sample can suggest an existing voice, with its score and a caution when it sounds close to the owner. Preview separates voice training from meeting labels and shows wider matches within the same meeting. Apply reports each sample and meeting copy. Undo restores this batch’s labels, keeps enrolled samples, and never restores deleted audio. Interrupted naming stays visible for an explicit resume or revert. Requires server 6.46.0 or newer.

A Voice Directory with evidence

Browse every enrolled voice with training-sample provenance, attributed and review segments, meeting count, last seen, a sample count, and a confidence figure: the share of scored speech matched confidently, over the segment-weighted average match. Open a person to see recent meeting appearances. Unidentified voices stay grouped by meeting and are never combined into a false global identity.

No lock-in

The runtime is the same @gotcos/glasses-server. Already run your own? COS Control can manage it in place, with no reinstall and no re-pairing. Quit any time and go back to the plain npx command.

Work Folder

Under Tools, Work Folder is your COS project root: the workspace Claude, Codex, and Cursor search and edit. It does not move the managed server package. Each person’s COS can live anywhere; pick the folder that matches yours. Managed servers reload safely; older adopted servers show the selection as pending until a safe restart is available.

Your existing meeting library

Choose the folder you already use for meetings. The recommended path directly contains YYYY-MM/*.md. If you already maintain several libraries, choose their parent; every folder name is customizable and only needs meetings/YYYY-MM/*.md inside. Direct libraries stay read-only, while existing operations pipelines keep enrichment and writes.

Ask your knowledge

Open Memories in the Mac’s light or dark appearance. Ask the graph comes first, with a populated graph below it and manual tools under Advanced investigation. A compatible model pipeline can select the points and hops for your question. Set your name during onboarding or edit it in Memory settings.

Memory and Threads, proved locally

No vector database required. Create Folders makes memory/ and threads/ where COS already looks, and any markdown you drop in becomes browsable. The Activity workspace opens the same Memory and Thread records your glasses show, with Copy as Context and Reveal in Finder for file-backed notes. COS Data still points at a full Python workspace when you have one, and Control verifies the bridge, protocol, and authenticated route before saving. The panel names the resolved folder, and a store that exists but is empty reads as healthy rather than broken.

Today's glasses turns, with their photo context

Recent Glasses lists the last 30 turns from today, restores validated photo thumbnails, and opens a full local preview. Copy a text-only handoff, or explicitly choose Copy + images to bring up to five local images into another chat. Images remain on your Mac, and old privacy eras fail closed.

Answer with your own key, if you want

Your Claude or ChatGPT plan stays the default. Turn on Answer with your own key in Settings and answers can run on your own OpenRouter or Anthropic key instead, on Claude Sonnet 5.5 or Claude Haiku 5.5, with a daily cap you set ($1 to start). It is off by default, and nothing changes for anyone who never turns it on. Keys go in by paste only, never by voice; Control shows the kind and the last four characters, and Remove or Remove all keys takes them out with one confirmation. Your key is saved on this Mac. Apps and agents that run on this Mac as you can read it. Your provider’s spending limit is the real stop. The cap can be exceeded by the last reply in progress. Your provider limit is the hard stop. Needs COS server 6.80.0 or later; remove saved keys before installing an older server.

Local models through Ollama

COS can run replies on a local model through Ollama. When a local daemon is live with a pulled model, About shows an Ollama row naming the model and Doctor confirms it. A Mac without Ollama shows nothing, because nothing is missing.

Live sessions on the desktop

Running, Done, and Waiting sessions from Codex, Claude, Cursor, and local models stay visible when Activity is closed. The ledger shows what is active, finished, or waiting on you at a glance. Click a session to open the right thread or app, or send a follow-up directly from Activity. Choose one of four animated Jedi, any of 300 community pets, or install your own sprite pack. Pet size, scale, and speed are adjustable, while every character keeps the same session controls underneath.

Real agent readiness

Control checks Claude, Codex, and Cursor separately, shows their actual local versions, and distinguishes connected, available but untested, and failed states. That gives support something concrete to debug instead of a generic server health result.

See an example of the server status panel

Two ways to run COS.

Same server underneath. Pick the front door.

The glasses talk to @gotcos/glasses-server either way. Run it as a managed Mac app, or keep it in the terminal. Nothing about your data or setup changes.

Public npm server

Best for developers and existing setups. The foreground workflow stays fully supported and unchanged.

$npx --yes @gotcos/glasses-server@latest --setup-transcription --transcription-tier balanced

Take the terminal out of the loop.

Install once and the server just runs. Update, diagnose, and recover from the menu bar, with the same open-source runtime underneath.