{"id":42034186,"url":"https://github.com/hastefui/ffrelayctl","last_synced_at":"2026-01-26T05:02:22.177Z","repository":{"id":331573564,"uuid":"1128712458","full_name":"hastefuI/ffrelayctl","owner":"hastefuI","description":"A CLI for Firefox Relay.","archived":false,"fork":false,"pushed_at":"2026-01-11T00:42:01.000Z","size":550,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T01:38:15.858Z","etag":null,"topics":["anonymity","cli","docker","email","firefox","firefox-relay","go","go-cli","golang","mozilla","mozmail","privacy","privacy-tools","private-relay"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hastefuI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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-01-06T03:39:35.000Z","updated_at":"2026-01-11T00:41:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hastefuI/ffrelayctl","commit_stats":null,"previous_names":["hastefui/ffrelayctl"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/hastefuI/ffrelayctl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hastefuI%2Fffrelayctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hastefuI%2Fffrelayctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hastefuI%2Fffrelayctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hastefuI%2Fffrelayctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hastefuI","download_url":"https://codeload.github.com/hastefuI/ffrelayctl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hastefuI%2Fffrelayctl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28767014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T03:54:34.369Z","status":"ssl_error","status_checked_at":"2026-01-26T03:54:33.031Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["anonymity","cli","docker","email","firefox","firefox-relay","go","go-cli","golang","mozilla","mozmail","privacy","privacy-tools","private-relay"],"created_at":"2026-01-26T05:02:21.445Z","updated_at":"2026-01-26T05:02:22.166Z","avatar_url":"https://github.com/hastefuI.png","language":"Go","readme":"# ffrelayctl [![Build](https://github.com/hastefuI/ffrelayctl/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/hastefuI/ffrelayctl/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/v/release/hastefuI/ffrelayctl)](https://github.com/hastefuI/ffrelayctl/releases) [![Go Report Card](https://goreportcard.com/badge/github.com/hastefuI/ffrelayctl)](https://goreportcard.com/report/github.com/hastefuI/ffrelayctl) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/hastefuI/ffrelayctl/blob/main/LICENSE)\n\nA CLI for [Firefox Relay](https://relay.firefox.com) written in Go.\n\n## Overview\nFirefox Relay is a privacy service from Mozilla that provides email and phone number masks to help keep your identity private.\n\n`ffrelayctl` is a command-line tool for managing Firefox Relay masks directly from the terminal.\n\n\u003cimg src=\"./demo.gif\" alt=\"Demo\" style=\"width:100%; max-width:900px;\" /\u003e\n\n## Features\n- **Contact Management**: Manage inbound contacts (premium only)\n- **Email Mask Management**: Manage both random and custom domain email masks\n- **Phone Management**: Manage phone masks and forwarding number (premium only)\n- **Profile Management**: View your Relay profile and subscription status\n- **Data Export**: Export your Relay data for backup purposes\n\n## Installation\n\n### Homebrew (macOS and Linux)\n\n```bash\n$ brew tap hastefui/tap\n$ brew install ffrelayctl\n```\n\n### Pre-built Binaries\n\nDownload, extract, and install the latest release for your platform from the [releases page](https://github.com/hastefuI/ffrelayctl/releases).\n\n### Build From Source\n\nClone this repository, and then:\n```bash\n# Build\n$ go build -o ffrelayctl .\n\n# Install\n$ go install .\n```\n\n### Docker\n\n```bash\n$ docker build -t ffrelayctl .\n```\n\n### Verify Installation\n\nVerify that the installation for ffrelayctl was successful:\n```bash\n$ ffrelayctl --version\n```\n\n## Quick Start\n\n### Prerequisites\n\nA Firefox Relay account is required.\n\n### Authenticating with Firefox Relay\n\nTo use `ffrelayctl`, you need to authenticate with Firefox Relay by providing a Relay API Key, which can be retrieved from the [Firefox Relay Settings Page](https://relay.firefox.com/accounts/settings/) after login.\n\nVerify you're able to retrieve your Relay profile using the API Key for your account:\n```bash\n$ ffrelayctl profiles list --key \u003creplace-me\u003e\n# or\n$ export FFRELAYCTL_KEY=\u003creplace-me\u003e \u0026\u0026 ffrelayctl profiles list\n```\n\n## Usage\n\n```bash\nffrelayctl is A CLI for Firefox Relay.\n\nUsage:\n  ffrelayctl [command]\n\nAvailable Commands:\n  help                           # Display help for any command\n  contacts list                  # List phone contacts (premium only)\n  contacts update                # Update a phone contact (premium only)\n  masks list                     # List all masks\n  masks get                      # Get a mask\n  masks create                   # Create a new mask\n  masks update                   # Update a mask\n  masks delete                   # Delete a mask\n  phones list                    # List phone masks (premium only)\n  phones discover                # Discover phone masks available (premium only)\n  phones search                  # Search phone masks by area code (premium only)\n  phones update                  # Update a phone mask (premium only)\n  phones forward list            # List forwarding numbers (premium only)\n  phones forward get             # Get forwarding number (premium only)\n  phones forward register        # Register forwarding number (premium only)\n  phones forward verify          # Verify forwarding number (premium only)\n  phones forward delete          # Delete forwarding number (premium only)\n  profiles list                  # List available Relay profiles\n  users list                     # List users for Relay account\n  export                         # Export all Firefox Relay account data\n\nUse \"ffrelayctl [command] --help\" for more information about a command.\n```\n\n## Examples\n\n```bash\n# Fetch the custom domain in use (premium only)\n$ ffrelayctl profiles list --output json | jq '.[].subdomain'\n\n# Generate a random mask\n$ ffrelayctl masks create --description \"GitHub\" --generated-for \"github.com\"\n\n# List all enabled masks\n$ ffrelayctl masks list --output json | jq '.[] | select(.mask.enabled == true)'\n\n# List email addresses in use by all masks\n$ ffrelayctl masks list --output json | jq '.[].mask.full_address'\n\n# List all masks containing \"newsletter\" in the description\n$ ffrelayctl masks list --output json | jq '.[] | select(.mask.description | test(\"newsletter\"; \"i\"))'\n\n# Count total forwarded emails from random masks\n$ ffrelayctl masks list --random=true --output json | jq '[.[].num_forwarded] | add'\n\n# Count total masks\n$ ffrelayctl masks list --output json | jq '.[].mask.id' | wc -l\n\n# List phone masks\n$ ffrelayctl phones list --output json | jq\n\n# List all phone numbers that have texted your Relay number\n$ ffrelayctl contacts list --output json | jq '[.[] | select(.last_inbound_type == \"text\")]'\n\n# List all masks using Docker\n$ docker run --rm -e FFRELAYCTL_KEY=\u003creplace-me\u003e ffrelayctl profiles list\n```\n\n## Development\n\n### Setup\n\nAfter cloning this repository, run:\n```bash\n$ make setup\n```\n\n## Disclaimer\n\nThis is an unofficial CLI not affiliated with or endorsed by Mozilla or Firefox Relay.\n\n## License\n\nLicensed under [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](./LICENSE) for details.\n\nCopyright (c) 2026 hasteful.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhastefui%2Fffrelayctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhastefui%2Fffrelayctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhastefui%2Fffrelayctl/lists"}