# persian_tutor — Persian lessons via the glasses (SUPERSEDED)

> **Superseded 2026-06-22 by the `persian` agent.** See [[persian-overview]] — the shipped agent took a **web-first** shape (Flask + ElevenLabs at omidlab.net/persian) rather than the glasses-first design scoped below. Glasses integration is now a later milestone on the new agent's roadmap (TODO #5).
>
> Kept as design-history. Don't act on this slice — `vault/fleet/agents/persian/` is canonical.

---

## Original design (PLANNED state, 2026-06-21)

## What this agent would do

An automatic Persian-language tutor that pairs with [glasses](../glasses/) for hands-free lessons:

- **Display**: pushes Persian text + transliteration + English gloss to the glasses HUD (via the existing glasses chat/feed pattern — see [[glasses-overview]]).
- **Voice out**: TTS for the Persian sentences (via `/api/tts` already on serve.py, with a Persian-capable voice — need to verify the current TTS engine supports Farsi or swap in one that does).
- **Voice in**: Cameron speaks Persian → glasses mic → Whisper transcribes (Whisper handles Farsi reasonably well) → persian_tutor scores pronunciation/correctness, gives feedback.
- **Lesson structure**: stretch / target / drill / quiz, configurable. Spaced repetition for vocabulary. Cameron sets pace.

This is **planned, not started.** Capture spec, build post-migration.

## Why it's gated on the VPS migration

Same as the [finance](../finance/) agent: cleaner host, less chat-scrollback noise, and we want to land the new fleet layout before adding more agents to the inventory.

Also: the glasses-agent contract is still being firmed up (chat_log.md feed, TTS on the Chat feed but not the Agents tab — see [[voice-interface-overview]]). Persian tutor would consume that same feed pattern. Worth letting glasses settle 1 more cycle before adding a second high-volume consumer.

## Likely architecture (sketch)

```
persian_tutor (tmux window, claude agent)
   ↓ writes lesson lines to /data/cameron/agents_stuff/agents/persian_tutor/feed.md
   ↓     (format: persian | transliteration | english | optional audio_url)
   ↓
glasses Chat feed (or its own dedicated feed channel) tails feed.md
   ↓ renders persian + gloss on HUD, hits /api/tts for audio
   ↓
Cameron speaks back into the glasses mic
   ↓ Whisper → transcript posted to persian_tutor's tmux pane
   ↓
persian_tutor scores + responds, writes next lesson line
```

## Open questions for Cameron (after migration)

- **Persian level**: complete beginner, conversational, reading-focused, all of the above?
- **Script**: Arabic-script Persian (default), Finglish (Latin transliteration), or both side-by-side on the HUD?
- **Cadence**: scheduled (every morning 8am), on-demand, or continuous "drip" through the day?
- **TTS voice**: the existing serve.py `/api/tts` engine — does it speak Farsi acceptably? Most likely we'd swap to a Persian-trained voice (Azure / ElevenLabs has Farsi voices; OpenAI's `tts-1` claims multilingual). Worth a quick voice test.
- **Whisper for Farsi**: `faster_whisper` "small" (what serve.py uses now) handles Farsi but accuracy improves a lot on "medium" / "large-v3". Worth a 1-time benchmark with Cameron's voice.
- **Content source**: hand-curated lessons, a course (Pimsleur-style), or LLM-generated drills tied to Cameron's interests (robotics, family, restaurants)?

## What I'd want NOT to build

- A "speak-along-with-me" karaoke mode. The G2's display is too small to render scrolling lyrics gracefully.
- An app that takes over the glasses' main interaction loop. Cameron has agents work to do; the tutor should be opt-in/burst, not always-on.

## When to actually build this

After: (1) VPS migration verified, (2) glasses chat/feed pattern stable for a few days, (3) Cameron answers the open questions above.
