Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/cometchat/cometchat-skillsnpx agentmods add skills/cometchat/cometchat-skills/cometchat-flutter-v6-eventsWrote 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.
[](https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-flutter-v6-events)<a href="https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-flutter-v6-events"><img src="https://agentmods.dev/badge/skills/cometchat/cometchat-skills/cometchat-flutter-v6-events/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.
<a href="https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-flutter-v6-events"><img src="https://agentmods.dev/badge/skills/cometchat/cometchat-skills/cometchat-flutter-v6-events.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00107 | $0.01521 |
| Opus 5.5 | $0.00043 | $0.00608 |
| Sonnet 5.5 | $0.00021 | $0.00304 |
| Haiku 4.5 | $0.00011 | $0.00152 |
Grade A, and why
cometchat-flutter-v6-events 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 1mo 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.
How it starts
The opening of the file, as written. The whole thing — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ground truth: every listener symbol below is catalog-verified against 6.1.0. There are TWO event systems and they are not interchangeable — the exact callback set for each is FETCHED from
events(UI events) and the SDK'sreal-time-listenersvia../cometchat-flutter-v6-core/references/docs-map.md.
Companion skills (read first)
cometchat-flutter-v6-core— install, credentials,init→login→render. This skill ASSUMES it.
Use this skill when
"do something when a message arrives", "update a badge count", "refresh my screen when a group changes", "cometchat listener" — anything reactive OUTSIDE what the kit's widgets already do for themselves.
Prerequisites & install
Covered by core. No new package.
First: do you actually need a listener?
The kit's widgets are already live. CometChatConversations updates its own unread counts, CometChatMessageList appends incoming messages, CometChatMessageHeader shows typing and presence — all without a single listener from you. Add one only for something OUTSIDE the kit's surface: an app-level badge, an analytics hook, a push registration, navigating on an incoming call.
Adding a listener to "make the list update" is the most common mistake here — it already does.
The two systems (BAKED)
| SDK listeners | UI Kit events | |
|---|---|---|
| Source | the server, via CometChat.* |
the kit's own widgets |
| Register | CometChat.addMessageListener(id, this) |
CometChatMessageEvents.addMessagesListener(id, this) |
| Mixin | MessageListener · CallListener · UserListener · GroupListener · ConnectionListener |
CometChatMessageEventListener · CometChatGroupEventListener · CometChatUserEventListener · CometChatConversationEventListener |
| Answers | "the server says X happened" | "the user did X in the kit" |
| Use for | badges, push, incoming calls, analytics | reacting to a kit action (message sent from the composer, group left via the kit) |
SDK listener — server-side truth:
import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
import 'package:flutter/material.dart';
class BadgeHost extends StatefulWidget {
const BadgeHost({super.key});
@override
State<BadgeHost> createState() => _BadgeHostState();
}
class _BadgeHostState extends State<BadgeHost> with MessageListener {
static const _id = "app_badge";
@override
void initState() {
super.initState();
CometChat.addMessageListener(_id, this);
}
@override
void dispose() {
CometChat.removeMessageListener(_id); // ALWAYS remove — see lifecycle below
super.dispose();
}
@override
void onTextMessageReceived(TextMessage message) {
// bump an app-level unread badge
}
@override
Widget build(BuildContext context) => const SizedBox.shrink();
}
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.
- 1mo ago Changed · -95 lines · -61 tokens per session d452f9929de7
- 1mo ago First seen · 218 lines · 168 tokens per session scan A 7fb2c1121e23
cometchat-flutter-v6-events is a skill published in the GitHub repository cometchat/cometchat-skills (157 stars, last pushed 12d ago), licensed MIT. It adds 107 tokens to every session and 1,521 once invoked, about $0.0004 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-09-03.
Other skills, from other repositories
compose-data
Owns repositories, data sources and mapping for Compose and Compose Multiplatform apps: DTO to domain to UiModel boundaries, Ktor clients and bearer auth, WebSocket and SSE, Room, DataStore, Paging 3, offline-first and data-layer tests. Use when writing or reviewing a repository, data source, DTO, mapper, HttpClient…
stream-flutter
Build and integrate Stream Chat, Video, and Feeds in Flutter apps. Use for Flutter/Dart project work with Stream package setup, auth wiring, and widget blueprints. Supports streamchatflutter (pre-built Chat UI), streamchatfluttercore (custom Chat UI), streamvideoflutter (Video calling and livestreaming), and…
trtc-push
A developer assistant for TIMPush, Tencent Cloud's service for sending push notifications through Android, iOS, Flutter, uni-app, HarmonyOS, and server integrations.
trtc-call
A guide for adding Tencent Cloud TRTC Call, a real-time audio and video calling service, to a Flutter app. It covers one-to-one calls, group calls, and call buttons inside an existing chat screen.
trtc-voice-ai-starter
A starter guide for adding conversational voice AI with TRTC, a real-time communications service. It provides a guided Web integration path and redirects iOS and Android requests to separate documentation.
cloudkit-sync
Sync SwiftData / Core Data across a user's devices with CloudKit, plus CKShare collaboration and conflict handling. Use when adding iCloud sync, "sync across devices", SwiftData + CloudKit, NSPersistentCloudKitContainer, sharing records between users, or debugging why data isn't syncing. Trigger on "CloudKit", "iCloud…