Skilly

Privacy

How Skilly Handles Your Screen, Voice and Data

This page is what the Mac app code shows. It is not the legal privacy policy. That page is here.

Skilly points at a control. It never clicks, and it never moves your cursor. Bring your own OpenAI key is $5/month plus your OpenAI usage. The setup steps are in the OpenAI key guide.

Screen

ScreenCaptureKit takes a JPEG of every connected display when you start push-to-talk, submit a typed question, or when Live Tutor hears you start speaking. The helper returns that image data in memory, and the app sends it on the Realtime connection. The capture code does not write those JPEGs to disk.

Voice

The default mode is push-to-talk. That press installs a microphone tap and sends audio for the turn. Live Tutor is optional. While it is on, the mic streams to the Realtime session, and the feed is skipped while Skilly is speaking. It sleeps after 5 minutes of silence unless you change that. The code does not show your microphone audio being saved as a file.

Where it goes

Without your own key, the app requests a token from https://studio.tryskilly.app/api/mac/openai/token using the Keychain session. That route checks the session and mints a short-lived Realtime client secret with Skilly’s server key. The app then opens wss://api.openai.com/v1/realtime and sends the audio and screenshots there. With a saved key, the app skips that relay and POSTs https://api.openai.com/v1/realtime/client_secrets itself, then uses the same websocket. The hosted OpenAI key stays on the server.

What stays on your Mac

If you paste an OpenAI key, the app stores it in UserDefaults. The comment in that setting says it is plaintext on disk. It is not the Keychain item. Keychain holds the sign-in tokens (access, refresh, worker session, and user profile), marked ThisDeviceOnly. Completed turns are written under Application Support/skilly/conversation-history: the transcript text and, when present, the assistant’s PCM audio. That store keeps up to 100 turns and can be cleared. Installed skills and progress live in ~/.skilly.

Analytics

PostHog runs when analyticsEnabled is on, which is the default. On sign-in, identify sends the WorkOS user id, email, and name. A sent message is recorded as a character count, not the words. Turn stats send token counts, durations, and a cost figure, not the transcript. The app also stores a beta_terms_consent flag. The turn-stat capture function checks analyticsEnabled. It does not read that consent flag.

Open source

The repository root contains an Apache License 2.0 text. That is the license on the project.

Try it on your Mac

15-minute trial, no card. macOS 14.2 or later.

Not on your Mac right now?

Skilly runs on Mac today. Leave your email and we'll let you know when Windows is ready.when Linux is ready.when Skilly is on your phone.