whatisgithub

What is icloud-hme?

xiaozhou26/icloud-hme — explained in plain English

Analysis updated 2026-05-18

201GoAudience · developerComplexity · 4/5Setup · hard

In one sentence

A self-hosted Go server for creating, listing, and reading mail from Apple Hide My Email aliases outside the official iCloud apps.

Mindmap

mindmap
  root((icloud-hme))
    What it does
      Create HME alias
      List aliases
      Read mail
    Auth modes
      Cookie
      App password
    Tech stack
      Go
      Gin
      IMAP
    Setup
      Binary
      Docker
      Build from source

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Create and manage Hide My Email aliases from a script or API instead of the iCloud app.

USE CASE 2

Automatically fetch mail sent to a specific hidden email alias.

USE CASE 3

Manage Hide My Email aliases across multiple iCloud accounts from one tool.

What is it built with?

GoGinIMAP

How does it compare?

xiaozhou26/icloud-hmebaiyuetribe/glinksphireinc/foundry
Stars201209183
LanguageGoGoGo
Last pushed2021-11-10
MaintenanceDormant
Setup difficultyhardmoderatemoderate
Complexity4/53/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires iCloud cookies or an app-specific password, and cookies typically expire in about a day.

So what is it?

icloud-hme is a self-hosted tool, written in Go, for managing Apple's Hide My Email feature from outside the iCloud apps. According to its Chinese-language README, it works by reverse-engineering iCloud's web interface and using the IMAP email protocol, letting a user create new hidden email aliases, list the ones they already have, and fetch the messages sent to them. The tool runs as a small HTTP server with a JSON API. It can create an alias, list all aliases for an account, deactivate or reactivate one, delete one, and read incoming mail for a given alias. For reading mail, it tries an IMAP connection using an Apple app-specific password first, since that lets it search by recipient on the mail server itself, and falls back to reading through the web API with a browser cookie if no app password is set up. It also supports managing several iCloud accounts side by side, each with its own credentials. Getting it running means either downloading a prebuilt binary for your platform, pulling a Docker image, or compiling it yourself with Go 1.26 or newer. Accounts are configured through a JSON file or through the API itself, and the tool needs either exported browser cookies from a signed-in iCloud session or an Apple-generated app password, depending on which features are used. Cookies typically expire after about a day, according to the README's troubleshooting notes, so they need to be refreshed periodically. The project uses the Gin web framework for its HTTP API, a Go IMAP library for mail, and a TLS fingerprinting library to avoid being blocked by iCloud's anti-scraping defenses. Because it needs real account credentials to work, anyone using it should treat those credentials, and the tool's own API, as sensitive.

Copy-paste prompts

Prompt 1
Explain the difference between the Cookie and App Password authentication modes in this tool.
Prompt 2
Walk me through setting up icloud-hme with Docker and an accounts.json file.
Prompt 3
Show me how to call the API to create a new Hide My Email alias.

Frequently asked questions

What is icloud-hme?

A self-hosted Go server for creating, listing, and reading mail from Apple Hide My Email aliases outside the official iCloud apps.

What language is icloud-hme written in?

Mainly Go. The stack also includes Go, Gin, IMAP.

How hard is icloud-hme to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is icloud-hme for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.