{"id":50497873,"url":"https://github.com/chen-rn/auto-wi2-captive-accept","last_synced_at":"2026-06-02T09:30:24.531Z","repository":{"id":355531749,"uuid":"1226279792","full_name":"chen-rn/auto-wi2-captive-accept","owner":"chen-rn","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-14T03:48:18.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-14T05:35:04.708Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://wi2-auto-accept.vercel.app","language":"Shell","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/chen-rn.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-05-01T07:32:31.000Z","updated_at":"2026-05-14T03:48:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/chen-rn/auto-wi2-captive-accept","commit_stats":null,"previous_names":["chen-rn/auto-wi2-captive-accept"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chen-rn/auto-wi2-captive-accept","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen-rn%2Fauto-wi2-captive-accept","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen-rn%2Fauto-wi2-captive-accept/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen-rn%2Fauto-wi2-captive-accept/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen-rn%2Fauto-wi2-captive-accept/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chen-rn","download_url":"https://codeload.github.com/chen-rn/auto-wi2-captive-accept/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen-rn%2Fauto-wi2-captive-accept/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33816485,"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-02T02:00:07.132Z","response_time":109,"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-02T09:30:24.001Z","updated_at":"2026-06-02T09:30:24.516Z","avatar_url":"https://github.com/chen-rn.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# auto-wi2-captive-accept\n\nmacOS LaunchAgent scripts for automatically accepting captive portals used by DOUTOR, Starbucks, and Tully's/USEN.\n\nSupported SSIDs:\n\n- `DOUTOR_FREE_Wi-Fi`\n- `at_STARBUCKS_Wi2`\n- `Wi2_Free`\n- `Wi2free`\n- `Wi2`\n- `tullys_Wi-Fi`\n\nThe launcher runs every 30 seconds, checks `http://captive.apple.com/hotspot-detect.html`, and tries to clear supported captive portals with a headless Playwright helper. It identifies supported portals from the captive response first, using Wi2/USEN/DOUTOR/Starbucks/Tully's markers such as `service.wi2.ne.jp`, `10.1.1.100`, `USEN Free Wi-Fi`, and `tullys_Wi-Fi`; SSID and known client IP ranges are only fallback hints. On target-like networks it also requires a general internet probe to pass, because Tully's/USEN can allow Apple's success page before the wider internet works. If browser automation fails, it opens Captive Network Assistant and uses AppleScript to click portal buttons. Starbucks is handled as a two-step flow: `Connect`, then `Accept`. Tully's/USEN local portals are submitted directly to the `USPOT-02` local API first because the JavaScript app can render blank in headless Chromium; if that API path fails, the launcher falls back to the native popup flow.\n\nOptional overrides can be placed in `~/.config/auto-wi2-captive-accept/config`:\n\n```sh\nAUTO_WI2_BIRTH_YEAR=1990\nAUTO_WI2_GENDER=Male\n```\n\n## Install\n\n```sh\n./install.sh\n```\n\nLogs and status:\n\n```sh\ncat \"$HOME/Library/Logs/auto-wi2-captive-accept.status\"\ntail -n 80 \"$HOME/Library/Logs/auto-wi2-captive-accept.log\"\ncat \"$HOME/Library/Logs/auto-wi2-captive-accept.last-browser-result.json\"\nopen \"$HOME/Library/Logs/auto-wi2-captive-accept-captures\"\n```\n\n## Uninstall\n\n```sh\nlaunchctl bootout \"gui/$(id -u)\" \"$HOME/Library/LaunchAgents/com.$USER.auto-wi2-captive-accept.plist\"\nrm -f \"$HOME/Library/LaunchAgents/com.$USER.auto-wi2-captive-accept.plist\"\nrm -f \"$HOME/.local/bin/auto-wi2-captive-accept\"\nrm -rf \"$HOME/.local/share/auto-wi2-captive-accept\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchen-rn%2Fauto-wi2-captive-accept","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchen-rn%2Fauto-wi2-captive-accept","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchen-rn%2Fauto-wi2-captive-accept/lists"}