Skip to content

Circle it.
Ask about it.

kk lives in your Mac's menu bar. Press ⌘⌥K, mark up whatever's on your screen, and ask your own AI model about it. The answer appears right beside the app you're using.

  • Free · GPL-3.0
  • BYOK · OpenAI-compatible
  • v0.9.2 · macOS 15+

An animated recreation of kk. In a code editor, kk opens with Command Option K, the line tags equals empty list is circled in red, the question “Why does the second call keep the first tag?” is sent, and an answer explains Python's shared mutable default argument. A follow-up asks for the safe version and kk replies with corrected code.

Press ⌘⌥K in any app. kk opens over whatever you're doing.

Recreated interface with sample content, based on kk's own previews.

Three moves, one shortcut.

Everything starts with ⌘⌥K. No browser tab, no pasting screenshots into a chat window.

A calculus problem set in a PDF viewer, with a red ellipse around the integral and kk's popup and annotation palette beside it.
kk's conversation: the integral evaluated in rendered LaTeX, then a follow-up about the newly circled case n = 2, answered as minus one ninth.
Display under cursor · attached

01 / 03

See it.

Bring your current screen into context.

Press ⌘⌥K and kk opens over whatever you're reading. The display under your cursor comes along; preview it, or drop it, before you send.

02 / 03

Mark it.

Circle, highlight, or point at exactly what matters.

Draw straight onto the screen with freehand, ellipse, rectangle or arrow. Marks can be moved and resized; they're sent with the screenshot, their handles aren't.

03 / 03

Ask away.

Get answers and continue the conversation.

Answers stream in with real math, code and tables. Move your mark, ask again, and the follow-up sees the updated screen.

Staged native renders from kk's README. The problem set and answers are sample content.

For the questions you'd otherwise screenshot.

One shortcut, one popup, and a red pen. Everything else is there to keep you in the app you were already using.

Mark it like you mean it.

Freehand, ellipse, rectangle and arrow, plus an eraser. Drag a mark to move it, resize from its handles, undo anything. Draw over a frozen snapshot or the live desktop.

Go ahead, scribble on the build log. With the canvas focused, the same tool keys work here: VFERAX

Terminal — kkland

$ npm run build

Creating an optimized production build

✓ Compiled successfully in 4.1s

Checking validity of types

Type error: 'post' is possibly 'undefined'.

12 | const post = posts.find(p => p.id === id)

> 13 | return <h1>{post.title}</h1>

| ^

Ellipse · 0 marksA playground in your browser. In kk, you draw over the whole screen.

Follow-ups keep the thread.

Ask again in the same popup. Each turn can bring a fresh screenshot; earlier questions, answers and images stay in the conversation. Copy any answer, or have kk copy the whole chat as Markdown when you close it.

kk's popup with two turns: an explanation of Python's shared default list, then the corrected code in a highlighted block.

Answers that render properly.

Headings, lists, highlighted code, tables and real LaTeX, in a popup you can resize.

Markdown / Code / Tables / LaTeX / Mermaid

kk answering 'Explain the quadratic formula in a few lines' with a heading, a rendered formula and a bulleted list.

Paste it, drop it.

Add up to ten files to any question. Scanned PDFs are read with on-device OCR.

images
PNG JPEG HEIC WebP GIF TIFF AVIF
docs
PDF text, plus page images
text
.txt .md .py .json .csv …

Native, down to the shortcuts.

Built in Swift for macOS. The global shortcut, tool keys and double-Shift gesture are all yours to change.

Try it on your keyboard. You can change it in Settings → Shortcuts.

Default keyboard shortcuts
ActionDefault
Open kk, or focus an open chat⌘⌥K
Send / new lineReturn/⇧Return
Attach a copied file or image⌘V
Back to drawing from the question⇧⇧double-tap
Focus the question from the canvasSpace
Close the popup or previewEsc
Open settings⌘,

From kk's README. More in the usage guide.

  • Looks like your Mac

    Light and dark, your accent color, and Liquid Glass on macOS 26.

  • Finds a quiet spot

    Optionally opens chat in the largest blank area beside your work.

  • Every display

    Attach the screen under your cursor, the active window's, or all of them.

  • Mermaid diagrams

    Drawn on your Mac with a bundled renderer. Broken ones get one automatic fix.

  • Keys in Keychain

    Your API key is stored in macOS Keychain, nowhere else.

  • Nothing kept

    No saved chat history, no screenshot library, no analytics.

  • Stays out of the way

    A menu-bar app. Drag and resize the popup, or keep it on top.

  • Launch at login

    Optional, from Settings → About.

Your model. Your key. Your endpoint.

kk is the window, not the brain. Bring whichever model you like, and requests go straight from your Mac to the endpoint you choose.

OpenAI-compatible
Any endpoint that speaks streaming Chat Completions. Use a vision-capable model for questions about your screen.
Cloud or local
Point kk at a hosted provider, or at a model server running on your own Mac.
Your key, in Keychain
Stored in macOS Keychain. Optional for endpoints that don't need one.
No kk account
No sign-up, no subscription. kk doesn't sell or proxy inference; usage is billed by your provider, where applicable.

# kk → Settings → Connection

base_url
https://api.openai.com/v1
model
<vision-capable model id>
api_key
•••••••••••••••••••• # saved in Keychain

→ POST api.openai.com/v1/chat/completions

question · marked screen · files · earlier turns

← streamed answer

kk · your Macyour endpoint

Nothing in between: kk has no server to send your screen to, and no analytics. Your provider's retention policy applies to what you send.

Less switching.
More thinking.

version
0.9.2 · kk-v0.9.2-macos-arm64.dmg (10.7 MB)
requires
macOS 15 or later, Apple silicon (arm64)
price
Free and open source (GPL-3.0). You pay your model provider, if anyone.

Install

  1. 01Download the DMGFrom the latest GitHub release. A ZIP of the app and SHA-256 checksums are there too.
  2. 02Drag kk to ApplicationsThen open it. kk lives in the menu bar, not the Dock.
  3. 03Connect your modelSettings → Connection: base URL, model ID and key. Grant Screen Recording when you want screen context.

This release is ad-hoc signed, not notarized. macOS may block the first launch. After moving kk to Applications, the release notes suggest running:

$ xattr -rd com.apple.quarantine /Applications/kk.app

Prefer not to? Build it from source with Xcode instead.