{"id":50594647,"url":"https://github.com/different-ai/agent-watch","last_synced_at":"2026-06-05T13:01:25.416Z","repository":{"id":339842425,"uuid":"1163496165","full_name":"different-ai/agent-watch","owner":"different-ai","description":"A native macOS API for your screen","archived":false,"fork":false,"pushed_at":"2026-05-04T19:37:58.000Z","size":84,"stargazers_count":17,"open_issues_count":3,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-04T21:07:47.231Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/different-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-21T18:09:50.000Z","updated_at":"2026-05-04T19:38:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/different-ai/agent-watch","commit_stats":null,"previous_names":["different-ai/agent-watch"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/different-ai/agent-watch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/different-ai%2Fagent-watch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/different-ai%2Fagent-watch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/different-ai%2Fagent-watch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/different-ai%2Fagent-watch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/different-ai","download_url":"https://codeload.github.com/different-ai/agent-watch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/different-ai%2Fagent-watch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33942436,"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-05T02:00:06.157Z","response_time":120,"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-06-05T13:01:24.057Z","updated_at":"2026-06-05T13:01:25.410Z","avatar_url":"https://github.com/different-ai.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# agent-watch\n\n`agent-watch` runs a lightweight server to access your screen data.\n\nIt uses a mix of accessibility, and native ocr, and exposes a few straight forward API end point.\n\n## What it does\n\n- Captures text from your active screen context.\n- Uses Accessibility APIs in the daemon by default.\n- Uses Vision OCR on demand (`capture-now --force-ocr` or `search-buffer-ocr`).\n- Stores text and metadata only in local SQLite (FTS5 search).\n- Ships CLI-first (`agent-watch`) with launchd daemon support.\n- Keeps a short rolling frame buffer to recover recent text after you switch away.\n\nNo audio, no screenshot storage, no cloud dependency.\n\n## Requirements\n\n- macOS 13+\n- Apple Silicon (arm64)\n- Swift 6.2+\n\n## Easy install\n\nOne-command install (clone + build + install binary):\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/different-ai/agent-watch/main/scripts/install.sh | bash\n```\n\nThe installer places the CLI at `$HOME/.local/bin/agent-watch`. If your shell does not find `agent-watch`, either run the full path or add it to your PATH:\n\n```bash\n$HOME/.local/bin/agent-watch serve --capture\n```\n\nFor fish:\n\n```fish\nfish_add_path ~/.local/bin\n```\n\nIf you already cloned the repo:\n\n```bash\nbash scripts/install.sh\n```\n\nOptional persistent launchd install:\n\n```bash\nAGENT_WATCH_INSTALL_LAUNCHD=1 bash scripts/install.sh\n```\n\n## Low-CPU defaults (simple mode)\n\n- Capture triggers: app switch + idle timer.\n- Idle timer default: `30s`.\n- Daemon OCR default: disabled (`ocr_enabled=false`).\n- Rolling frame buffer: enabled, `5s` interval, `120s` retention.\n- Retention default: `14` days.\n\n## Build\n\n```bash\nswift build\n```\n\n## Skill-style helper scripts\n\nThe repo includes quick operational scripts adapted from the `agent-watch` skill:\n\n```bash\nbash scripts/build.sh\nbash scripts/doctor.sh\nbash scripts/capture-once.sh\nbash scripts/search.sh \"invoice\"\nbash scripts/search-buffer-ocr.sh \"invoice\" --seconds 120 --limit 10\nbash scripts/run-daemon.sh\nbash scripts/run-api.sh\nbash scripts/restart.sh\nbash scripts/stop.sh\n```\n\n## CLI usage\n\n```bash\nswift run agent-watch help\n```\n\nCommon commands:\n\n```bash\nswift run agent-watch doctor\nswift run agent-watch capture-once\nswift run agent-watch capture-now\nswift run agent-watch capture-once --force-ocr\nswift run agent-watch search-buffer-ocr \"alex\" --seconds 120 --limit 10\nswift run agent-watch search \"invoice\"\nswift run agent-watch ingest --text \"manual line\" --app \"Notes\"\nswift run agent-watch status\nswift run agent-watch purge --older-than 30d\n```\n\n## Local HTTP API\n\nStart the local API server with live capture enabled (loopback-only by default):\n\n```bash\n$HOME/.local/bin/agent-watch serve --capture\n```\n\nRoutes:\n\n- `GET /` (discovery)\n- `GET /health`\n- `GET /status`\n- `GET /search?q=\u003cquery\u003e\u0026limit=\u003cn\u003e\u0026app=\u003cname\u003e`\n- `GET /screen-recording/probe`\n- `GET /openapi.yaml`\n\nExamples:\n\n```bash\ncurl -s \"http://127.0.0.1:41733/health\"\ncurl -s \"http://127.0.0.1:41733/\"\ncurl -s \"http://127.0.0.1:41733/status\"\ncurl -s \"http://127.0.0.1:41733/search?q=invoice\u0026limit=10\"\ncurl -s \"http://127.0.0.1:41733/screen-recording/probe\"\ncurl -s \"http://127.0.0.1:41733/openapi.yaml\"\n```\n\nAPI design and contract docs:\n\n- `docs/api/openapi.yaml`\n- `docs/api/INVARIANTS.md`\n- `docs/api/TEST_MATRIX.md`\n\nScreen recording proof from CLI:\n\n```bash\nswift run agent-watch doctor\n```\n\n`doctor` prints permission status and a frame probe summary (resolution, byte count, and sample hash prefix).\n\n## Data directory\n\nDefault:\n\n`~/Library/Application Support/AgentWatch/`\n\nOverride for tests or local sandbox:\n\n```bash\nAGENT_WATCH_DATA_DIR=/tmp/agent-watch swift run agent-watch status\n```\n\nLegacy fallback variable is also supported:\n\n```bash\nSCREENTEXT_DATA_DIR=/tmp/agent-watch swift run agent-watch status\n```\n\n## Practical OCR commands\n\nCapture one immediate OCR snapshot:\n\n```bash\nagent-watch capture-now --force-ocr\n```\n\nSearch recent buffered screenshots (on demand OCR):\n\n```bash\nagent-watch search-buffer-ocr \"your phrase\" --seconds 120 --limit 10\n```\n\nUseful config toggles:\n\n```bash\nagent-watch config set ocr_enabled false\nagent-watch config set frame_buffer_interval_seconds 5\nagent-watch config set frame_buffer_retention_seconds 120\nagent-watch config set retention_days 14\n```\n\n## Tests\n\nRun unit/integration tests:\n\n```bash\nswift test\n```\n\nRun end-to-end CLI flow:\n\n```bash\nbash scripts/e2e.sh\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdifferent-ai%2Fagent-watch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdifferent-ai%2Fagent-watch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdifferent-ai%2Fagent-watch/lists"}