{"id":50388971,"url":"https://github.com/ospoon/trayocr","last_synced_at":"2026-06-02T03:04:15.162Z","repository":{"id":361213323,"uuid":"1253227703","full_name":"OSpoon/TrayOCR","owner":"OSpoon","description":"TrayOCR is a lightweight and blazing-fast desktop utility that lives in your macOS menu bar. Press a custom hotkey to select a screen area, extract text instantly, and automatically copy it to your clipboard.","archived":false,"fork":false,"pushed_at":"2026-05-30T15:39:11.000Z","size":7105,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T17:23:49.366Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OSpoon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-29T09:03:49.000Z","updated_at":"2026-05-30T15:39:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/OSpoon/TrayOCR","commit_stats":null,"previous_names":["ospoon/trayocr"],"tags_count":13,"template":false,"template_full_name":"OSpoon/starter-tauri-app","purl":"pkg:github/OSpoon/TrayOCR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2FTrayOCR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2FTrayOCR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2FTrayOCR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2FTrayOCR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OSpoon","download_url":"https://codeload.github.com/OSpoon/TrayOCR/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2FTrayOCR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33803742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-30T17:00:36.991Z","updated_at":"2026-06-02T03:04:15.150Z","avatar_url":"https://github.com/OSpoon.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TrayOCR\n\n\u003e A minimalist, menu-bar-based screenshot OCR utility for macOS and Windows. Powered by Tauri 2, Vue 3, and native system OCR.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"src-tauri/icons/128x128.png\" width=\"128\" height=\"128\" alt=\"TrayOCR Logo\" /\u003e\n\u003c/p\u003e\n\nTrayOCR is a lightweight and blazing-fast desktop utility that lives in your system tray or macOS menu bar. Press a custom hotkey to select a screen area, extract text instantly, and automatically copy it to your clipboard.\n\n---\n\n## 🌟 Key Features\n\n- **Menu-Bar / Tray POP UI**: Designed to stay out of your way. Clicking the tray icon opens a sleek popover window; the app runs in agent mode without taking space in your Dock.\n- **Native System OCR**: Uses Apple's Vision framework on macOS and Windows.Media.Ocr on Windows.\n- **Flexible Global Shortcuts**: Set your own hotkeys (e.g. `⌘⌥X` or `⌥A`) in the UI to trigger screen area capture globally.\n- **Click-to-Copy History**: Stores up to 200 historical OCR scans locally with timestamp logs. Just click any card to copy the text to your clipboard.\n- **Launch at Login \u0026 Window Pinning**: Toggle the app to launch automatically when you sign in, and pin the window to stay \"Always on Top\" when needed.\n- **Harmonious Dark \u0026 Light Mode**: Automatically matches your system preferences or lets you lock it to Dark/Light mode. Styled with modern typography and sleek glassmorphism themes.\n- **Safe OTA Updates**: Fully integrated with Tauri's secure signed auto-updater to notify you and install updates smoothly.\n\n---\n\n## 🛠 Tech Stack\n\n- **Frontend**: [Vue 3](https://vuejs.org/) + [TypeScript](https://www.typescriptlang.org/) + [Vite 6](https://vite.dev/)\n- **Styling \u0026 UI**: [Tailwind CSS v4](https://tailwindcss.com/) + [shadcn-vue](https://shadcn-vue.com/) (using native `Dialog`, `Button`, `Sonner` toasts, and `Progress` components)\n- **Backend (Core)**: [Tauri v2](https://tauri.app/) (Rust-based system bridging)\n- **OCR Engine**: macOS native `Vision` framework bindings and Windows native `Windows.Media.Ocr`.\n- **Linting \u0026 Formatting**: [ESLint](https://eslint.org/) + [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks) + [lint-staged](https://github.com/lint-staged/lint-staged)\n\n---\n\n## 🚀 Getting Started\n\n### Installation\n1. Go to the [Releases](https://github.com/OSpoon/tray-ocr-app/releases) page.\n2. Download the installer for your system:\n   - **`TrayOCR_x.x.x_aarch64.dmg`** for Apple Silicon Macs (M1, M2, M3, M4, etc.)\n   - **`TrayOCR_x.x.x_x64.dmg`** for Intel Macs\n   - **`TrayOCR_x.x.x_x64-setup.exe`** for Windows\n3. On macOS, drag the app into your `Applications` folder. On Windows, run the installer and launch TrayOCR from the Start menu.\n\n\u003e [!WARNING]\n\u003e **Screen Recording Permission required on macOS**: Since TrayOCR uses the native screen capture tool (`screencapture -i`) to let you draw a box over target screen contents, macOS will request **Screen Recording** permission the first time you initiate a scan. Please go to **System Settings -\u003e Privacy \u0026 Security -\u003e Screen \u0026 System Audio Recording** and toggle **TrayOCR** to **ON** to ensure screenshots capture successfully.\n\n## 💻 Local Development\n\n### 1) Prerequisites\nEnsure you have Rust, Node.js (v18+), and `pnpm` installed on your macOS machine. Refer to the [Tauri setup guide](https://tauri.app/v2/start/prerequisites/) if needed.\n\n### 2) Install Dependencies\n```bash\npnpm install\n```\n\n### 3) Run Dev Server\n```bash\npnpm tauri dev\n```\n\n### 4) Production Build\nCompile optimized production bundles:\n```bash\npnpm tauri build\n```\nThis runs type-checking (`vue-tsc`), packages assets with Vite, and cross-compiles targets using Cargo.\n\n---\n\n## 🔄 Release \u0026 Auto-Update Configuration\n\nTrayOCR comes with a preconfigured GitHub Action release pipeline (`.github/workflows/release.yaml`) that builds signed, production-ready installers for Apple Silicon macOS, Intel macOS, and Windows.\n\n### 1) Generate Updater Keys (Required once)\nTauri requires signing key pairs to authenticate update payloads:\n```bash\npnpm tauri signer generate -w ./.tauri/updater.key\n```\nThis creates:\n- **Private Key**: `.tauri/updater.key` (⚠️ **Never commit this to git**)\n- **Public Key**: `.tauri/updater.key.pub` (Safe to share)\n\n### 2) Save Public Key\nCopy the string contents of `.tauri/updater.key.pub` and write it to the `plugins.updater.pubkey` field in [tauri.conf.json](file:///Users/osp/Documents/GitHub/TrayOCR/src-tauri/tauri.conf.json).\n\n### 3) Set Up GitHub Secrets\nIn your GitHub repository, go to `Settings -\u003e Secrets and variables -\u003e Actions` and add:\n- `TAURI_SIGNING_PRIVATE_KEY` (Paste the contents of `.tauri/updater.key`)\n- `TAURI_SIGNING_PRIVATE_KEY_PASSWORD` (If you configured a password when generating the key; otherwise leave empty/create empty)\n\nUnder `Settings -\u003e Actions -\u003e General -\u003e Workflow permissions`, set permissions to **Read and write permissions** to allow workflow jobs to create releases.\n\n### 4) Release Version Bump\nTo release a new version, run:\n```bash\npnpm release\n```\nThis triggers `bumpp` to bump version logs across `package.json`, `Cargo.toml`, and `tauri.conf.json`, commits files, creates a version Tag (`vX.Y.Z`), and pushes to GitHub. The workflow will catch the tag, build Apple Silicon (`aarch64-apple-darwin`), Intel macOS (`x86_64-apple-darwin`), and Windows (`x86_64-pc-windows-msvc`) packages, and publish updates automatically.\n\n---\n\n## 📄 License\nLicensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fospoon%2Ftrayocr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fospoon%2Ftrayocr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fospoon%2Ftrayocr/lists"}