Show HN: Sfsym – Export Apple SF Symbols as Vector SVG/PDF/PNG

Sfsym is a command-line tool for exporting Apple SF Symbols as SVG, PDF, or PNG, utilizing macOS's native renderer to ensure identical geometry without needing Xcode or the SF Symbols app.
A command-line tool for exporting Apple SF Symbols as SVG, PDF, or PNG. The vector paths come directly from macOS's symbol renderer, so the output is the same geometry the system draws. No Xcode project, no redraw, and no runtime dependency on SF Symbols.app.
sfsym export heart.fill -f svg -o heart.svg
# 569B -> heart.svg
Before you use this
Licensing.SF Symbols are Apple property. The SF Symbols License permits their use only in artwork and mockups for apps that run on Apple platforms.sfsym
is a tool; the restriction applies to what you ship with the output it produces. Don't embed SF Symbols in an Android app or a generic website.Private API.The renderer reads a private ivar onNSSymbolImageRep
to reach the underlyingCUINamedVectorGlyph
object. This has been stable from macOS 13 through macOS 26, but Apple doesn't guarantee it. If a future release changes the layout,sfsym
fails fast rather than producing incorrect output.
brew install yapstudios/tap/sfsym
A prebuilt universal binary. No compile step, no Xcode dependency. Runs on macOS 13 (Ventura) or later, on Apple silicon or Intel.
Requires Xcode Command Line Tools (xcode-select --install
).
git clone https://github.com/yapstudios/sfsym.git
cd sfsym
Scripts/install.sh
The script builds a release binary and installs it at ~/.local/bin/sfsym
.
swift build -c release
cp -f .build/release/sfsym ~/.local/bin/sfsym
# Format is inferred from the -o extension.
sfsym export heart.fill -o heart.svg
# Colored and sized.
sfsym export star.fill --color '#FFD60A' --size 48 -o star.svg
# Short hex and alpha are both accepted.
sfsym export heart.fill --color '#f00' -o heart.svg
sfsym export heart.fill --color '#007AFF80' -o half.svg # fill-opacity preserved
# Multi-layer symbol with per-layer colors.
sfsym export cloud.sun.rain.fill \
--mode palette --palette '#4477ff,#ffcc00,#ff3b30' -o weather.svg
# Vector PDF with Apple's hierarchical opacity ladder.
sfsym export heart.fill -f pdf --mode hierarchical --color '#007AFF' -o heart.pdf
# PNG at 2x pixel density: --size 128 produces 256x256 pixels.
sfsym export cloud.sun.rain.fill -f png --mode multicolor --size 128 -o [email protected]
# Find a symbol by keyword or category, then export it.
sfsym list --search magnifyingglass
sfsym list --category weather --limit 10
Renders a single symbol. The output format is inferred from the -o
file extension (.svg
, .pdf
, or .png
); use -f
to override. The de
Source: Hacker News










