{"id":50721016,"url":"https://github.com/ahmetb/Iris","last_synced_at":"2026-06-27T01:01:23.906Z","repository":{"id":330373139,"uuid":"1122541811","full_name":"ahmetb/Iris","owner":"ahmetb","description":"Webcam mirror window for macOS","archived":false,"fork":false,"pushed_at":"2026-04-27T05:00:36.000Z","size":10236,"stargazers_count":51,"open_issues_count":0,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-27T07:03:03.130Z","etag":null,"topics":["hand-mirror","macos","pearl","webcam","webcam-viewer"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":false,"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/ahmetb.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-25T01:11:42.000Z","updated_at":"2026-04-27T05:00:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"6e99d155-6e6b-43f5-a06f-afc6fc24c231","html_url":"https://github.com/ahmetb/Iris","commit_stats":null,"previous_names":["ahmetb/iris"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/ahmetb/Iris","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetb%2FIris","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetb%2FIris/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetb%2FIris/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetb%2FIris/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahmetb","download_url":"https://codeload.github.com/ahmetb/Iris/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetb%2FIris/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34838035,"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-26T02:00:06.560Z","response_time":106,"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":["hand-mirror","macos","pearl","webcam","webcam-viewer"],"created_at":"2026-06-10T00:00:33.539Z","updated_at":"2026-06-27T01:01:23.881Z","avatar_url":"https://github.com/ahmetb.png","language":"Swift","funding_links":[],"categories":["macOS"],"sub_categories":[],"readme":"# Iris.app\n\nIris is a macOS application that displays your webcam feed in a circular,\nalways-on-top window. It's a replacement for **Pearl** or **Hand Mirror** apps.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/hero.png\" alt=\"Iris Screenshot\" width=\"400\"\u003e\n\u003c/p\u003e\n\nThe project is entirely coded by an LLM agent. See [AGENTS.md](AGENTS.md) for development\nprinciples and [design/](design/) for feature specifications.\n\n## Features\n\n* **Menu Bar Only** - Lives in the menu bar, doesn't occupy the Dock\n* **Always On Top** - Window stays above other applications\n* **Circular Window** - Perfectly circular shape with smooth edges\n* **Resizable** - Drag from the edges of the circle to resize\n* **Toggle Visibility** - Click menu bar icon to show/hide window\n* **Camera Selection** - Choose from multiple camera sources\n* **Launch at Login** - Optionally, start on system login\n* **Persistent State** - Remembers size, position, and camera selection\n* **Mirror View** - Toggle between mirrored view (like looking in a mirror, default)\n  and non-mirrored view (how others see you)\n\n## Installation\n\n### Homebrew (Recommended)\n\nInstall via Homebrew using the custom tap (you'll receive version updates\nautomatically if you install it via Homebrew):\n\n```bash\nbrew tap ahmetb/iris https://github.com/ahmetb/Iris\nbrew install --cask ahmetb/iris/iris\n```\n\n⚠️ **macOS will show a warning about the unsigned application binary**. This is normal for open-source apps distributed outside the Mac App Store. To solve this:\n\n1. **First launch**: Right-click (or Control-click) on Iris.app and select \"Open\"\n2. Click \"Open\" in the security dialog.\n3. If this doesn't fix your problem, go to `System Settings` search for `Gatekeeper` (which should be under \"Privacy \u0026 Security\" section) and you can see an option to allow \"Iris\" app to run there under the \"Security\" section.\n\n### Manual Download\n\n1. Download the latest `Iris-vX.X.X.zip` from the [Releases](../../releases) page\n2. Unzip the file\n3. Move `Iris.app` to your Applications folder\n4. ⚠️ **macOS will show a warning about the unsigned application binary**. This\n   is normal for open-source apps distributed outside the Mac App Store. To solve\n   this:\n\n   1. **First launch**: Right-click (or Control-click) on Iris.app and select \"Open\"\n   2. Click \"Open\" in the security dialog.\n   3. If this doesn't fix your problem, go to `System Settings` search for\n   `Gatekeeper` (which should be under \"Privacy \u0026 Security\" section) and you can\n   see an option to allow \"Iris\" app to run there under the \"Security\" section.\n\n### Build from Source\n\n#### Requirements\n\n* macOS 13.0 or later\n* **Full Xcode installation** (not just Command Line Tools)\n  - Download from the [Mac App Store](https://apps.apple.com/app/xcode/id497799835)\n  - Command Line Tools alone are not sufficient for building macOS apps\n\n## Building\n\n### First Time Setup\n\n1. Install Xcode from the Mac App Store\n2. Open Xcode and agree to the license agreement\n3. Set the command line tools path:\n\n   ```bash\n   sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer\n   ```\n\n### Build Commands\n\n```bash\n./build.sh # Build the app\n./run.sh # Build and run\n./clean.sh # Clean build artifacts\n```\n\nThe built application will be located at `Iris/build/Release/Iris.app`.\n\n## Usage\n\n1. Launch the app using `./run.sh` or by opening `Iris.app`\n2. Grant camera permissions when prompted\n3. The app icon will appear in your menu bar (top right)\n4. Click the icon to toggle the window visibility\n5. Right-click the icon (or click and hold) to access:\n   - Camera selection\n   - Mirror View toggle\n   - Launch at login setting\n   - Quit option\n\n### Interacting with the Window\n\n* **Move**: Click and drag anywhere inside the circle\n* **Resize**: Click and drag from the edge of the circle\n* **Hide**: Click the menu bar icon\n\n## Camera Permissions\n\nOn first launch, macOS will prompt you to grant camera access. If you deny permission:\n\n1. Open System Settings\n2. Go to Privacy \u0026 Security \u003e Camera\n3. Enable camera access for Iris\n\n## Development\n\nThis is an LLM-agent-coded project. See [AGENTS.md](AGENTS.md) for development\nprinciples and [design/](design/) for feature specifications.\n\n### Project Structure\n\n```\niris/\n├── AGENTS.md                 # Development principles\n├── README.md                 # This file\n├── RELEASING.md              # Release process documentation\n├── design/                   # Feature design documents\n├── Casks/                    # Homebrew cask formula\n│   └── iris.rb\n├── .github/\n│   └── workflows/\n│       └── release.yml       # GitHub Actions release workflow\n├── Iris/                     # Xcode project\n│   ├── Iris.xcodeproj\n│   ├── Iris/                 # Source code\n│   │   ├── AppDelegate.swift\n│   │   ├── CameraManager.swift\n│   │   ├── CircularWindow.swift\n│   │   ├── MenuBarController.swift\n│   │   └── PreferencesManager.swift\n│   └── Iris.entitlements\n├── build.sh                  # Build script\n├── run.sh                    # Run script\n└── clean.sh                  # Clean script\n```\n\n## Creating a Release\n\nSee [RELEASING.md](RELEASING.md) for detailed release instructions.\n\nQuick version:\n```bash\n# Tag the release\ngit tag v1.0.0\n\n# Push the tag to GitHub\ngit push origin v1.0.0\n```\n\nGitHub Actions will automatically:\n- Build the app on a macOS runner\n- Create a zip archive\n- Update the Homebrew cask with new version and SHA256\n- Publish a GitHub Release with the zip attached\n\n## Troubleshooting\n\n### \"xcodebuild requires Xcode\" error\nInstall full Xcode from the App Store, not just Command Line Tools.\n\n### App doesn't appear in menu bar\nThe app is menu-bar-only (no Dock icon). Look for the eye icon (👁) in the top-right menu bar.\n\n### Camera not working\nCheck System Settings \u003e Privacy \u0026 Security \u003e Camera and ensure Iris has permission.\n\n### Window disappeared\nClick the menu bar icon to show it again. The app remembers window position between launches.\n\n## License\n\nThis project is open source and available for personal and commercial use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmetb%2FIris","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmetb%2FIris","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmetb%2FIris/lists"}