Chrome Web Store live Store · latest build Apache 2.0 For Chromium Built with OpenAI Codex Pi · gpt-5.5 · gpt-realtime-2

A reading companion that points.

Onhand is a contextual AI for learning and research. Ask about the page you already have open. It highlights the line, leaves a note in the margin, and explains it in the side panel, where you are. No second window, no copy-paste.

Realtime voice tutor 1 min 36 sec demo
The Annotated Transformer

Attention

Attention maps a query and key-value pairs to an output. The model compares the query with each key, then uses the resulting weights to average the values.

We call our particular attention Scaled Dot-Product Attention. Queries and keys have dimension dk; values have dimension dv.

MatMul Scale Mask SoftMax MatMul QKV

In implementation, the attention scores are produced by multiplying the query matrix by the transposed key matrix, scaling by sqrt(dk), and normalizing with softmax.

scores = torch.matmul(query, key.transpose(-2, -1))
scores = scores / math.sqrt(query.size(-1))
p_attn = scores.softmax(dim=-1)
return torch.matmul(p_attn, value)

Softmax turns the scaled scores into attention weights, so the final output is a weighted mixture of the value vectors.

Try the citations: each one jumps back to the highlighted page evidence.
The manicule, a small pointing hand in the margin, has meant "look here, this part matters" in books since the twelfth century. Onhand brings the gesture back, with the model holding the pen.
The pointing hand · a brief defense of marginalia
What it does

Four things, done in the margin.

Onhand stays out of the way until you ask. When you do, it does the four things a good study partner would do.

Points to the answer

Highlights the exact phrase or paragraph that answers your question, in gold, and scrolls the page to bring it into view. Block-level highlights for whole paragraphs, inline highlights for phrases.

background.js · highlight_text · scroll_to_annotation

Leaves a note in the margin

Drops a sentence or two next to your highlight, written in the article's own voice, so you can keep reading without losing your place.

show_note · pine-barred editorial callout

Replay artifacts

Every session is saved with its highlights, notes, transcript, and a snapshot of the page. Come back tomorrow to the exact state you left.

chrome.storage.local · sessions + screenshots

Voice tutor

Press Voice in the side panel and talk through a paper. The realtime model can see your highlights and the visible text.

gpt-realtime-2 · WebRTC · experimental
How it works

Three steps. No second window.

01 · OPEN

The page you're already reading.

Wikipedia, an arXiv paper, a Google Doc, a Substack. Anything Chromium can render. Onhand attaches to the active tab.

tab — active
arxiv.org/abs/1706.03762
Attention is all you need · pdf
02 · ASK

A question in the side panel.

Plain language. Onhand reads whatever it needs to ground the answer: the page, the selection, the visible headings.

side panel
Explain the scaled dot-product attention
and why we divide by √d_k.
03 · POINT

Onhand points at the answer.

Highlights the line, drops a margin note, answers in the side panel with citations back to the page. Then saves it all.

on the page
We call our particular attention "Scaled Dot-Product Attention"…
● ONHAND margin note added
Install

Onhand is on the Chrome Web Store.

Install the approved Chrome Web Store build in one click. The store is currently serving and updates through Chrome.

Chrome Web Store · live now

Add Onhand to Chrome.

The approved store build installs normally and updates through Chrome. Use the GitHub ZIP only if you prefer manual installs or need a specific release artifact.

Build from source instead
terminal · build the extension
# Clone and build
$ git clone https://github.com/Phineas1500/Onhand
$ cd Onhand
$ npm ci
$ npm run build:extension

# Verify the build
$ npm run smoke:browser-runtime
browser runtime ready · 

# For a real provider call
$ OPENAI_API_KEY= npm run smoke:browser-runtime -- --real-openai
  1. Open the Chrome Web Store listing and click Add to Chrome.
  2. Chrome is currently serving and will update Onhand automatically.
  3. Open the Onhand options page. Either sign in with OpenAI Codex (recommended), or paste an OpenAI API key.
  4. Pin the extension, open any page, and click the icon to launch the side panel. Press Cmd/Ctrl+K in the panel to focus the composer.
  5. Prefer a manual install? Download , unzip it, then load the folder from chrome://extensions with developer mode enabled.
  6. That's it . Highlight a passage, type a question, and let Onhand point.

Apache 2.0. Onhand is open source. Sessions stay on your machine in chrome.storage.local; provider keys never leave your device. Helium and other Chromium-based browsers that support chrome.debugger work too.

The runtime

Twenty-nine small tools that act on the page.

Each tool is a single, auditable operation against the active tab. Onhand composes them; you read the script in the side panel after every turn.

☞ Read the page
  • browser_extract_content
  • browser_get_visible_text
  • browser_get_selection
  • browser_get_viewport_headings
  • browser_get_scroll_state
  • browser_get_visible_region_image
  • browser_get_dom
✎ Annotate & navigate
  • browser_highlight_text
  • browser_show_note
  • browser_scroll_to_annotation
  • browser_clear_annotations
  • browser_list_tabs
  • browser_activate_tab
  • browser_navigate
  • browser_open_pdf_in_onhand_viewer
◔ Act & interact
  • browser_click
  • browser_type
  • browser_click_text
  • browser_type_by_label
  • browser_find_elements
  • browser_wait_for_selector
  • browser_pick_elements
⎘ Debug & capture
  • browser_capture_screenshot
  • browser_capture_state
  • browser_list_artifacts
  • browser_restore_state
  • browser_collect_console
  • browser_collect_network
  • browser_run_js
Read further

The thinking behind it.