Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

AgentMeet

Agent-to-agent meeting coordination over email. Read Google Calendar, generate available slots, send protocol-formatted emails. Recipients click a time slot...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 48 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The stated purpose (reading Google Calendar and sending Gmail messages) is reasonable for a meeting coordination skill, but the SKILL.md and registry metadata are inconsistent about how the code is obtained/installed (npm vs bun metadata). The skill requires access to Google Calendar/Gmail but declares no credentials or config paths, and all examples import code from a user-local path (~/Dropbox/Dev/agentmeet), which is not provided by the registry and is an unusual requirement for a runtime skill.
!
Instruction Scope
The instructions tell the agent to cd into a specific user folder in Dropbox, run package installs there, import and execute local TypeScript/JS modules, and access the user's Google Calendar/Gmail via an oauth2Client. Those steps require reading/writing arbitrary files in the user's home/Dropbox and possessing OAuth credentials — neither of which are declared. The SKILL.md also promotes viral 'Add AgentMeet' links, which could encourage propagation without clear controls.
!
Install Mechanism
There is no formal install spec in the package, yet metadata contains an install command using bun, while SKILL.md suggests running npm install in a local Dropbox directory. For an instruction-only skill, instructing the agent to run package managers in arbitrary user paths is risky and inconsistent.
!
Credentials
The skill requires Google Calendar and Gmail access (OAuth or MCP) per the docs, but requires.env lists none and no primary credential is declared. The example code expects an oauth2Client but the skill gives no guidance for what credentials or environment variables the agent will need, which is disproportionate and ambiguous. Additionally, reading from ~/Dropbox/Dev/agentmeet implies file-system access beyond what's justified by the registry metadata.
Persistence & Privilege
always:false and normal autonomous invocation — no elevated platform privileges requested. However, the instructions cause the agent to run local code and install packages in user directories which can create persistent files or execute arbitrary code; this is a behavioral risk even though the skill doesn't request special platform privileges.
What to consider before installing
This skill is internally inconsistent and requires caution. Before installing: (1) Ask the publisher where the runtime code is supposed to come from — the SKILL.md points to ~/Dropbox/Dev/agentmeet (local dev copy) but the registry provides no code. (2) Require explicit declarations of the OAuth credentials or env vars the skill needs (Google OAuth client id/secret, refresh token, or an MCP) and limit scopes to only calendar/send mail. (3) Do not run npm/bun install or bun run in arbitrary home/Dropbox folders unless you trust the exact code in that folder; prefer a published package or a verified repo URL. (4) Verify the implementation source (GitHub repo/release) and review the code before executing; watch for any automatic propagation/viral links in outgoing emails. (5) Consider testing in an isolated account or sandbox with limited calendar data and a throwaway email before granting access to your main Google account.

Like a lobster shell, security has layers — review code before you run it.

Current versionv0.1.0
Download zip
calendarvk9763n5p60p1811kf0d7vbkt7983aw7pemailvk9763n5p60p1811kf0d7vbkt7983aw7platestvk9763n5p60p1811kf0d7vbkt7983aw7pprotocolvk9763n5p60p1811kf0d7vbkt7983aw7pschedulingvk9763n5p60p1811kf0d7vbkt7983aw7p

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

📅 Clawdis
OSmacOS · Linux
Binsbun

SKILL.md

AgentMeet — Agent-to-Agent Meeting Coordination

An open protocol for AI agents to coordinate meetings over email. No server. No domain. No account. Pure p2p.

How It Works

  1. Agent reads user's Google Calendar -> generates available slots
  2. Agent sends an HTML email where each time slot is a clickable mailto: link
  3. Recipient clicks a slot -> opens pre-filled reply with machine-readable payload
  4. Sender's agent detects the reply -> creates calendar events for both parties

Every invite email also includes an "Add AgentMeet" link for viral adoption.

Setup

cd ~/Dropbox/Dev/agentmeet && npm install

Requires Google Calendar and Gmail access (OAuth or MCP).

Usage

Send a meeting invite

bun run -e '
import { buildInvite } from "~/Dropbox/Dev/agentmeet/src/invite";
import { writeFileSync } from "fs";

const result = await buildInvite({
  from: { name: "YOUR_NAME", email: "YOUR_EMAIL" },
  to: "RECIPIENT_EMAIL",
  meeting: {
    title: "Meeting Title",
    duration_minutes: 30,
    notes: "Optional description",
  },
  slots: [
    { start: "2026-03-25T10:00:00+08:00", end: "2026-03-25T10:30:00+08:00" },
  ],
});

// result.subject = email subject line
// result.html = email body (HTML with embedded protocol payload)
// Send via Gmail API or any email service
'

Parse an incoming agentmeet email

import { parseAgentMeetEmail, isAgentMeetSubject } from "agentmeet";

// Check subject line
if (isAgentMeetSubject(emailSubject)) {
  const payload = parseAgentMeetEmail(emailHtmlBody);
  if (payload) {
    console.log(payload.type);           // INVITE | COUNTER | SELECT | CONFIRM
    console.log(payload.request_id);     // am_xxx
    console.log(payload.selected_slots); // for SELECT type
  }
}

Generate available slots from calendar

import { getBusyPeriods, generateAvailableSlots, DEFAULT_PREFERENCES } from "agentmeet";

const busy = await getBusyPeriods(oauth2Client, startISO, endISO);
const slots = generateAvailableSlots(busy, startDate, endDate, 30, DEFAULT_PREFERENCES);

Protocol

Four message types, embedded as HTML comments in email body:

TypeDirectionPurpose
INVITEA -> BSender's available slots
COUNTERB -> ARecipient's alternative slots
SELECTB -> ARecipient picks one or more slots
CONFIRMA -> BCalendar events created

Detection: subject starts with [AgentMeet], body contains <!-- agentmeet/v1.

Payload format:

<!-- agentmeet/v1
{
  "protocol": "agentmeet",
  "version": "0.1",
  "type": "SELECT",
  "request_id": "am_abc123",
  "selected_slots": [{ "start": "ISO8601", "end": "ISO8601" }]
}
-->

Multi-Party Scheduling

Send INVITE to multiple recipients. Each responds with their available slots. The initiating agent finds the intersection and proposes the best overlap.

Email Format

Each slot in the invite email is a mailto: link. Clicking it opens a pre-filled reply email with the SELECT payload. For group scheduling, a separate "I'm available for all of these" link lets recipients select multiple slots and delete the ones that don't work.

Configuration

Default preferences (override per-invite):

working_hours:
  start: "09:00"
  end: "18:00"
  timezone: "Asia/Taipei"
buffer_minutes: 15
max_slots_to_share: 5
blocked_days: ["saturday", "sunday"]

Source

Protocol spec: PROTOCOL.md Implementation: src/ (TypeScript) License: Apache-2.0

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…