{"id":51511657,"url":"https://github.com/maptiler/maptiler-skills","last_synced_at":"2026-07-08T07:01:24.445Z","repository":{"id":342196515,"uuid":"1167749573","full_name":"maptiler/maptiler-skills","owner":"maptiler","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-18T13:41:55.000Z","size":1132,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T15:17:48.551Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maptiler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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-02-26T16:34:30.000Z","updated_at":"2026-06-18T14:59:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/maptiler/maptiler-skills","commit_stats":null,"previous_names":["maptiler/agent-skill","maptiler/agent-skills","maptiler/maptiler-skills"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maptiler/maptiler-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maptiler%2Fmaptiler-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maptiler%2Fmaptiler-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maptiler%2Fmaptiler-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maptiler%2Fmaptiler-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maptiler","download_url":"https://codeload.github.com/maptiler/maptiler-skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maptiler%2Fmaptiler-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35255352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-08T02:00:06.796Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-07-08T07:01:23.472Z","updated_at":"2026-07-08T07:01:24.435Z","avatar_url":"https://github.com/maptiler.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"./images/maptiler-logo.png\" alt=\"Company Logo\" height=\"32\"/\u003e\n\n# MapTiler — Agent Skill\n\nExpert coding skill for building location-aware applications across the full MapTiler platform. It gives AI coding agents the context to generate correct, production-ready code using MapTiler Cloud APIs, the MapTiler SDK, MapTiler GeoSplats SDK\nmobile SDKs, and on-premise tools.\n\nBuilt on the Agent Skills open standard, so the same skill works across Claude Code, Gemini CLI, Cursor, Windsurf, and other compatible AI agents.\n\n---\n\n🌐 [Website](https://www.maptiler.com/) \u0026nbsp; 🔑 [Get API Key](https://cloud.maptiler.com/account/keys/)\n\n---\n\n\u003cbr\u003e\n\n\u003cdetails\u003e \u003csummary\u003e\u003cb\u003eTable of Contents\u003c/b\u003e\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#what-it-does\"\u003eWhat it does\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#how-skills-plugins-and-agents-fit-together\"\u003eHow skills, plugins, and agents fit together\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-repository-layout\"\u003eRepository layout\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-platform-coverage--file-prefix-conventions\"\u003ePlatform Coverage \u0026 File Prefix Conventions\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#links\"\u003eLinks\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-support\"\u003eSupport\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\n## What it does\n\nA skill is on-demand expertise: the agent loads it only when your request matches the skill's description, then follows its instructions instead of guessing. When you ask for maps, geocoding, weather, elevation, vector tiles, or any geospatial feature, this skill makes the agent:\n\n- **Generate platform-correct code** for web (MapTiler SDK JS, Leaflet, OpenLayers), frameworks (React, Svelte, Vue, Angular, Cesium, deck.gl), mobile (iOS Swift, Android Kotlin, Flutter, React Native), and on-premise (MapTiler Server, MapTiler Engine).\n- **Call the right Cloud REST API** (geocoding, weather, static maps, elevation, tiles, coordinates, IP geolocation, admin/tilesets) with correct endpoints and auth patterns.\n- **Apply modern v4 styles automatically**, upgrading deprecated `*-v2` / `*-v3` style IDs wherever they appear.\n- **Use pinned, current versions** for every SDK, CDN script, and dependency, with no unresolved template placeholders.\n- **Cross-reference vector tile schemas** (Planet v4, Buildings, Contours, Outdoor, Ocean, Landcover, Landform, Cadastre) before inventing source-layer names, paint expressions, or filter keys.\n- **Handle framework lifecycle correctly** — WebGL cleanup, stale-closure prevention in React, isolated reactivity, ES module vs UMD CDN selection.\n\n## How skills, plugins, and agents fit together\n\nIt helps to keep three layers separate, because the install steps below differ by layer:\n\n1.  **The skill** is the portable content: a `SKILL.md` plus a `references/` folder. This is what every agent actually reads, and it's identical across tools.\n2.  **The plugin** is a Claude Code–specific wrapper for distributing the skill through a marketplace. Other tools don't use it.\n3.  **The agent** (Claude Code, Gemini CLI, Cursor, Windsurf…) is the tool that loads the skill from its own skills directory.\n\nSo there are three ways to install: with the [Skills CLI](https://github.com/vercel-labs/skills) (`npx skills add`, auto-detects your agent and works across dozens of them), through the Claude Code plugin marketplace (Claude Code only), or by copying the skill folder into any agent's skills directory (works everywhere).\n\nWhat triggers a skill is the same in every tool: the description field in the `SKILL.md` frontmatter. The agent matches your request against that description to decide whether to activate the skill, so installation alone isn't enough — the skill also has to be registered and triggered.\n\n\u003cbr\u003e\n\n## 📦 Installation\n\n### Universal — via Skills CLI\n\nWorks with Claude Code, Gemini CLI, Cursor, Windsurf, and dozens of other agents. The [Skills CLI](https://github.com/vercel-labs/skills) auto-detects which agents you have installed and sets the skill up for each one, so you don't need to know the target directory yourself:\n\n```bash\nnpx skills add maptiler/maptiler-skills\n```\n### Claude Code — as a plugin\n\nAdd the marketplace, install the plugin, then reload so the skill registers:\n\n```bash\n/plugin marketplace add maptiler/maptiler-skills\n/plugin install maptiler@maptiler-skills\n/reload-plugins\n```\n\n### Gemini CLI\n\nInstall straight from the repository with a single command:\n\n#### Windows (PowerShell)\n\n```powershell\ngit clone https://github.com/maptiler/maptiler-skills.git; mkdir \"$HOME\\.gemini\\skills\\maptiler\" -Force; cp -Recurse maptiler-skills\\skills\\* \"$HOME\\.gemini\\skills\\maptiler\\\"; rm -Recurse -Force maptiler-skills\n```\n\n#### Linux \u0026 macOS (bash)\n\n```bash\ngit clone https://github.com/maptiler/maptiler-skills.git \u0026\u0026 mkdir -p ~/.gemini/skills/maptiler \u0026\u0026 cp -r maptiler-skills/skills/* ~/.gemini/skills/maptiler/ \u0026\u0026 rm -rf maptiler-skills\n```\n\nOr copy it in manually:\n\n```bash\n# Global (every project)\ncp -r skills/maptiler ~/.gemini/skills/\n\n# Project (run /trust in the session afterward, then restart)\nmkdir -p .gemini/skills \u0026\u0026 cp -r skills/maptiler .gemini/skills/\n```\n\n### Cursor\n\nProject-scoped only. Copy the skill folder into the project's skills directory:\n\n```bash\nmkdir -p .cursor/skills \u0026\u0026 cp -r skills/maptiler .cursor/skills/\n```\n\n### Windsurf\n\nProject-scoped, read by the Cascade agent. Copy the skill folder in:\n\n```bash\nmkdir -p .windsurf/skills \u0026\u0026 cp -r skills/maptiler .windsurf/skills/\n```\n\n\u003e [!NOTE]\n\u003e Claude Code–specific frontmatter fields (such as `allowed-tools`) are ignored by Windsurf without causing errors.\n\n### Other agents\n\nAny tool that supports the Agent Skills standard can use this skill. The [Skills CLI](https://github.com/vercel-labs/skills) above already knows the skills directory for dozens of agents, so try `npx skills add maptiler/maptiler-skills` first. Otherwise, place the `maptiler` folder (containing `SKILL.md` and `references/`) wherever that agent looks for skill definitions.\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n## 📘 Repository layout\n\n```\n.claude-plugin/\n  marketplace.json    — Claude Code marketplace manifest\n  plugin.json         — Claude Code plugin manifest\nskills/\n  maptiler/\n    SKILL.md          — Skill entry point (always loaded when triggered)\n    references/\n      INDEX.md                          — Curated catalog of high-value docs\n      versions.md                       — Pinned versions of every library \u0026 dependency\n      cloud-api-*.md                    — Cloud REST APIs (geocoding, weather, static, …)\n      cloud-admin-api-*.md              — Admin API (tilesets, uploads, analytics, keys)\n      sdk-js-*.md                       — MapTiler SDK JS core\n      web-libraries-*.md                — React, Vue, Svelte, Angular, Leaflet, OL, Cesium, deck.gl\n      mobile-sdks-*.md                  — iOS, Android, Flutter, React Native\n      on-prem-*.md                      — Self-hosted Server \u0026 Tile Engine CLI\n      map-resources-schemas-*.md        — Vector tile schemas (Planet v4, Buildings, …)\n      map-resources-specifications-*.md — MapLibre style spec (layers, sources, expressions)\n      examples-*.md                     — Runnable per-platform examples\n      complex-dds-expressions-guide.md  — Data-driven styling deep dive\nREADME.md             — This file\n```\n\nFor the Claude Code plugin to expose the skill, `SKILL.md` must live at `skills/maptiler/SKILL.md` — not at the repository root, and not inside `.claude-plugin/`. Only the manifests go in `.claude-plugin/`.\n\n\u003cbr\u003e\n\n## 💡 Platform Coverage \u0026 File Prefix Conventions\n\nTo avoid cross-platform contamination when searching, use these filename prefix filters in the `references/` directory:\n\n| Target Platform                                                | File Name Prefix                                                                                     |\n| :------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- |\n| **Web** (Core JS SDK)                                          | `sdk-js-*`, `examples-sdk-js-*`                                                                      |\n| **Web Frameworks** (React, Svelte, Vue, Angular)               | `web-libraries-*`, `examples-react-*`, `examples-svelte-*`, `examples-vuejs-*`, `examples-angular-*` |\n| **Web Mapping Engines** (Leaflet, OpenLayers, Cesium, deck.gl) | `examples-leaflet-*`, `examples-openlayers-*`, `examples-cesium-*`, `web-libraries-deck-gl*`         |\n| **Android** (Kotlin/Java)                                      | `mobile-sdks-android-*`, `examples-android-*`                                                        |\n| **iOS** (Swift)                                                | `mobile-sdks-ios-*`, `examples-ios-*`                                                                |\n| **Cross-Platform Mobile** (Flutter, React Native)              | `mobile-sdks-flutter-*`, `mobile-sdks-react-native-*`                                                |\n| **Cloud REST APIs**                                            | `cloud-api-*`, `cloud-admin-api-*`                                                                   |\n| **On-Premise Infrastructure**                                  | `on-prem-*`                                                                                          |\n| **Vector Tile Schemas**                                        | `map-resources-schemas-*`                                                                            |\n| **MapLibre Style Spec**                                        | `map-resources-specifications-*`                                                                     |\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n## 🚀 Prerequisites\n\n- A MapTiler API key from [cloud.maptiler.com](https://cloud.maptiler.com).\n\n\u003cbr\u003e\n\n## Links\n\n- [MapTiler Cloud Console](https://cloud.maptiler.com)\n- MapTiler SDK JS · [Docs](https://docs.maptiler.com/sdk-js/) · [GitHub](https://github.com/maptiler/maptiler-sdk-js) · [NPM](https://www.npmjs.com/package/@maptiler/sdk)\n- [MapTiler GeoSplats SDK](https://docs.maptiler.com/geosplats-sdk/)\n- [MapTiler iOS SDK](https://docs.maptiler.com/mobile-sdk/ios/)\n- [Android SDK](https://docs.maptiler.com/mobile-sdk/android/)\n- [MapTiler Server](https://docs.maptiler.com/guides/on-prem/server/)\n- [MapTiler Engine](https://docs.maptiler.com/guides/on-prem/engine/)\n\n---\n\n\u003cbr\u003e\n\n## 💬 Support\n\n- 📚 [Documentation](https://docs.maptiler.com/) - Comprehensive guides and API reference\n- ✉️ [Contact us](https://maptiler.com/contact) - Get in touch or submit a request\n- 🐦 [Twitter/X](https://twitter.com/maptiler) - Follow us for updates\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n## 🤝 Contributing\n\nWe love contributions from the community! Whether it's bug reports, feature requests, or pull requests, all contributions are welcome:\n\n- Fork the repository and create your branch from `main`\n- If you've added code, add tests that cover your changes\n- Ensure your code follows our style guidelines\n- Give your pull request a clear, descriptive summary\n- Open a Pull Request with a comprehensive description\n\n\u003cbr\u003e\n\n## 📄 License\n\nThis project is licensed under the MIT – see the [LICENSE](./LICENSE.md) file for details.\n\n\u003cbr\u003e\n\n\u003cp align=\"center\" style=\"margin-top:20px;margin-bottom:20px;\"\u003e \u003ca href=\"https://cloud.maptiler.com/account/keys/\" style=\"display:inline-block;padding:12px 32px;background:#F2F6FF;color:#000;font-weight:bold;border-radius:6px;text-decoration:none;\"\u003e Get Your API Key \u003csup style=\"background-color:#0000ff;color:#fff;padding:2px 6px;font-size:12px;border-radius:3px;\"\u003eFREE\u003c/sup\u003e\u003cbr /\u003e \u003cspan style=\"font-size:90%;font-weight:400;\"\u003eStart building with 100,000 free map loads per month ・ No credit card required.\u003c/span\u003e \u003c/a\u003e \u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e 💜 Made with love by the \u003ca href=\"https://www.maptiler.com/\"\u003eMapTiler\u003c/a\u003e team \u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.maptiler.com/\"\u003eWebsite\u003c/a\u003e •\n  \u003ca href=\"https://docs.maptiler.com/\"\u003eDocumentation\u003c/a\u003e •\n  \u003ca href=\"https://github.com/maptiler/maptiler-skills\"\u003eGitHub\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaptiler%2Fmaptiler-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaptiler%2Fmaptiler-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaptiler%2Fmaptiler-skills/lists"}