# Send Fireflies to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "fireflies",
    "name": "Fireflies",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/daniil-ctrl/fireflies",
    "canonicalUrl": "https://clawhub.ai/daniil-ctrl/fireflies",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/fireflies",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fireflies",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "skill.json"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "fireflies",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-03T06:30:58.972Z",
      "expiresAt": "2026-05-10T06:30:58.972Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fireflies",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fireflies",
        "contentDisposition": "attachment; filename=\"fireflies-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "fireflies"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/fireflies"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/fireflies",
    "downloadUrl": "https://openagent3.xyz/downloads/fireflies",
    "agentUrl": "https://openagent3.xyz/skills/fireflies/agent",
    "manifestUrl": "https://openagent3.xyz/skills/fireflies/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/fireflies/agent.md"
  }
}
```
## Documentation

### Fireflies.ai Skill

Query meeting transcripts, summaries, action items, and analytics from Fireflies.ai.

### Setup

Set your Fireflies API key:

FIREFLIES_API_KEY=your_api_key_here

Get your API key from: https://app.fireflies.ai/integrations (scroll to Fireflies API section)

### API Base

GraphQL Endpoint: https://api.fireflies.ai/graphql

Authorization header: Bearer $FIREFLIES_API_KEY

### Get Current User

curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"{ user { user_id name email is_admin minutes_consumed num_transcripts recent_meeting } }"}' | jq

### Get Single Transcript

curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"query($id:String!){transcript(id:$id){id title date duration participants fireflies_users summary{keywords action_items overview topics_discussed} speakers{name duration} sentences{speaker_name text start_time}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq

### Search Transcripts by Date Range

# ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ
curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"query($from:DateTime,$to:DateTime,$limit:Int){transcripts(fromDate:$from,toDate:$to,limit:$limit){id title date duration organizer_email participants summary{keywords action_items overview}}}","variables":{"from":"2024-01-01T00:00:00.000Z","to":"2024-01-31T23:59:59.999Z","limit":50}}' | jq

### Search Transcripts by Participant

# Search meetings where specific people participated
curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"query($participants:[String],$limit:Int){transcripts(participants:$participants,limit:$limit){id title date participants organizer_email summary{action_items}}}","variables":{"participants":["john@example.com","jane@example.com"],"limit":20}}' | jq

### Search Transcripts by Organizer

curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"query($organizers:[String],$limit:Int){transcripts(organizers:$organizers,limit:$limit){id title date organizer_email participants}}","variables":{"organizers":["sales@example.com"],"limit":25}}' | jq

### Search by Keyword (Title and/or Transcript)

# scope: "TITLE", "SENTENCES", or "ALL"
curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"query($keyword:String,$scope:String){transcripts(keyword:$keyword,scope:$scope,limit:10){id title date summary{overview}}}","variables":{"keyword":"pricing","scope":"ALL"}}' | jq

### Get My Recent Transcripts

curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"{ transcripts(mine:true,limit:10) { id title date duration summary { action_items keywords } } }"}' | jq

### Get Full Transcript with Summary & Action Items

curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"query($id:String!){transcript(id:$id){id title date duration organizer_email participants fireflies_users workspace_users meeting_attendees{displayName email} summary{keywords action_items outline overview bullet_gist topics_discussed meeting_type} speakers{name duration word_count} sentences{speaker_name text start_time end_time}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq

### Get Transcript with Analytics

# Requires Pro plan or higher
curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"query($id:String!){transcript(id:$id){id title analytics{sentiments{positive_pct neutral_pct negative_pct} speakers{name duration word_count filler_words questions longest_monologue words_per_minute}}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq

### Get Contacts

curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"{ contacts { email name picture last_meeting_date } }"}' | jq

### Get Active Meetings

curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d '{"query":"{ active_meetings { id title organizer_email meeting_link start_time state } }"}' | jq

### Pipeline Review Example

Get all meetings from last 7 days with specific participants:

# Date commands (pick based on your OS):
# macOS:
FROM_DATE=$(date -u -v-7d +"%Y-%m-%dT00:00:00.000Z")
# Linux:
# FROM_DATE=$(date -u -d '7 days ago' +"%Y-%m-%dT00:00:00.000Z")

TO_DATE=$(date -u +"%Y-%m-%dT23:59:59.999Z")

curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -d "{\\"query\\":\\"query(\\$from:DateTime,\\$to:DateTime,\\$participants:[String]){transcripts(fromDate:\\\\\\"\\$FROM_DATE\\\\\\",toDate:\\\\\\"\\$TO_DATE\\\\\\",participants:\\$participants,limit:50){id title date duration organizer_email participants summary{keywords action_items topics_discussed meeting_type}}}\\",\\"variables\\":{\\"from\\":\\"$FROM_DATE\\",\\"to\\":\\"$TO_DATE\\",\\"participants\\":[\\"prospect@company.com\\"]}}" | jq

### Transcript Fields

id - Unique identifier
title - Meeting title
date - Unix timestamp (milliseconds)
dateString - ISO 8601 datetime
duration - Duration in minutes
organizer_email - Meeting organizer
participants - All participant emails
fireflies_users - Fireflies users who participated
workspace_users - Team members who participated
meeting_attendees - Detailed attendee info (displayName, email)
transcript_url - View in dashboard
audio_url - Download audio (Pro+, expires 24h)
video_url - Download video (Business+, expires 24h)

### Summary Fields

keywords - Key topics
action_items - Extracted action items
overview - Meeting overview
topics_discussed - Main topics
meeting_type - Meeting category
outline - Structured outline
bullet_gist - Bullet point summary

### Sentence Fields

text - Sentence text
speaker_name - Who said it
start_time - Timestamp (seconds)
end_time - End timestamp
ai_filters - Filters (task, question, pricing, etc.)

### Speaker Fields

name - Speaker name
duration - Speaking time
word_count - Words spoken
filler_words - Filler word count
questions - Questions asked
longest_monologue - Longest uninterrupted speech
words_per_minute - Speaking pace

### By Date Range (ISO 8601)

{
  "fromDate": "2024-01-01T00:00:00.000Z",
  "toDate": "2024-01-31T23:59:59.999Z"
}

### By Multiple Participants

{
  "participants": ["user1@example.com", "user2@example.com"]
}

### By Channel

{
  "channel_id": "channel_id_here"
}

### Combined Filters

{
  "fromDate": "2024-01-01T00:00:00.000Z",
  "toDate": "2024-01-31T23:59:59.999Z",
  "participants": ["sales@example.com"],
  "keyword": "pricing",
  "scope": "ALL",
  "limit": 50
}

### PowerShell Examples

$headers = @{
  "Authorization" = "Bearer $env:FIREFLIES_API_KEY"
  "Content-Type" = "application/json"
}

# Get recent transcripts
$body = @{
  query = "{ transcripts(mine:true,limit:10) { id title date } }"
} | ConvertTo-Json

Invoke-RestMethod -Uri "https://api.fireflies.ai/graphql" -Method POST -Headers $headers -Body $body

### Shareable Recording Links

The API provides transcript_url, video_url, and audio_url, but for sharing with external parties (prospects, clients), use the embed URL format:

API transcript_url:  https://app.fireflies.ai/view/{id}           (requires Fireflies login)
Embed URL:           https://share.fireflies.ai/embed/meetings/{id}  (no login required, permanent)

Why use embed URLs:

No Fireflies account required to view
Permanent link (doesn't expire like video_url/audio_url)
Better viewing experience (embedded player)

Construction:

# Get meeting ID from API
MEETING_ID=$(curl -s -X POST https://api.fireflies.ai/graphql \\
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{"query":"{ transcripts(mine:true,limit:1) { id } }"}' | jq -r '.data.transcripts[0].id')

# Construct embed URL
EMBED_URL="https://share.fireflies.ai/embed/meetings/${MEETING_ID}"
echo "Share this: $EMBED_URL"

Embed in HTML:

<iframe 
  src="https://share.fireflies.ai/embed/meetings/{id}" 
  width="640" 
  height="360" 
  frameborder="0" 
  allow="autoplay; fullscreen; picture-in-picture" 
  allowfullscreen>
</iframe>

### Notes

Dependencies: Requires curl and jq (install: sudo apt install jq or brew install jq)
Rate Limits: Check with Fireflies support for current limits
Pagination: Use limit (max 50) and skip for large result sets
Date Format: Always use ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ
Audio/Video URLs: Expire after 24 hours, regenerate as needed (use embed URLs for permanent sharing)
Analytics: Requires Pro plan or higher
Video Recording: Must be enabled in dashboard settings

### Common Use Cases

Weekly Pipeline Review: Search transcripts by date + participants
Follow-up Tasks: Extract action items from recent meetings
Competitor Mentions: Search keyword in sentences
Speaking Analytics: Analyze talk time, questions asked
Meeting Insights: Get summaries and key topics
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: daniil-ctrl
- Version: 1.0.1
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-03T06:30:58.972Z
- Expires at: 2026-05-10T06:30:58.972Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/fireflies)
- [Send to Agent page](https://openagent3.xyz/skills/fireflies/agent)
- [JSON manifest](https://openagent3.xyz/skills/fireflies/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/fireflies/agent.md)
- [Download page](https://openagent3.xyz/downloads/fireflies)