CLI for Google Material Symbols — search 3,900+ icons, download SVGs, generate Android Vector Drawable XML, and produce HTML/CSS code snippets.
Use the material-symbols-cli skill when you need to:
If material-symbols-cli is not found, install and build it:
bash
bun --version || curl -fsSL https://bun.sh/install | bash
npx api2cli bundle material-symbols
npx api2cli link material-symbols
api2cli link adds ~/.local/bin to PATH automatically. The CLI is available in the next command.
Always use --json flag when calling commands programmatically.
--json for agent-driven calls so downstream steps can parse the result.--help if the exact action or flags are unclear instead of guessing.No authentication required. Material Symbols is open source (Apache 2.0).
Search, get info, and download Material Symbols icons.
CommandDescriptionKey Flagsicons listList all icons, optionally filtered by search--search, --limit, --fields``icons search <query>Search icons by keyword with details--limit``icons get <name>Get detailed info about an icon (all URLs)—icons download <name>Download an icon SVG--style, --fill, --weight, --output``icons stylesList available styles (outlined, rounded, sharp)—icons weightsList available weights (100–700)—
Generate and download Android Vector Drawable XML icons.
CommandDescriptionKey Flagsandroid generate <name>Generate Android XML for an icon--style, --fill, --size, --output``android download <name>Download all Android XML sizes for an icon--style, --fill, --output-dir``android sizesList available Android icon sizes—
Generate Kotlin/Jetpack Compose code snippets.
CommandDescriptionKey Flagscompose icon <name>Generate a Kotlin composable function using the icon--style, --size, --package, --composable-name``compose preview <name>Generate a @Preview composable--style, --size``compose migration-guideShow migration guide from material-icons-extended to Material Symbols—
Generate code snippets for using Material Symbols in your project.
CommandDescriptionKey Flagscode html <name>Generate HTML/CSS snippet--style, --fill, --weight, --grade, --size, --color``code cssGenerate CSS with font-variation-settings--style, --fill, --weight, --grade, --opsz``code font-faceGenerate @font-face CSS for self-hosting--style, --format
--json returns a standardized envelope:
json
{ "ok": true, "data": { ... }, "meta": { "total": 42 } }
On error: { "ok": false, "error": { "message": "...", "status": 401 } }
bash
material-symbols-cli --help # List all resources and global flags
material-symbols-cli <resource> --help # List all actions for a resource
material-symbols-cli <resource> <action> --help # Show flags for a specific action
bash
# Search icons
material-symbols-cli icons list --search home --limit 10
material-symbols-cli icons search arrow --json
# Download an SVG
material-symbols-cli icons download search --style outlined --output icon.svg
# Generate Android XML
material-symbols-cli android generate search --style outlined --size 24 --output res/drawable/ic_search.xml
# Download all Android sizes
material-symbols-cli android download search --style outlined --output-dir app/src/main/res/drawable
# Generate web code
material-symbols-cli code html settings --style rounded --weight 500 --json
All commands support: --json, --format <text|json|csv|yaml>, --verbose, --no-color, --no-header
Exit codes: 0 = success, 1 = API error, 2 = usage error