Introducing screen-aware agents

Meet OmniQYour always-on AI overlay

A translucent companion that floats above every window. Ask it about what's on your screen, hand work to an agent, and get answers without ever leaving the app you're in.

session.ts
session.test.tsauth.ts

EXPLORER

src

└ auth.ts

└ session.ts

└ session.test.ts

└ store.ts

└ index.ts

package.json

24async function refresh(token: string) {
25const res = await fetch(`${API}/refresh`, {
26method: 'POST',
27headers: { authorization: `Bearer ${token}` },
28})
29
30if (!res.ok) return null
31return res.json()
32}
33
34export async function createSession(opts: Options) {
35const cached = store.read('session')
36
37if (cached && !isExpired(cached, opts.expiresIn)) {
38return cached
39}
40
41const next = await refresh(cached.refreshToken)
42store.write('session', { token: next.token })● next is possibly null
43return { token: next.token, issuedAt: Date.now() }
44}

TERMINAL

$ npm run test

FAIL src/session.test.ts > session > refreshes an expired token

→ TypeError: Cannot read properties of null (reading 'token')

at createSession (src/session.ts:42:24)

12

Bring your own model — OmniQ talks to all of them

Claude
Supported
OpenAI
Supported
Gemini
Supported
Groq
Supported
Mistral
Supported
DeepSeek
Supported
xAI
Supported
Kimi
Supported

One overlay. Every context.

OmniQ reads the window you're working in, loads the right tools for it, and answers in place — so the context never has to leave your screen.

What is this error on my screen actually telling me — and what should I change?

The session helper returns null on a failed refresh, so line 42 reads a property off nothing. Guard it and retry once.

Sees What You See

Ask about anything in front of you. OmniQ reads the active window, captures the region you point at, and answers without a single copy-paste.

Runs Where You Work

Terminal, editor, browser, file explorer — OmniQ loads the matching tool pack the moment that app takes focus.

0ms to first token

Answers in a Blink

Replies stream into the overlay in milliseconds. No tab switch, no loading screen, no losing your place.

TueWedThuFriSat
2:45 PM

Build finished

Standup in 10m

Add timer

Timers That Find You

Drop a timer on the pill, or let a long-running agent ping the overlay the moment it finishes. You'll never miss it.

I built OmniQ because I kept alt-tabbing to a chat window to ask about something already on my screen. Now the answer comes to the screen instead — and when the job is long, it taps me on the shoulder when it's done.

Ben Fowler

Creator of OmniQ

Summon. Ask. Done.

Four steps from hotkey to finished work — and you never leave the window you're already in

overlay — idle
CtrlShiftSpace

Summons the overlay above any window

Local by default. Yours by design.

Your screen never leaves your machine unless you send it — and every agent starts with the keys taken away.

Permissions You Control

Read-only out of the box. Every write, command and browser action asks first, and any tool pack can be revoked mid-conversation.

Any Model, Anywhere

Route to Claude, OpenAI, Gemini, Groq, Mistral or a local endpoint — and switch providers without losing the thread.

Things you'll ask it on day one

Every one of these works against whatever is already on your screen — no pasting, no uploading, no setup.

“Why did this build fail?” Reads the stack trace straight off the terminal and points at the line that threw.

Terminal

terminal pack

“Review what I just wrote.” Sees the open file and the diff then flags the edge case you skipped.

Editor

IDE pack

“Summarise this page.” Pulls the article text without a copy-paste and hands back the five points that matter.

Browser

browser pack

“Why did this build fail?” Reads the stack trace straight off the terminal and points at the line that threw.

Terminal

terminal pack

“Review what I just wrote.” Sees the open file and the diff then flags the edge case you skipped.

Editor

IDE pack

“Summarise this page.” Pulls the article text without a copy-paste and hands back the five points that matter.

Browser

browser pack

“Why did this build fail?” Reads the stack trace straight off the terminal and points at the line that threw.

Terminal

terminal pack

“Review what I just wrote.” Sees the open file and the diff then flags the edge case you skipped.

Editor

IDE pack

“Summarise this page.” Pulls the article text without a copy-paste and hands back the five points that matter.

Browser

browser pack

“Why did this build fail?” Reads the stack trace straight off the terminal and points at the line that threw.

Terminal

terminal pack

“Review what I just wrote.” Sees the open file and the diff then flags the edge case you skipped.

Editor

IDE pack

“Summarise this page.” Pulls the article text without a copy-paste and hands back the five points that matter.

Browser

browser pack

“Draft a reply to this.” Reads the thread already on screen and writes in the register you use.

Mail

screen capture

“Rename these to match the convention.” Proposes every rename before touching one and waits for your approval.

File Explorer

files pack

“Explain this spike.” Reads the chart labels and the axis then tells you what changed on Tuesday.

Dashboard

screen capture

“Draft a reply to this.” Reads the thread already on screen and writes in the register you use.

Mail

screen capture

“Rename these to match the convention.” Proposes every rename before touching one and waits for your approval.

File Explorer

files pack

“Explain this spike.” Reads the chart labels and the axis then tells you what changed on Tuesday.

Dashboard

screen capture

“Draft a reply to this.” Reads the thread already on screen and writes in the register you use.

Mail

screen capture

“Rename these to match the convention.” Proposes every rename before touching one and waits for your approval.

File Explorer

files pack

“Explain this spike.” Reads the chart labels and the axis then tells you what changed on Tuesday.

Dashboard

screen capture

“Draft a reply to this.” Reads the thread already on screen and writes in the register you use.

Mail

screen capture

“Rename these to match the convention.” Proposes every rename before touching one and waits for your approval.

File Explorer

files pack

“Explain this spike.” Reads the chart labels and the axis then tells you what changed on Tuesday.

Dashboard

screen capture

“Ping me when the deploy lands.” Drops a live timer into the pill and glows the moment it finishes.

Anywhere

timers

“Simplify this paragraph.” Rewrites what you highlighted in place without opening another window.

Docs

screen capture

“Run the tests and fix what breaks.” Asks before every command it runs then reports back with the diff.

Terminal

agent mode

“Ping me when the deploy lands.” Drops a live timer into the pill and glows the moment it finishes.

Anywhere

timers

“Simplify this paragraph.” Rewrites what you highlighted in place without opening another window.

Docs

screen capture

“Run the tests and fix what breaks.” Asks before every command it runs then reports back with the diff.

Terminal

agent mode

“Ping me when the deploy lands.” Drops a live timer into the pill and glows the moment it finishes.

Anywhere

timers

“Simplify this paragraph.” Rewrites what you highlighted in place without opening another window.

Docs

screen capture

“Run the tests and fix what breaks.” Asks before every command it runs then reports back with the diff.

Terminal

agent mode

“Ping me when the deploy lands.” Drops a live timer into the pill and glows the moment it finishes.

Anywhere

timers

“Simplify this paragraph.” Rewrites what you highlighted in place without opening another window.

Docs

screen capture

“Run the tests and fix what breaks.” Asks before every command it runs then reports back with the diff.

Terminal

agent mode

Frequently Asked Questions

Answers to the things people ask before installing OmniQ. If yours isn't here, open an issue on GitHub and it will be.

Always on. Never in the way.

Download OmniQ for WindowsFree and open source — MIT licensed