star features not yet planned
textweaver grew from star (its repository), the Python reader that came before it, and is now its own project. This page tracks the features star had, and what is left of them in textweaver, for anyone who used star or looks for a feature they remember. Priorities favor students with print disabilities, star's original audience.
Each item has a status:
- done: textweaver does it.
- partly: some of it is done; the note says what is missing.
- missing: not done yet. See the roadmap for what is planned next.
- dropped: out of scope on purpose.
This page is kept current as features land; see CHANGELOG.md for when each one shipped.
Reading aids
star's reading aids are described in its "Accessibility and WCAG reading aids" notes; reading-aids.md is textweaver's user guide to the same features.
- RSVP. Shows one word at a time, at nine screen positions, with the words before and after. Status: done.
- Reading ruler. A band that follows the cursor line. Status: done.
- Text spacing (WCAG 1.4.12): line height and letter and word spacing. Status: done. The terminal reader approximates it with blank lines and spaces.
- Bionic reading: word starts in bold. Status: done.
- Syllable splitting:
read·a·bil·i·ty, shown only, by rule rather than dictionary. Status: done, in the terminal reader (Alt+Shift+Z) and drawn in the app. - Current-line highlight. Status: done.
- Reading fonts: OpenDyslexic, Atkinson Hyperlegible, and Lexend. Status: done. OpenDyslexic and Atkinson Hyperlegible Next and Mono are bundled, used for PDF and EPUB output, and loaded directly for the app, where a font-choice key cycles them. Lexend is downloaded the first time it is chosen, as in star, but only after asking with its size and license, and each file is checked by its SHA-256 before it is kept in the data folder; the app, PDF, and EPUB then use it (see Reading aids).
Formats and documents
- DAISY 3 / DTBook (the Bookshare format), including DAISY zips, and DAISY 2.02 books. Status: done, in spine order with NCX navigation. A book's recorded narration plays as you read (Talking books).
- Braille files (BRF, BRL), such as NLS BARD's braille downloads. Status: done, read as print through liblouis (Braille files).
- Org, reStructuredText, MediaWiki, DokuWiki, and Jira markup. Status: done, read and written natively by carta (Converting documents).
- OCR of images and scanned PDF pages. Status: done: a pure-Rust engine runs in process by default (models are downloaded once with
tw ocr download, checked by SHA-256), with a Tesseract subprocess as a fallback for other languages (ADR-0026). Scans made sideways or upside down are turned upright before they are read, and scanned tables whose rows and columns line up are read as tables (ADR-0048). - Better PDF reading order: removing running headers, footers, and page numbers, and marking captions. Status: done. Captions are marked by pattern ("Figure 3.", "Table 2:"), in English, Spanish, French, German, Portuguese, and Arabic (ADR-0010, ADR-0048).
- Archives: ZIP and TAR, with 7z. Opening one lists its readable files, and
book.zip!inner.pdfopens a file inside. Status: done. RAR is not planned. - Opening a web page by URL. Status: done.
- PPTX: slide titles become headings, speaker notes follow each slide, and images get descriptions. Status: done.
- Offline dictionary: WordNet definitions, synonyms, and pronunciation, plus a custom glossary. Status: done: your glossary, then Open English WordNet through morphy, with CMUdict pronunciations respelled for reading aloud, all offline (Ctrl+Shift+D or Alt+E, and
tw define; see reading.md). - Spell check in edit mode. Status: done, on the built-in SCOWL list with a personal word list: next and previous misspelling, spelled aloud, suggestions, and a count on save. See editing.md.
- Accessible publishing templates:
- Large Print, Dyslexia-friendly, High Contrast, and academic-manuscript stylesheets;
- Word templates for APA student papers and AMA manuscripts;
- an EPUB cover and a table-of-contents depth setting;
- single-file HTML.
- Status: partly. The table-of-contents depth setting is for PDF only; EPUB lists every heading level.
tw convertwrites single-file accessible HTML (following the system's dark, light, and high-contrast settings), large-print PDF, PDF in OpenDyslexic, and a PDF table of contents with a depth option, plus APA, AMA, large-print, dyslexia-friendly, high-contrast, and manuscript templates for EPUB, Word, and PDF, with an EPUB cover. The reader exports the open document to HTML, PDF, Word, EPUB, and braille from the command palette, previews it in the browser, and starts a new document from a template with front matter and a References heading. - Contents and Notes panels in the app. Status: done. The app shows the headings (Ctrl+1) or the notes (Ctrl+2) in a panel beside the document, from the same lists as the outline (Alt+O) and the notes list; Enter goes to a row, F6 moves between the panel and the document, and the panel never takes the focus unasked (see The Contents and Notes panels). The terminal reader lists notes (Shift+A) and the headings with type-to-filter (the outline, Alt+O).
- Math as Unicode in the plain reading view (
x²,√2). Status: done ([reading] math_display = "unicode"); the LaTeX source is also available, spoken as English, and HTML output carries MathML.
Medium priority
- Formats: spreadsheets (XLSX, CSV, and TSV, as tables) are done. Jupyter notebooks open natively, cell by cell (ADR-0044). Source code as a structured document is not planned; it still opens as plain text.
- Summarize: extractive, with LexRank, no downloaded model. Status: done (
tw summarize, and Summarize in the command palette; ADR-0037). - Translate a document. Status: dropped; not in the 0.1 series.
- Difficult-word overlay, by word frequency. Status: done, in the terminal reader (Alt+Shift+J) and drawn in the app, on SCOWL's word levels.
- Reading statistics: time read, progress, and sessions. Status: done: time read aloud, the furthest point, and sessions per document, with a most-read list (Ctrl+Shift+Y or Alt+Y),
tw stats, an opt-out, and star's statistics imported (reading.md). - Settings profiles: named sets of voice, theme, and spacing settings, with import and export. Status: done: named profiles of voice, rate, theme, font, spacing, highlight, and access mode, switched, saved, renamed, deleted, imported, and exported in the reader (Ctrl+Shift+U or Alt+U) and with
tw settings profile(settings.md).tw migrate-starimports star's profiles (library.md). - Piper neural voices, with a catalog of voices to download, and a voice manager that lists, previews, and marks favorites. Status: done for voices: Piper voices run in process on a pure-Rust ONNX runtime, with word timing read from the model (ADR-0023); Choose voice (Alt+V) lists them, speaks a sample, and marks favorites, which are listed first. The voice manager covers every engine in both readers, and previews a voice without choosing it (the Say Status key, or the app's Preview button); in the app it is a dialog with filter and action buttons (The textweaver app).
- Interface translations: Spanish, French, German, Portuguese, and Arabic, with right-to-left layout. Status: done (ADR-0030):
[interface] languagespeaks and shows textweaver's own words, lists, help, keyboard shortcuts, the command palette, and the settings screen in all six languages, the voice follows the language when the engine has one, and right-to-left text is reordered for display where the terminal does not do it itself. - Clipboard copy, including the terminal escape code that works over SSH. Status: done. Ctrl+C copies the selection, or the sentence at the cursor, through the terminal's OSC 52 code, which works over SSH; edit mode also has cut, paste, and select all. A native clipboard fallback (
arboard) covers terminals without OSC 52 (the old Windows console, macOS Terminal, GNOME Terminal and other VTE terminals), announced the first time it is used; SSH and tmux still use the terminal's own code. - Dependency report (
--deps) and a crash log. Status: done.scripts/doctor.shandscripts\doctor.ps1print a system report, and textweaver writes a rotating log file (troubleshooting.md). - Document metadata: edit it per document, and search the library by it. Status: done. The library list's filter and
tw library searchmatch title, path, author, DOI, ISBN, and text, from the document's own metadata, its text, andtw cite's record (library.md). Edit details (the File menu, or F2 in the library list) andtw library editset a document's title, author, DOI, and ISBN by hand, and what you type wins over the document's own (library.md). - Notes export as BibTeX, RIS, JSON, or plain text. Status: done.
tw marks FILE --to FORMATwrites BibTeX, BibLaTeX, RIS, or CSL-JSON records for Zotero or Pandoc. Notes and highlights also export to an Obsidian vault as Markdown (vault.md), and as a Markdown study sheet grouped by the document's headings (notes.md). Plain-text export is not a separate format; CSL-JSON or the study sheet cover that need. - Study tools: cards from highlights, a spaced-repetition scheduler (FSRS) and review screen, AnkiConnect sync, and
.apkgexport. Status: partly. Cards are made from highlights (cloze), notes (question and answer), and headings (recall), and studied in a session that reveals each answer and takes a grade in words; an SM-2 scheduler brings each card back when due, andtw study duecounts the cards due (Study with cards). Anki.apkgexport and import carry the cards and their grades both ways (Take cards to Anki and back); FSRS and AnkiConnect sync are dropped. There is also a self-test and optional recall prompts at section ends.
Peripheral
- Knowledge graph and concept extraction. Typed links between notes; exports to SVG, DOT, PlantUML, and JSON. Status: partly. Typed links between notes are added, changed, removed, filtered by type, and followed from the notes list, with "What links here" across the library and
tw notes links(notes guide); vault import and export keep them. The whole graph exports as a Markdown list, JSON, DOT, GraphML, Mermaid, PlantUML, or a CSV edge list (Export the knowledge graph); textweaver never draws it, and SVG is not written. Concept extraction is dropped. - Karaoke video export. Status: dropped.
- Feeds, Wikipedia, and PubMed quick open. Status: dropped.
- More engines: Coqui, Festival, Qt speech, and cloud voices. Status: dropped. speech-dispatcher, which can drive Festival, and DECtalk were added instead.
- SSML pauses. Status: partly. Reading leaves a short silence after each heading, paragraph, and list item, which you can set (Pauses at headings, paragraphs and list items); pauses written as markup in the text itself are dropped.
- Audio export to OGG and AAC, and an M4B cover image. Status: partly. M4B audiobooks are AAC, and Ogg Opus and Ogg Vorbis files are written (audio-export.md); a separate AAC file and the cover image are dropped.
- Infrastructure:
- plugins. Status: dropped.
- an update checker. Status: done. Help, Check for updates and
tw updatecheck and install, asking first, and the update scripts still work (Updates). - a guided tour and a welcome page. Status: partly. The quick start opens as a document, from Help, Quick start; a tour is dropped.
- a key-code inspector. Status: partly. Help, "What does this key do?" (Shift+F1) names a command key and its menu place without running it; raw key codes are not shown.
- line numbers and syntax highlighting in the terminal. Status: done. Line numbers (F6), and code blocks highlighted with syntect and bat's syntaxes, in colors from the theme and never color alone.
- auto-play when a document opens. Status: done (
[speech] auto_play). - tapping Ctrl alone to pause. Status: dropped; a terminal cannot see a key being let go.
See also
- Roadmap: what comes next, in order.
- Features page: what textweaver does today, with its status.
- Documentation index