flutter-url-launcher-engineering

flutter-url-launcher-engineering is a skill for Claude Code, Codex from ariaramin/flutter-skills. It costs 124 tokens per session (3,853 once invoked), scanned A, original, MIT.

A coding guide for opening websites, email, phone, message, map, app-store, and custom-scheme links from Flutter through the operating system. The url_launcher package hands a URI to an available external app or browser; it does not complete the external action itself.

In plain words
What is it for?
Use it for trusted and user-provided URLs, mailto, tel, SMS, maps, app stores, deep links, Universal Links, Android package visibility, fallback handling, and platform-specific tests.
Why use it?
It helps construct and validate links safely, choose an intentional launch mode, handle unsupported destinations, and account for Android, iOS, and other platform differences. It also distinguishes opening a link from confirming that the resulting business action succeeded.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it for trusted and user-provided URLs, mailto, tel, SMS, maps, app stores, deep links, Universal Links, Android package visibility, fallback handling, and platform-specific tests.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ariaramin/flutter-skills/flutter-url-launcher-engineering
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add ariaramin/flutter-skills --skill flutter-url-launcher-engineering
Clone the repo
git clone --depth 1 https://github.com/ariaramin/flutter-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for flutter-url-launcher-engineering

README.md
[![agentmods](https://agentmods.dev/badge/skills/ariaramin/flutter-skills/flutter-url-launcher-engineering/github.svg)](https://agentmods.dev/skills/ariaramin/flutter-skills/flutter-url-launcher-engineering)
Your own site
<a href="https://agentmods.dev/skills/ariaramin/flutter-skills/flutter-url-launcher-engineering"><img src="https://agentmods.dev/badge/skills/ariaramin/flutter-skills/flutter-url-launcher-engineering/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for flutter-url-launcher-engineering

Your own site · 80×15
<a href="https://agentmods.dev/skills/ariaramin/flutter-skills/flutter-url-launcher-engineering"><img src="https://agentmods.dev/badge/skills/ariaramin/flutter-skills/flutter-url-launcher-engineering.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 124 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,853 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00124 $0.03853
Opus 5.5 $0.00050 $0.01541
Sonnet 5.5 $0.00025 $0.00771
Haiku 4.5 $0.00012 $0.00385

Measured 5d ago against content hash eb066ff5ad33, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

flutter-url-launcher-engineering scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/flutter-url-launcher-engineering/SKILL.md · 446 lines

How it starts

The opening of the file, as written. The whole thing — 446 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Flutter url_launcher Engineering

Mission

Treat url_launcher as a platform handoff API, not a browser framework or proof that an external business action completed. Use this loop:

identify external action
→ decide whether url_launcher is appropriate
→ classify destination trust
→ construct a safe Uri
→ choose an intentional LaunchMode
→ query capability only if it changes UX
→ launch once
→ handle false/exception with fallback
→ verify downstream business completion separately
→ test platform-specific behavior

Non-negotiable rules

  1. Use launchUrl(Uri, ...); do not introduce deprecated string-based launch/canLaunch APIs.
  2. Use Uri.parse only for known complete trusted constants; use structured Uri construction for dynamic components.
  3. For dynamic HTTP(S) query values, use queryParameters rather than string concatenation.
  4. For non-HTTP(S) schemes such as mailto:, follow the package's documented query + Uri.encodeComponent workaround.
  5. Treat API, CMS, chat, QR, push, deep-link, remote-config, and user-provided destinations as untrusted.
  6. Allow only intentional schemes and validate exact hosts when the destination is product-controlled.
  7. Prefer HTTPS for ordinary web navigation when policy requires trusted web transport; reject disallowed HTTP rather than silently rewriting arbitrary URLs.
  8. Do not put credentials, session secrets, private keys, or server secrets into externally launched URLs unless a reviewed protocol explicitly requires it.
  9. Do not log complete sensitive URIs, query strings, or fragments.
  10. Choose LaunchMode from required UX semantics. Do not rely on today's observed platformDefault behavior when the surface matters.
  11. Both in-app modes require HTTP(S); do not use them for tel:, mailto:, sms:, or arbitrary custom schemes.
  12. Prefer attempting launchUrl and handling failure when capability detection is not needed for pre-launch UI.
  13. Treat canLaunchUrl as a platform-sensitive query that may return false because visibility/querying is restricted.
  14. Use supportsLaunchMode only when automatic fallback would violate product requirements.
  15. Add Android <queries> and iOS LSApplicationQueriesSchemes only when the app genuinely needs capability querying.
  16. On web, preserve direct user-gesture context for new tab/window launches.
  17. Never interpret launchUrl == true as proof of email delivery, call completion, SMS send, OAuth authentication, payment, purchase, installation, or any other external result.
  18. Custom schemes are routing mechanisms, not verified application identity.
  19. Use verified HTTPS/App Link/Universal Link mechanisms when target identity matters.
  20. Keep internal Flutter navigation in the router/Navigator, not url_launcher.
  21. Use a dedicated WebView/browser integration when the app needs rich embedded browsing controls.
  22. Keep external navigation as a presentation/platform side effect unless a deliberate application abstraction adds security, fallback, observability, or testing value.
  23. Prevent harmful duplicate launches when rapid repeated taps could open multiple windows/apps.
  24. Test Android, iOS, web, and desktop behavior independently where supported.
  25. Inspect resolved federated platform package versions before making implementation-specific claims.

Read the full file on GitHub · 446 lines

Files

What ships with it

5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 446 lines · 124 tokens per session scan A eb066ff5ad33

Subscribe to this mod's changes

flutter-url-launcher-engineering is a skill published in the GitHub repository ariaramin/flutter-skills (6 stars, last pushed 6d ago), licensed MIT. It adds 124 tokens to every session and 3,853 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-11.