{"id":51307821,"url":"https://github.com/block/catch","last_synced_at":"2026-07-01T01:04:52.824Z","repository":{"id":363000473,"uuid":"1261535670","full_name":"block/catch","owner":"block","description":"Start or find an agent session from anywhere","archived":false,"fork":false,"pushed_at":"2026-06-25T04:13:38.000Z","size":282,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-25T06:05:10.138Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/block.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":"CODEOWNERS","security":null,"support":null,"governance":"GOVERNANCE.md","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":"2026-06-06T20:27:27.000Z","updated_at":"2026-06-25T04:13:41.000Z","dependencies_parsed_at":"2026-06-25T06:01:39.706Z","dependency_job_id":null,"html_url":"https://github.com/block/catch","commit_stats":null,"previous_names":["block/catch"],"tags_count":5,"template":false,"template_full_name":"block/oss-project-template","purl":"pkg:github/block/catch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/block","download_url":"https://codeload.github.com/block/catch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34988732,"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-30T02:00:05.919Z","response_time":92,"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-07-01T01:04:51.958Z","updated_at":"2026-07-01T01:04:52.810Z","avatar_url":"https://github.com/block.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Catch\n\nCatch is a SwiftPM macOS app for quickly finding and continuing local agent sessions from Codex, Claude Code, and Goose.\n\n## Build And Run\n\nUse the project-local macOS run script:\n\n```bash\n./script/build_and_run.sh\n```\n\nThe script follows the Build macOS Apps workflow:\n\n- stops any currently running `Catch` process\n- builds the SwiftPM executable with `swift build`\n- stages a macOS `.app` bundle at `~/Applications/Catch.app`\n- launches the app bundle with `/usr/bin/open -n`\n\nThe Codex app Run action is wired to the same script through `.codex/environments/environment.toml`.\n\nTo launch the app in embedded-host mode:\n\n```bash\n./script/build_and_run.sh --embedded\n```\n\nEmbedded mode currently uses the same UI behavior as standalone mode, but records the launch context for future host-aware behavior.\n\nTo launch the separate test bundle for autonomous UI checks:\n\n```bash\n./script/build_and_run.sh --test\n```\n\nTo launch the same separate test bundle for manual testing, without the agent-only order-back behavior:\n\n```bash\n./script/build_and_run.sh --test-manual\n```\n\n## Verification And Debugging\n\n### SwiftUI Previews\n\nOpen the package in Xcode and select the `CatchKit` scheme before refreshing SwiftUI previews. `CatchKit` is exposed as a dynamic library product so previews can build through a framework scheme; using the `Catch` executable scheme can produce Xcode's `ENABLE_DEBUG_DYLIB` preview error.\n\n```bash\n./script/build_and_run.sh --verify\n```\n\nBuilds, launches, and confirms the `Catch` process is running.\n\n```bash\n./script/build_and_run.sh --logs\n```\n\nBuilds, launches, and streams unified logs for the app process.\n\n```bash\n./script/build_and_run.sh --telemetry\n```\n\nBuilds, launches, and streams unified logs filtered to the app bundle identifier.\n\n```bash\n./script/build_and_run.sh --debug\n```\n\nBuilds the app bundle and opens the app executable in `lldb`.\n\n## Releases\n\nUnsigned macOS release assets are produced by:\n\n```bash\n./script/package_release.sh 0.1.0\n```\n\nThe script builds a universal `arm64` + `x86_64` executable and writes two assets to `dist/release`:\n\n- `Catch-v0.1.0-macos-universal.dmg` for standalone installation\n- `catch-v0.1.0-macos-universal.tar.gz` for Tauri sidecar embedding\n\nStandalone users may need to allow the unsigned app in macOS Gatekeeper settings. Embedders should extract the tarball, verify the GitHub release asset digest, copy `catch` to the host app's expected sidecar filename, and launch it with `--embedded`.\n\nPublishing is automated by `.github/workflows/release.yml` for `v*` tags and manual workflow dispatch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblock%2Fcatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblock%2Fcatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblock%2Fcatch/lists"}