{"id":50892890,"url":"https://github.com/jamesmontemagno/tiny-clips","last_synced_at":"2026-06-15T22:00:48.571Z","repository":{"id":338311778,"uuid":"1157453851","full_name":"jamesmontemagno/tiny-clips","owner":"jamesmontemagno","description":"A lightweight macOS menu bar app for capturing screenshots (PNG), video (MP4), and animated GIFs of a selected screen region.","archived":false,"fork":false,"pushed_at":"2026-06-14T16:45:28.000Z","size":6510,"stargazers_count":62,"open_issues_count":9,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-14T17:21:17.554Z","etag":null,"topics":["macos","swift","tiny-tools"],"latest_commit_sha":null,"homepage":"https://tinyclips.app","language":"Swift","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/jamesmontemagno.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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-02-13T20:51:27.000Z","updated_at":"2026-06-14T16:45:32.000Z","dependencies_parsed_at":"2026-02-19T02:01:35.210Z","dependency_job_id":null,"html_url":"https://github.com/jamesmontemagno/tiny-clips","commit_stats":null,"previous_names":["jamesmontemagno/tiny-clips-mac","jamesmontemagno/tiny-clips"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/jamesmontemagno/tiny-clips","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmontemagno%2Ftiny-clips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmontemagno%2Ftiny-clips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmontemagno%2Ftiny-clips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmontemagno%2Ftiny-clips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamesmontemagno","download_url":"https://codeload.github.com/jamesmontemagno/tiny-clips/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmontemagno%2Ftiny-clips/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34381762,"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-15T02:00:07.085Z","response_time":63,"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":["macos","swift","tiny-tools"],"created_at":"2026-06-15T22:00:28.948Z","updated_at":"2026-06-15T22:00:48.561Z","avatar_url":"https://github.com/jamesmontemagno.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tiny Clips\n\n[![Build](https://github.com/jamesmontemagno/tiny-clips/actions/workflows/build.yml/badge.svg)](https://github.com/jamesmontemagno/tiny-clips/actions/workflows/build.yml)\n[![Release](https://github.com/jamesmontemagno/tiny-clips/actions/workflows/release.yml/badge.svg)](https://github.com/jamesmontemagno/tiny-clips/actions/workflows/release.yml)\n[![GitHub release](https://img.shields.io/github/v/release/jamesmontemagno/tiny-clips?style=flat-square)](https://github.com/jamesmontemagno/tiny-clips/releases/latest)\n![macOS](https://img.shields.io/badge/macOS-15.0+-blue?style=flat-square\u0026logo=apple)\n![Windows](https://img.shields.io/badge/Windows-11-0078D6?style=flat-square\u0026logo=windows11)\n[![License: MIT](https://img.shields.io/github/license/jamesmontemagno/tiny-clips?style=flat-square)](LICENSE)\n\nA lightweight menu-bar (macOS) and system-tray (Windows) app for capturing screenshots (PNG),\nvideo (MP4), and animated GIFs of a selected screen region — on **macOS** and **Windows**.\n\n\n![tiny-clips-promo (1)](https://github.com/user-attachments/assets/0afc2c8a-a83b-4703-9873-b4fb0c315c06)\n\n\n## Features\n\n- **Screenshot** — Select a region, screen, or window and capture a PNG screenshot\n- **Video Recording** — Record to MP4 with hardware-accelerated H.264 encoding\n- **GIF Recording** — Record a screen region as an animated GIF\n- **Capture Picker** — Choose **Region**, **Screen**, or **Window** before any capture\n- **Editor \u0026 Trimmers** — Post-capture screenshot editor plus video and GIF trimmers\n- **Menu Bar / Tray App** — Lives in the macOS menu bar or Windows system tray with no Dock/taskbar icon\n- **Region Selection** — Drag to select any portion of any screen\n- **Global Hotkeys** — Quick capture from anywhere\n- **Configurable** — Save location, clipboard, reveal-in-Finder/Explorer, GIF quality, trimmer toggles, and more\n\n\u003e macOS uses Sparkle for auto-updates; Windows distributes via **winget** (`winget upgrade`) and the Microsoft Store.\n\n## macOS\n\n### Requirements\n\n- macOS 15.0 (Sequoia) or later\n- Xcode 16.0 or later (to build from source)\n\n### Installation\n\n**Homebrew**\n\n```bash\nbrew tap jamesmontemagno/tiny-clips\nbrew install --cask tiny-clips\n```\n\n**Download**\n\nDownload the latest release from the [Releases](https://github.com/jamesmontemagno/tiny-clips/releases) page.\n\n**Build from Source**\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/jamesmontemagno/tiny-clips.git\n   cd tiny-clips\n   ```\n2. Open in Xcode:\n   ```bash\n   open mac/TinyClips.xcodeproj\n   ```\n3. Add the Sparkle package dependency (see [Sparkle Setup](#sparkle-setup))\n4. Build and run (⌘R)\n\n### Permissions\n\nTinyClips requires **Screen Recording** permission. On first launch, macOS will prompt you to grant access. After granting, restart the app.\n\n### Keyboard Shortcuts\n\n| Action | Shortcut |\n|--------|----------|\n| Screenshot | ⌃⌥⌘5 |\n| Record Video | ⌃⌥⌘6 |\n| Record GIF | ⌃⌥⌘7 |\n| Picker: Region / Screen / Window | R / S / W |\n| Picker: Cancel | Esc |\n| Stop Recording | ⌘. |\n| Settings | ⌘, |\n\n## Windows\n\nA native **WinUI 3 / Windows App SDK** port lives under [`/windows`](windows/README.md).\n\n### Requirements\n\n- Windows 11 **22H2 (build 22621)** or later\n- [.NET 10 SDK](https://dotnet.microsoft.com/) and Windows SDK `10.0.26100` (to build from source)\n\n### Installation\n\n**winget**\n\n```powershell\nwinget install Refractored.TinyClips\n```\n\nUpdates ship through `winget upgrade`. A Microsoft Store listing (with optional Pro add-ons) is planned.\n\n**Build from Source**\n\nWinUI 3 requires an explicit platform (`x64` or `ARM64`; `AnyCPU` is not supported).\n\n```powershell\ndotnet restore windows/TinyClips.Windows.slnx\ndotnet run --project windows/src/TinyClips.App/TinyClips.App.csproj -c Debug -p:Platform=x64\n```\n\nSee the [Windows README](windows/README.md) for full build, layout, and CI details.\n\n### Keyboard Shortcuts\n\n| Action | Shortcut |\n|--------|----------|\n| Screenshot | Ctrl+Shift+5 |\n| Record Video | Ctrl+Shift+6 |\n| Record GIF | Ctrl+Shift+7 |\n| Picker: Region / Screen / Window | R / S / W |\n| Picker: Cancel | Esc |\n| Stop Recording | Ctrl+Shift+S |\n\n## Usage\n\n1. Click the Tiny Clips icon in the menu bar (macOS) or system tray (Windows)\n2. Choose **Screenshot**, **Record Video**, or **Record GIF**\n3. Choose **Region**, **Screen**, or **Window** in the capture picker (with an optional countdown)\n4. For region recordings, confirm audio/mic options in the floating **Record** panel\n5. Click the floating **Stop** button when done (or use the stop shortcut)\n\n## Settings\n\n| Option | Description |\n|--------|-------------|\n| Save Directory | Where captures are saved (default: Pictures/TinyClips) |\n| Copy to Clipboard | Auto-copy captures to clipboard |\n| Reveal in Finder / Explorer | Reveal the saved file after capture |\n| GIF Frame Rate | 5–30 fps (default: 10) |\n| GIF Max Width | 320–1920 px (default: 640) |\n| Video Frame Rate | 24, 30, or 60 fps |\n| Open Trimmer | Show trim editor after recording |\n\n## Sparkle Setup (macOS)\n\nSparkle must be added manually via Xcode:\n\n1. Open `mac/TinyClips.xcodeproj` in Xcode\n2. Go to **File → Add Package Dependencies...**\n3. Enter URL: `https://github.com/sparkle-project/Sparkle`\n4. Select version rule: **Up to Next Major Version** from `2.8.1`\n5. Add the `Sparkle` framework to the `TinyClips` target\n\nSee [docs/sparkle-setup.md](docs/sparkle-setup.md) for full setup including key generation.\n\n## App Store / Store Variants\n\n- **macOS:** to ship both a direct (Sparkle, non-sandbox) build and a Mac App Store (sandboxed, no Sparkle) build from one codebase, see [docs/app-store-variant-setup.md](docs/app-store-variant-setup.md).\n- **Windows:** the WinUI 3 app targets a free **winget**/direct build now and a Microsoft Store listing later; see [`/plans/windows-winui3-port-plan.md`](plans/windows-winui3-port-plan.md).\n\n## Architecture\n\n**macOS**\n\n```\nScreenCaptureKit (SCStream / SCScreenshotManager)\n       │\n       ├── ScreenshotCapture → CGImageDestination → PNG\n       ├── VideoRecorder → AVAssetWriter → MP4\n       └── GifWriter → CGImageDestination → GIF\n```\n\n**Windows**\n\n```\nWindows.Graphics.Capture (Direct3D11CaptureFramePool)\n       │\n       ├── ScreenshotService → BitmapEncoder → PNG/JPEG\n       ├── VideoRecordingService → Media Foundation → H.264 MP4\n       └── GifRecordingService → BitmapEncoder → GIF\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) and the [Windows README](windows/README.md) for component-level detail.\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a [Pull Request](https://github.com/jamesmontemagno/tiny-clips/pulls).\n\nFound a bug or have a feature request? [Open an issue](https://github.com/jamesmontemagno/tiny-clips/issues/new).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesmontemagno%2Ftiny-clips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesmontemagno%2Ftiny-clips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesmontemagno%2Ftiny-clips/lists"}