macOS command-line tools for reading iCloud-backed Apple state. The first supported command is Safari tab discovery:
icloud-cli safari tabs
icloud-cli safari tabs --format text
icloud-cli safari tabs --source current-session
icloud-cli safari cloud-tabs probeThe initial implementation reads local Safari session property lists from ~/Library/Safari. That keeps the first slice simple and testable while we map the broader iCloud/Safari sync surface. Reading live browser state may require running the terminal with Full Disk Access on macOS.
If Safari session files are unreadable, the command exits with an error naming the file paths it tried. If the files are readable but empty, the error says no tabs were found instead of treating it as a permissions problem.
Use icloud-cli safari cloud-tabs probe to check whether Safari's cross-device tab store is present and readable before enabling any cloud-tab parsing. See docs/cloudtabs.md for the investigation notes, docs/privacy.md for the privacy and permissions model, and docs/openclaw-skill-contract.md for the OpenClaw integration contract.
make build
make testRun the same local gate that backs PR CI Gate before opening a PR:
bash scripts/ci/run-fast-checks.shThe gate checks CI policy drift, shell syntax, secret patterns, privacy fixtures, Swift tests, debug and release builds, and CLI help output.
The roadmap lives in GitHub issues. The first milestone focuses on:
- stable
icloud-cli safari tabsJSON output - reliable discovery of local Safari session files
- investigation of
CloudTabs.dbfor cross-device iCloud Safari tabs - OpenClaw skill integration so a MacBook node can report tab inventory safely
This repo uses project.bootstrap.yaml as the governance control plane.
node ~/src/omt-global/bootstrap/dist/cli.js plan --manifest ./project.bootstrap.yaml --target .
node ~/src/omt-global/bootstrap/dist/cli.js apply repo --manifest ./project.bootstrap.yaml --target .Do not run bootstrap apply home for this repo; it intentionally sets agents.manageCodexHome: false.