gitwtfhub

wtf is chrome-to-safari?

vatsal057/chrome-to-safari — explained in plain English

Analysis updated 2026-05-18

19SwiftAudience · developerComplexity · 3/5LicenseSetup · moderate

TL;DR

A macOS command line tool and app that converts Chrome extensions into Safari extensions signed with a free Apple ID, so they stay enabled permanently.

Mindmap

mindmap
  root((repo))
    What it does
      Converts Chrome extensions
      Signs with free Apple ID
      Keeps extension enabled
    Tech stack
      Swift
      Xcode build tools
      Apple codesigning
    Use cases
      Use unsigned Chrome extensions
      Convert from store link
      Avoid paid dev account
    Audience
      Mac developers
      Power users
    Limitations
      Per machine signing
      Certificate expires yearly
      Not all Chrome APIs supported

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

Why would anyone build with this?

REASON 1

Convert a Chrome Web Store extension link directly into a signed Safari extension

REASON 2

Turn a local unpacked Chrome extension folder into a Safari app

REASON 3

Keep an unsigned extension enabled in Safari without re-approving it after every restart

REASON 4

Re-sign an extension when its free Apple certificate expires

What's in the stack?

SwiftXcodexcodebuildAppleScript codesigning

How it stacks up

vatsal057/chrome-to-safaridai-ski/lyralageev/focusmic
Stars191919
LanguageSwiftSwiftSwift
Setup difficultymoderatemoderateeasy
Complexity3/52/52/5
Audiencedevelopergeneralgeneral

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

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires the full Xcode app (not just Command Line Tools) and a one-time free Apple Development certificate.

MIT license: use, copy, modify, and distribute freely, provided as is with no warranty.

Wtf does this do

chrome-to-safari is a macOS tool that turns a Chrome browser extension into a signed Safari extension, without needing a paid Apple Developer account. Safari can run Chrome style extensions, but unsigned ones get disabled every time Safari restarts, forcing you to re-enable them each time in the Develop menu. This tool fixes that by signing the extension with a free Apple ID, so once you turn it on in Safari it stays on for good. Getting started takes two steps. First you create a free signing certificate through Xcode by signing in with your Apple ID, no paid membership required. Then you either open the included app with a UI, where you can drop in an unpacked extension folder or paste a Chrome Web Store link and click Convert, or you use the command line version and point it at a folder or a store link directly. Behind the scenes the tool downloads the extension if you gave it a store link, reads its manifest file to figure out a name, converts it using Apple's own safari-web-extension-converter, fixes a known bug where the converter creates mismatched bundle identifiers, builds the project with Xcode's build tool using your free certificate, verifies the resulting signature, and installs the finished app into Applications before launching it and Safari together. It also cleans up the temporary build files it created unless you ask it to keep them. There are real limits worth knowing. A development signed app only works on the Mac that built it, so you cannot hand the finished app to someone else, they would need to run the script themselves. Not every Chrome extension feature exists in Safari, and the conversion step will warn about anything unsupported. Free certificates expire after about a year and need re-signing. The project requires macOS with the full Xcode app installed, not just the command line tools. It is released under the MIT license, and its own privacy policy states that nothing is collected or transmitted.

Yoink these prompts

Prompt 1
Walk me through setting up a free Apple Development certificate in Xcode so I can use chrome-to-safari.
Prompt 2
Show me the command to convert a Chrome Web Store link into a signed Safari extension with chrome-to-safari.
Prompt 3
Explain what the --build-only flag does in chrome-to-safari.sh and when I would use it.
Prompt 4
Help me troubleshoot why my converted extension isn't showing up in Safari's Extensions settings.

Frequently asked questions

wtf is chrome-to-safari?

A macOS command line tool and app that converts Chrome extensions into Safari extensions signed with a free Apple ID, so they stay enabled permanently.

What language is chrome-to-safari written in?

Mainly Swift. The stack also includes Swift, Xcode, xcodebuild.

What license does chrome-to-safari use?

MIT license: use, copy, modify, and distribute freely, provided as is with no warranty.

How hard is chrome-to-safari to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is chrome-to-safari for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.