Skip to content
singhayush1403Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

Repository files navigation

Screeny

An Expo React Native implementation of the Screeny design review PDF. The app targets iOS and Android, uses React Native New Architecture, and is ready for a custom Expo development build.

Run

npm install
npm run start
npx expo run:ios
npx expo run:android

react-native-executorch is a native module, so the on-device AI path requires a custom development build rather than Expo Go. Web is useful for design-only work, but the full model/photo-library pipeline is iOS/Android.

AI Runtime Plan

Screeny keeps screenshots on device and uses two local models:

  • Vision-language model: LFM2_5_VL_450M_QUANTIZED
  • Embedding model: MULTI_QA_MINILM_L6_COS_V1
  • Why: the VLM inspects screenshot pixels and writes structured local analysis. MiniLM embeds that analysis text and user queries so search can use cosine similarity instead of relying only on literal keyword matching.

End-to-End Pipeline

  • Model loading: src/ai/useScreenyExecutorch.ts initializes ExecuTorch with the Expo resource fetcher and loads LFM2_5_VL_450M_QUANTIZED plus MULTI_QA_MINILM_L6_COS_V1. The scan screen reflects combined native download progress.
  • Screenshot reading: src/media/screenshotReader.ts requests photo access, reads the Screenshots album when available, falls back to screenshot-like image assets, and hydrates each asset with a local URI.
  • Share-to-app: expo-share-intent registers Screeny for image/* on iOS and Android. Shared images are copied into app document storage, analyzed, embedded, saved to SQLite, and opened on the screenshot detail screen.
  • Analysis: src/ai/useScreenyEngine.ts sends each screenshot to the VLM with a strict JSON prompt from src/ai/screenyPrompts.ts, then embeds the combined title, OCR-like text, tags, fields, and rationale.
  • Scan optimization: photo hydration is bounded-parallel, existing screenshot checks are batched, VLM analysis stays single-file for device stability, embeddings run through a small concurrent queue, and SQLite writes are flushed in batches.
  • Storage: src/data/screenyRepository.ts stores screenshot analysis, extracted fields, tags, rationale, smart folder stats, embedding vectors, and an FTS5 search index in local SQLite.
  • Search: query text is embedded with MiniLM and matched by cosine similarity against stored vectors while FTS/LIKE runs in parallel for exact-match help. Results are merged, deduped, and the VLM can still rerank top candidates with visible match rationales.

The UI still shows design-review mock cards when no local scan data exists.

Share Extension Notes

After adding or changing share intent support, rebuild native projects:

npx expo prebuild --clean
npx expo run:ios
npx expo run:android

The app cannot receive shared images in Expo Go.

References Checked

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages