All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Nutrition facts, description, and servings fields in recipe output
EnvMaptype exported from terminal utils for shared useAppPropsinterface exported for shared use by CLI runtimebuildOccurrenceKeysutility for generating display occurrence keys- PTY smoke test for CLI (
cli-runtimetests) - CLI runtime lifecycle tests
- Unit tests for display quit shortcut helper
- Terminal capability coverage tests
RecipeCardlayout now mirrors web layout: title-first header, nutrition sidebar, times shown as numbers- Prep/cook/total times now displayed as plain numbers (minutes) instead of formatted strings
- AI prompt rewritten for the new
Recipedata shape - Consolidated redundant
qandescquit hints inRecipeCard - Consolidated redundant
qandescquit hints inFooter - Scraping test expectations updated for new
Recipedata shape display quit shortcuthelper used app-wide instead of inline logic- Use shared CLI runtime entrypoint across test and app entry
- Light mode text visibility in URL input
- Quit shortcut copy consistency across
RecipeCardandFooter
- Browser fingerprint updated for scraper evasion
- Centralized
AppPhasetype shared across all components buildOccurrenceKeysutility for consistent key generation- Terminal art reference files for branding consistency
- Version read dynamically from
package.jsonat runtime
- Unused
ScrapingStatusandWelcomecomponents removed - Package contents on npm restricted to only necessary files (
dist,public,README.md,LICENSE)
- Browser fingerprint updated to improve scraper reliability
- App-wide theme toggle (dark/light) accessible via
Ctrl+T - Display palette reset support
- Expanded terminal compatibility test matrix
- Display palette enabled for Apple Terminal
- Documentation for terminal themes and compatibility
- Recipe text sanitized for terminal output (handling special characters, box-drawing chars)
Ctrl+Ttheme toggle now works correctly inside text input- Input flow and startup resilience improved
- Browser and AI scraping fallback logic improved
- Invalid recipe URL handling
- Scrollable compact recipe view for constrained terminal heights
- Text wrapping utility with indentation support
- Exit shortcut hint on landing screen
- Footer label for escape key updated to indicate "back" navigation
Ctrl+Tkeyboard shortcut documentation- Unit tests for text wrapping utility
- Complete redesign of the parsely terminal experience
- Full-screen terminal app shell
- Scraping progress reported during the scraping phase
- Footer status text shortened for narrow terminals
- Minimal welcome copy for short terminals
- Banner made compact on small viewports
- Tighter panel vertical padding
- Input conflicts on short/constrained terminals
- Layout collapse on narrow viewports
- URL submission on paste + Enter (reliable submission)
Ctrl+Cnow properly delegates to app exit handler- Active scrapes aborted on exit
- Full-screen redraws avoided in ink
- Ghostty terminal update synchronization
- Browser recipe extraction hardened
- Interactive TUI built with Ink (React for terminals)
- Full-screen terminal UI with scrolling recipe display
- Scraping progress indicator
- Alternate screen management in CLI entrypoint
PARSELY_SYNC_OUTPUTandPARSELY_THEMEenvironment variables- README updated for npm users with publishing config
- CLI completely rewritten from Python/Pyppeteer to TypeScript/Ink/React
- URL normalization helpers extracted for reuse
- Viewport hook changed to resize-only behavior
- Input conflicts on short terminals
- Reliable URL submission on paste + Enter
- Pyppeteer dependency (replaced by
puppeteer-core)
- Initial
parsely-clirelease: recipe scraper with Puppeteer and OpenAI fallback - Browser-based recipe extraction with fingerprint evasion
- OpenAI-powered recipe parsing as fallback for sites without structured data
OPENAI_API_KEYenvironment variable configuration- Project documentation with usage examples