Skip to main content
Glama
ByteFlipper-58

material-icons-agent-skill

README.md
<div align="center">

<img src="social-preview.jpg" width="100%" alt="Material Icons Agent Skill Banner" />

# Material Icons Agent Skill

### One icon workflow for every AI coding agent.

Search, import, migrate, validate, and maintain official Google Material Symbols<br>across **Codex · Claude · Gemini · Antigravity · Cursor · Grok**

<br>

[![Version](https://img.shields.io/badge/version-0.1.0-7C3AED?style=for-the-badge)](docs/versioning.md)
[![Agent Skills](https://img.shields.io/badge/Agent_Skills-compatible-0F766E?style=for-the-badge)](https://agentskills.io/home)
[![MCP](https://img.shields.io/badge/MCP-stdio-2563EB?style=for-the-badge)](docs/mcp.md)
[![License](https://img.shields.io/badge/license-MIT-15803D?style=for-the-badge)](LICENSE)

<br>

[**Quick start**](#-quick-start) · [**Documentation**](docs/README.md) · [**Русский**](docs/ru/README.md) · [**MCP tools**](docs/mcp.md)

<br>

<img src="https://img.shields.io/badge/Codex-412991?style=for-the-badge&logo=openai&logoColor=white" alt="Codex" />
<img src="https://img.shields.io/badge/Claude-CC785C?style=for-the-badge&logo=anthropic&logoColor=white" alt="Claude" />
<img src="https://img.shields.io/badge/Gemini-4285F4?style=for-the-badge&logo=googlegemini&logoColor=white" alt="Gemini" />
<img src="https://img.shields.io/badge/Cursor-1E1E1E?style=for-the-badge" alt="Cursor" />
<img src="https://img.shields.io/badge/Antigravity-34A853?style=for-the-badge&logo=google&logoColor=white" alt="Antigravity" />
<img src="https://img.shields.io/badge/Grok-000000?style=for-the-badge&logo=x&logoColor=white" alt="Grok" />

</div>

<br>

> [!NOTE]
> **Version 0.1.0** — The kit is local-first: it uses official Google sources, does not overwrite assets by default, and requires explicit confirmation for destructive changes.

---

## 🔭 How it works

```text
  💬  User request
       ↓
  🧠  Agent Skill ──── understands intent, platform, style, states, accessibility
       ↓
  🔧  MCP + CLI ────── searches, imports, previews, migrates, audits, validates
       ↓
  📦  Project ───────── Android Compose · Android Views · Flutter · Web · React · Vue
```

<table>
  <tr>
    <th>🎯 Need</th>
    <th>✅ Included capability</th>
  </tr>
  <tr>
    <td><strong>Find the right symbol</strong></td>
    <td>Semantic search, aliases, style filters, HTML preview</td>
  </tr>
  <tr>
    <td><strong>Add it correctly</strong></td>
    <td>Official Android VectorDrawable or SVG import</td>
  </tr>
  <tr>
    <td><strong>Modernize a project</strong></td>
    <td>Dry-run-first Compose migration to local resources</td>
  </tr>
  <tr>
    <td><strong>Keep it consistent</strong></td>
    <td>Asset audit, accessibility checks, selected/unselected states</td>
  </tr>
  <tr>
    <td><strong>Use any agent</strong></td>
    <td>Portable <code>SKILL.md</code>, host adapters, stdio MCP, and CLI</td>
  </tr>
</table>

---

## ⚡ Quick start

```powershell
git clone <repository-url> material-icons-agent-skill
cd material-icons-agent-skill
npm install
npm run setup
```

Start a new agent chat after setup. For **Claude App / Desktop / Cowork**, upload the generated `material-icons-claude-skill.zip` in **Customize → Skills → Create skill → Upload a skill**.

---

## 🚀 Choose your entry point

<details>
<summary><strong>💬 Ask an agent</strong></summary>
<br>

```text
Use $material-icons: choose a rounded save icon for an article and add it to my Android Views screen.
```

The agent reads the portable skill, detects your project environment, searches for the best icon, and imports it — all in one request.

</details>

<details>
<summary><strong>⌨️ Use the CLI</strong></summary>
<br>

```powershell
npm run cli -- search "save article" --style rounded
npm run cli -- migrate-compose --root C:\path\to\project
npm run cli -- skill:update
```

</details>

<details>
<summary><strong>🔌 Connect an MCP client</strong></summary>
<br>

```powershell
npm start
```

The server exposes search, import, preview, audit, environment detection, Compose migration, accessibility validation, optional wrappers, and an optional offline catalog.

See the full [MCP reference →](docs/mcp.md)

</details>

---

## 🧩 Command palette

| Goal | Command |
|:---|:---|
| 📥 Install into detected clients | `npm run setup` |
| 🔄 Refresh integrations after an update | `npm run skill:update` |
| 🗑️ Remove integrations | `npm run skill:remove` |
| ⌨️ Run the CLI | `npm run cli -- <command>` |
| ✅ Run syntax checks | `npm test` |

> [!TIP]
> Run a command for one host: `npm run setup -- --hosts Cursor`<br>
> Remove only one: `npm run skill:remove -- --hosts Cursor`<br>
> For global access in Cursor, ChatGPT, and Claude Desktop → set up a global [MCP server](docs/mcp.md).

---

## 📚 Documentation

<table>
  <tr>
    <th>📘 Start here</th>
    <th>📖 Go deeper</th>
  </tr>
  <tr>
    <td><a href="docs/installation.md">Installation and hosts</a></td>
    <td><a href="docs/skill-usage.md">Skill workflow</a> · <a href="docs/mcp.md">MCP reference</a></td>
  </tr>
  <tr>
    <td><a href="docs/android-and-policy.md">Android migration and policy</a></td>
    <td><a href="docs/automation.md">Automation and CI</a> · <a href="docs/versioning.md">Versioning</a></td>
  </tr>
  <tr>
    <td><a href="docs/ru/README.md">🇷🇺 Русская документация</a></td>
    <td><a href="SECURITY.md">Security policy</a> · <a href="CHANGELOG.md">Changelog</a></td>
  </tr>
</table>

---

## 🗂️ Repository map

```text
skills/material-icons/     🧠  Portable skill and deterministic helpers
src/                        🔧  MCP server and CLI
integrations/               🔌  MCP and host templates
templates/                  🏗️  Opt-in CI template
docs/                       📚  English + Russian documentation
```

---

## 👤 Developer

Built and maintained by **ByteFlipper** ([GitHub](https://github.com/ByteFlipper-58) · [Website](https://byteflipper.com) · [Telegram](https://t.me/byteflipper)).

This project is intentionally **local-first**: the skill is portable, the MCP server runs over stdio, and destructive operations require explicit confirmation. See [SECURITY.md](SECURITY.md) for the operational boundaries.

---

## 📄 License

The kit is licensed under [MIT](LICENSE). Google Material Symbols are provided separately under Apache-2.0; see [google/material-design-icons](https://github.com/google/material-design-icons).

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct operation: searching, importing, updating, deleting, auditing, validating, migrating, generating wrappers, syncing offline catalog, previewing, and detecting environment. Even similar tools like audit_icons and validate_icon_usage are clearly separated by their focus (duplicates/unused vs accessibility labels).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case. Singular nouns are used for single-item operations (import_icon, delete_icon) and plural nouns for multi-item operations (search_icons, preview_icons), demonstrating a clear and predictable semantic convention.

Tool Count5/5

11 tools is well within the ideal range for a specialized icon management skill. Each tool serves a distinct purpose in the workflow, and none are redundant or extraneous, making the set well-scoped for its domain.

Completeness5/5

The tool surface covers the full lifecycle of icon management: search, import, update, delete, audit, validate, migrate, generate wrappers, offline catalog, preview, and environment detection. There are no obvious gaps or dead ends for the stated purpose of managing Material Icons in projects.

Maintenance

ActivitySlowing
ResponsivenessNo issues