{"id":47302218,"url":"https://github.com/sane-apps/SaneHosts","last_synced_at":"2026-03-31T09:00:48.128Z","repository":{"id":333549815,"uuid":"1137736267","full_name":"sane-apps/SaneHosts","owner":"sane-apps","description":"Modern, profile-based hosts file manager for macOS. Block ads, trackers, and distractions with ease.","archived":false,"fork":false,"pushed_at":"2026-03-27T15:14:45.000Z","size":135637,"stargazers_count":8,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-28T00:46:38.109Z","etag":null,"topics":["ad-blocker","dns","hosts-file","macos","macos-app","open-source","privacy","swift","swiftui","tracker-blocker"],"latest_commit_sha":null,"homepage":"https://sanehosts.com","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sane-apps.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"sane-apps","custom":["https://sanehosts.com"]}},"created_at":"2026-01-19T19:07:02.000Z","updated_at":"2026-03-27T15:14:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sane-apps/SaneHosts","commit_stats":null,"previous_names":["stephanjoseph/sanehosts","sane-apps/sanehosts"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/sane-apps/SaneHosts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sane-apps%2FSaneHosts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sane-apps%2FSaneHosts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sane-apps%2FSaneHosts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sane-apps%2FSaneHosts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sane-apps","download_url":"https://codeload.github.com/sane-apps/SaneHosts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sane-apps%2FSaneHosts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31228492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-31T08:35:14.124Z","status":"ssl_error","status_checked_at":"2026-03-31T08:34:00.887Z","response_time":111,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ad-blocker","dns","hosts-file","macos","macos-app","open-source","privacy","swift","swiftui","tracker-blocker"],"created_at":"2026-03-17T05:00:23.918Z","updated_at":"2026-03-31T09:00:48.111Z","avatar_url":"https://github.com/sane-apps.png","language":"Swift","funding_links":["https://github.com/sponsors/sane-apps","https://sanehosts.com"],"categories":["Security"],"sub_categories":["Text"],"readme":"# SaneHosts\n\n\u003e Modern hosts file manager for macOS\n\n[![GitHub stars](https://img.shields.io/github/stars/sane-apps/SaneHosts?style=flat-square)](https://github.com/sane-apps/SaneHosts/stargazers)\n[![License: PolyForm Shield](https://img.shields.io/badge/License-PolyForm%20Shield-blue.svg)](LICENSE)\n[![macOS 14+](https://img.shields.io/badge/macOS-14%2B-brightgreen)](https://www.apple.com/macos)\n[![Swift 6.2](https://img.shields.io/badge/Swift-6.2-orange.svg)](https://swift.org)\n[![Listed on awesome-macos](https://img.shields.io/badge/Listed%20on-open--source--mac--os--apps%20(40k%E2%98%85)-black)](https://github.com/serhii-londar/open-source-mac-os-apps)\n\n\u003e **⭐ Star this repo if it's useful!** · **[💰 Buy for $6.99](https://sanehosts.com)** · Keeps development alive\n\nSaneHosts is a native macOS app that makes managing your `/etc/hosts` file simple and intuitive. Choose a protection level, activate it, done. No Terminal. No commands. If something breaks, just deactivate.\n\n## Features\n\n### Protection Levels\nChoose from 5 curated protection levels - each bundles the right blocklists for your needs:\n\n| Level | What It Blocks |\n|-------|---------------|\n| **Essentials** | Ads, trackers, and malware. Safe for everyone. |\n| **Family Safe** | Essentials + adult content and gambling sites |\n| **Focus Mode** | Family Safe + social media distractions |\n| **Privacy Shield** | Focus Mode + telemetry and advanced trackers |\n| **Kitchen Sink** | Maximum protection. Blocks everything we can. |\n\n### Core Features\n- **Profile Management** - Create and manage multiple hosts configurations with color tagging\n- **200+ Curated Blocklists** - Import from Steven Black, Hagezi, AdGuard, OISD, and 10+ categories. SaneHosts is an **officially listed tool** in the upstream StevenBlack/hosts repository.\n- **Guided Setup** - Coach mark tutorial walks you through activation on first launch\n- **Remote Import** - Import hosts from any URL or paste custom blocklist URLs\n- **Merge Profiles** - Combine multiple profiles with automatic deduplication\n- **Automatic DNS Flush** - DNS cache cleared when activating profiles\n- **Menu Bar Access** - Quick profile switching from the menu bar\n- **Crash Resilient** - Automatic backups (3 per profile), corrupted profiles recovered automatically\n- **Native macOS** - Built with SwiftUI, follows system conventions\n- **Privacy-First** - Your hosts data stays on your Mac, with only a few simple app counts and optional network features\n- **Export Profiles** - Save profiles as standard `.hosts` format files\n- **Drag to Reorder** - Organize profiles by dragging in the sidebar\n- **Search \u0026 Filter** - Find entries across large profiles (handles 100K+ entries)\n- **URL Health Checks** - Visual indicators show blocklist source availability\n\n## Installation\n\n**[Download from sanehosts.com](https://sanehosts.com)** — Signed, notarized, ready to use.\n\n\u003e *I wanted to make it $5, but processing fees and taxes were... insane. — Mr. Sane*\n\n**Building from source?** The app resolves `SaneUI` automatically from GitHub outside the monorepo. Consider [buying the app](https://sanehosts.com) to support continued development.\n\n## Requirements\n\n- macOS 14.0 (Sonoma) or later\n- Administrator password (for hosts file modifications)\n\n## How It Works\n\n1. **Choose a Protection Level** - Pick from Essentials to Kitchen Sink, or create a custom profile\n2. **Import Blocklists** - Use curated presets or import from 200+ sources\n3. **Activate** - Apply the profile to your `/etc/hosts` file (password required once)\n4. **Switch** - Change profiles as needed, DNS cache is flushed automatically\n\n## Screenshots\n\nSee [sanehosts.com](https://sanehosts.com) for screenshots and demo.\n\n## Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `⌘N` | New Profile |\n| `⌘I` | Import Blocklist |\n| `⌘A` | Select All Profiles |\n| `⌘D` | Duplicate Profile |\n| `⌘M` | Merge Selected Profiles |\n| `⌘E` | Export Profile |\n| `⌘⇧A` | Activate Profile |\n| `⌘⇧D` | Deactivate All |\n| `⌘⌫` | Delete Profile |\n| `Delete` | Delete Selected (in list) |\n\n## Privacy\n\nSaneHosts is designed with privacy in mind:\n- All data stored locally in `~/Library/Application Support/SaneHosts/`\n- No personal content uploaded to SaneApps servers\n- The app may send a few simple anonymous counts, like whether it opened in Basic or Pro\n- Network access is limited to remote imports you choose, update checks, and those simple app counts\n\nSee [PRIVACY.md](PRIVACY.md) for details.\n\n## Security\n\n- Hosts file modifications require admin authentication\n- Code signed and notarized by Apple\n- Hardened runtime enabled\n\nSee [SECURITY.md](SECURITY.md) for details.\n\n## Documentation\n\n| Document | Purpose |\n|----------|---------|\n| [README.md](README.md) | Product overview and doc map |\n| [ARCHITECTURE.md](ARCHITECTURE.md) | App structure and state flow |\n| [DEVELOPMENT.md](DEVELOPMENT.md) | Build, test, and workflow SOP |\n| [PRIVACY.md](PRIVACY.md) | Privacy practices and limited network behavior |\n| [SECURITY.md](SECURITY.md) | Security policy and reporting |\n| [`website/`](website/) | Public website and guide pages |\n| [`docs/`](docs/) | Internal product and release reference docs |\n\n## Contributing\n\nBefore opening a PR:\n1. **[⭐ Star the repo](https://github.com/sane-apps/SaneHosts)** (if you haven't already)\n2. Read [CONTRIBUTING.md](CONTRIBUTING.md)\n3. Open an issue first to discuss major changes\n\n## Support\n\n**[⭐ Star the repo](https://github.com/sane-apps/SaneHosts)** if SaneHosts helps you. Stars help others discover quality software.\n\n**Cloning without starring?** For real bro? Gimme that star!\n\n- 🐛 [Report a Bug](https://github.com/sane-apps/SaneHosts/issues/new?template=bug_report.md)\n- 💡 [Request a Feature](https://github.com/sane-apps/SaneHosts/issues/new?template=feature_request.md)\n\n## License\n\n[PolyForm Shield 1.0.0](https://polyformproject.org/licenses/shield/1.0.0) — free for personal use and experimentation. See [LICENSE](LICENSE) for details.\n\n---\n\nMade with care by [Mr. Sane](https://github.com/sane-apps)\n\n## Third-Party Notices\n\nThird-party open-source attributions are documented in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).\n\n\u003c!-- SANEAPPS_AI_CONTRIB_START --\u003e\n### Become a Contributor (Even if You Don't Code)\n\nAre you tired of waiting on the dev to get around to fixing your problem?  \nDo you have a great idea that could help everyone in the community, but think you can't do anything about it because you're not a coder?\n\nGood news: you actually can.\n\nCopy and paste this into Claude or Codex, then describe your bug or idea:\n\n```text\nI want to contribute to this repo, but I'm not a coder.\n\nRepository:\nhttps://github.com/sane-apps/SaneHosts\n\nBug or idea:\n[Describe your bug or idea here in plain English]\n\nPlease do this for me:\n1) Understand and reproduce the issue (or understand the feature request).\n2) Make the smallest safe fix.\n3) Open a pull request to https://github.com/sane-apps/SaneHosts\n4) Give me the pull request link.\n5) Open a GitHub issue in https://github.com/sane-apps/SaneHosts/issues that includes:\n   - the pull request link\n   - a short summary of what changed and why\n6) Also give me the exact issue link.\n\nImportant:\n- Keep it focused on this one issue/idea.\n- Do not make unrelated changes.\n```\n\nIf needed, you can also just email the pull request link to hi@saneapps.com.\n\nI review and test every pull request before merge.\n\nIf your PR is merged, I will publicly give you credit, and you'll have the satisfaction of knowing you helped ship a fix for everyone.\n\u003c!-- SANEAPPS_AI_CONTRIB_END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsane-apps%2FSaneHosts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsane-apps%2FSaneHosts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsane-apps%2FSaneHosts/lists"}