Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,20 @@ _proving_ the taming works.

## Demo

Select text on any page, click the floating **文**, and the
Select a sentence on any page, click the floating **文**, and the
Traditional-Chinese translation streams in. Recorded live on the
[Wikipedia article for LLMs](https://en.wikipedia.org/wiki/Large_language_model)
against a local `qwen3` via Ollama — end-to-end and unedited (played at 1.5×):
against a local `qwen3` via Ollama — end-to-end, unedited, real time:

![OpenRead selecting text on Wikipedia and streaming a Traditional-Chinese translation from a local model](docs/screenshots/demo.gif)

The same selection UI works on developer docs and on PDFs — local or remote —
through a bundled PDF.js viewer (below: MDN, and a real arXiv paper):
The same selection UI works on developer docs (dark pages included) and on
PDFs — local or remote — through a bundled PDF.js viewer (below: MDN, and the
Bitcoin whitepaper as a real-world PDF):

| Developer docs (MDN) | Research PDF (arXiv) |
| Developer docs (MDN) | Research PDF (PDF.js viewer) |
| --- | --- |
| ![Translating MDN docs](docs/screenshots/demo-mdn.png) | ![Translating an arXiv PDF](docs/screenshots/demo-arxiv-pdf.png) |
| ![Translating MDN docs](docs/screenshots/demo-mdn.png) | ![Translating the Bitcoin whitepaper PDF](docs/screenshots/demo-pdf.png) |

Everything is configured in a small popup — a local Ollama server URL, a model,
and a target language. No account, no API key:
Expand All @@ -37,10 +38,9 @@ and a target language. No account, no API key:
<img src="docs/screenshots/popup.png" alt="Popup settings" width="300" />
</p>

> All demos are real end-to-end runs against local models via Ollama (GIF:
> `qwen3`; stills: `llama3.1`) — captured by the browser E2E harness, not
> mock-ups. A ready-to-submit Chrome Web Store kit lives in
> [`docs/store/`](docs/store/SUBMISSION.md).
> All demos are real end-to-end runs against a local `qwen3` via Ollama —
> captured by the browser E2E harness, not mock-ups. A ready-to-submit Chrome
> Web Store kit lives in [`docs/store/`](docs/store/SUBMISSION.md).

## Why this exists

Expand Down Expand Up @@ -151,7 +151,7 @@ protocol-handler URL fall back to the clipboard.

| Translate + one-tap capture on any page | …lands as a note in your Obsidian vault |
| :---: | :---: |
| ![Inline translation and the save-to-Obsidian button on MDN](docs/screenshots/capture-saved.png) | ![The captured note in Obsidian, its frontmatter rendered as Properties](docs/screenshots/capture-obsidian.png) |
| ![Inline translation, the save-to-Obsidian button, and the saved toast on Wikipedia](docs/screenshots/capture-saved.png) | ![The captured note in Obsidian, its frontmatter rendered as Properties](docs/screenshots/capture-obsidian.png) |

<sub>And the exact Markdown OpenRead writes — the frontmatter is the `status: raw` handoff contract:</sub>

Expand Down
14 changes: 8 additions & 6 deletions docs/REBUILD-PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ eval/
- [x] Demo GIF — real E2E capture (live qwen3 via Ollama), `docs/screenshots/demo.gif`
- [x] CHANGELOG + semver, MIT LICENSE, CONTRIBUTING, issue + PR templates
- [x] GitHub Actions CI (`.github/workflows/ci.yml`: compile + test + lint + build)
- [x] Chrome Web Store submission kit — `docs/store/` (listing copy, 1280×800 screenshots, guide) + `PRIVACY.md`; only the $5 dev account + upload remain manual
- [x] Chrome Web Store submission kit — `docs/store/` (listing copy, 1280×800 screenshots, guide) + `PRIVACY.md`; publishing itself deliberately skipped (see below)

## Bugs found in v1 (fix + cite as "what I improved")

Expand Down Expand Up @@ -161,9 +161,11 @@ eval/
由 42.9% 提升到 71.4% 可用率;schema 約束解碼把最差模型從 93.3% 提到 100%;
並保留誠實的負面結果(現代小模型 prompt-only 即 ~100% 輸出乾淨 JSON)。

## Remaining manual steps (not code)
## Chrome Web Store — intentionally not published

- Chrome Web Store: create the $5 developer account and upload
`.output/openread-<version>-chrome.zip` following
[`docs/store/SUBMISSION.md`](store/SUBMISSION.md); after approval, add the
store link to the README and the resume bullets.
Decision (2026-07-10): skip the Web Store submission — the $5 developer fee
buys nothing for a portfolio (the repo, demo GIF, and install-from-source
instructions carry the story). The complete submission kit is archived in
[`docs/store/`](store/SUBMISSION.md) (listing copy, screenshots, privacy
answers, step-by-step guide); if publishing ever becomes worthwhile, it is a
20-minute task.
Binary file modified docs/screenshots/capture-saved.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/screenshots/demo-arxiv-pdf.png
Binary file not shown.
Binary file modified docs/screenshots/demo-mdn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/screenshots/demo-pdf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/screenshots/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/screenshots/popup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading