Ink Air turns your AR glasses into a voice‑controlled e‑reader. Search among 75,000+ public‑domain books, download and read them out loud in your display, and control playback with simple phrases. You can even load your own .txt books — our chunking engine formats them for crisp, glanceable reading.
- Voice reading control: start, pause, resume, restart — all hands‑free.
- 75,000+ books: searches Project Gutenberg via the Gutendex API.
- Your own books: drop in a
.txtfile and start reading by forking this repo. - Smart session handling: if you close the Ink Air app on your phone, reading pauses; when you reopen, it resumes where you left off (Just say "hey sam resume")
In the Mentra mobile app, turn on the Ink Air app to connect your glasses to our server.
When the session connects, you’ll see a quick animation and a prompt. Say “hey sam …” followed by a command.
- “hey sam, find [title or author]”: Searches books. Example:
- “hey sam find pride and prejudice”
- “hey sam, get book [1-5]”: Downloads one of the shown results. Example:
- “hey sam get book 1”
- “hey sam, start reading”: Starts reading the loaded book from the beginning.
- “hey sam, pause” / “hey sam, stop”: Pauses reading immediately.
- “hey sam, resume” / “hey sam, continue”: Resumes from the current page.
- “hey sam, start over” / “hey sam, restart”: Jumps back to the beginning.
Notes:
- Searches use the public Gutendex API (Project Gutenberg). Most English books are available; language is currently optimized for English results.
- Results are limited to the top 5 to keep choices simple.
- Close Ink Air on your phone: reading pauses within a moment.
- Reopen Ink Air: if you were mid‑reading, it auto‑resumes on the same page.
You can load any plain‑text book. The chunker formats text into short, readable pages (about 3 lines × 5 words per line) with page numbers.
- Put your book’s text into a UTF‑8
.txtfile. - Replace the file at
src/Burning_Chrome.txtwith your file’s contents (keep the same filename). - Start the app and say: “hey sam, start reading”.
This uses your text as the default reading content.
If you’re customizing the app, you can programmatically load a string into the reader:
import { loadBookContent, startEReader } from './src/inkAirDisplay';
// After you obtain your text (e.g., from disk or network):
await loadBookContent(myPlainText);
await startEReader(session, 0, samAssistant);You can also drop .txt files into the downloads/ folder — useful for caching or quick access while developing.
- Catalog: Searches
https://gutendex.com(Project Gutenberg mirror) and downloads.txtwhen available. - Chunking: Text is split into small, high‑contrast pages for comfortable glance reading.
- State: The assistant tracks your current page, pausing timers and resuming correctly across disconnects.
# Type-check and build
bun run build
# Start built server
bun run start
# Dev mode (hot reload)
bun run dev- Public‑domain books from Project Gutenberg via Gutendex.
- Built on MentraOS with Bun.