ihme

star 0

Manage iCloud Hide My Email addresses — list, create, edit, deactivate, export

lroolle By lroolle schedule Updated 5/20/2026

name: ihme description: Manage iCloud Hide My Email addresses — list, create, edit, deactivate, export triggers: - hide my email - HME - icloud email - private relay - generate email - email alias - disposable email tools: - ihme

ihme — iCloud Hide My Email CLI

Setup

If ihme is not installed, install it:

# macOS (Apple Silicon)
curl -sL https://github.com/lroolle/ihme-cli/releases/latest/download/ihme_macOS_arm64.tar.gz | tar xz && sudo mv ihme /usr/local/bin/

# macOS (Intel)
curl -sL https://github.com/lroolle/ihme-cli/releases/latest/download/ihme_macOS_x86_64.tar.gz | tar xz && sudo mv ihme /usr/local/bin/

# Linux
curl -sL https://github.com/lroolle/ihme-cli/releases/latest/download/ihme_linux_x86_64.tar.gz | tar xz && sudo mv ihme /usr/local/bin/

# Or via Go
go install github.com/lroolle/ihme-cli/cmd/ihme@latest

First run requires ihme auth login (interactive — Apple ID + 2FA). Check with ihme auth status --json before other commands.

JSON response shapes

list --json     → {"addresses":[{anonymousId,label,hme,isActive,createTimestamp,note,...}],"count":N,"hints":{...}}
view --json     → {"result":{anonymousId,label,hme,forwardToEmail,isActive,...},"hints":{...}}
new --json      → {"candidates":["a@icloud.com",...],"label":"...","hint":"ihme new <label> --address <addr>"}
new -y --json   → {anonymousId,label,hme,isActive,...}
forward --json  → {"forwardTo":"...","available":[...],"hint":"ihme forward set <email>"}
auth status     → {"loggedIn":true,"appleId":"...","expired":false,...}
deactivate      → {"status":"deactivated","hme":"...","id":"...","hints":{...}}
reactivate      → {"status":"reactivated","hme":"...","id":"...","hint":"..."}

Commands

# Check auth first
ihme auth status --json

# List and search (hundreds of addresses supported)
ihme list --json --jq '.addresses[0:5]'
ihme list --search netflix --json
ihme list --active --tag dev --json
ihme list --sort label --json

# Create (two-step: generate candidates, then reserve)
ihme new github.com --json                              # step 1: get candidates
ihme new github.com --address abc@icloud.com --json     # step 2: reserve one
ihme new github.com --yes --json                        # one-shot: take first

# View and edit
ihme view github.com --json --jq '.result.hme'
ihme edit github.com --label GitHub --tag dev,work

# Lifecycle
ihme deactivate github.com --json
ihme reactivate github.com --json
ihme delete github.com --yes --json

# Export
ihme export --format json
ihme export --search github --active -o filtered.csv

# Forward-to
ihme forward --json
ihme forward set user@icloud.com

resolution

All commands accepting <ref> resolve in order: anonymousId (prefix >= 6 chars) > email > label (exact) > label (fuzzy).

Choosing an address

When selecting from candidates, apply taste:

  • Euphony: pick what sounds pleasant read aloud. You'll see it for years.
  • Neutral-to-positive affect: reject deficit words (paupers, denials, debts, graves). An address is a micro-identity — it should not carry weight.
  • Concrete specificity: prefer real nouns with physicality (pianola, compass, glade) over abstractions or units. Specific things are memorable; categories are forgettable.
  • Visual rhythm: favor clean separator variety (dot, dash) over mixed noise (underscore + dot + number prefix). Short.longer-short reads better than long-long-suffix.
  • No leading digits: 65.ampere reads like a form field. Letters first.

An HME address is a mask that still has personality. The best ones feel like they could be a place, a callsign, or an album title — evocative without trying.

Error handling

Errors include the fix command:

Error: <ref> required — an address label, email, or ID
  Usage: ihme deactivate <ref>
  Example: ihme deactivate github.com

Exit codes

  • 0: success
  • 1: error
  • 2: not authenticated (run ihme auth login)

Operational guide (for agents)

When creating addresses on behalf of the user:

  1. Generate candidates: ihme new <label> --json
  2. Evaluate each against the taste criteria above
  3. State the pick and one-line reasoning — let the user override
  4. Reserve only after confirmation (never use --yes unless told "just pick one")

Label convention: use the service or team name as a bare noun. Dates age; names don't.

  • Good: wicket, github, linear
  • Avoid: 240501_chatgpt openai, 0315 claude felix 2

Tags: apply from a small controlled set when the user specifies context. Common tags: #work, #dev, #personal, #throwaway, #team-<name>.

Periodic hygiene: ihme list --sort date:asc to surface old addresses for audit. Only 1 of 326 addresses is deactivated — suggest pruning dead services quarterly.

Install via CLI
npx skills add https://github.com/lroolle/ihme-cli --skill ihme
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator