← Back to Skills Marketplace
daniil-ctrl

Fireflies

by daniil-ctrl · GitHub ↗ · v1.0.1
cross-platform ✓ Security Clean
2163
Downloads
4
Stars
8
Active Installs
2
Versions
Install in OpenClaw
/install fireflies
Description
Access Fireflies.ai meeting transcripts, summaries, action items, and analytics via GraphQL API
README (SKILL.md)

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


Core Queries

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":["[email protected]","[email protected]"],"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":["[email protected]"],"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

Advanced Queries

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\":[\"[email protected]\"]}}" | jq

Key Schema Fields

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

Filter Examples

By Date Range (ISO 8601)

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

By Multiple Participants

{
  "participants": ["[email protected]", "[email protected]"]
}

By Channel

{
  "channel_id": "channel_id_here"
}

Combined Filters

{
  "fromDate": "2024-01-01T00:00:00.000Z",
  "toDate": "2024-01-31T23:59:59.999Z",
  "participants": ["[email protected]"],
  "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:

\x3Ciframe 
  src="https://share.fireflies.ai/embed/meetings/{id}" 
  width="640" 
  height="360" 
  frameborder="0" 
  allow="autoplay; fullscreen; picture-in-picture" 
  allowfullscreen>
\x3C/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

  1. Weekly Pipeline Review: Search transcripts by date + participants
  2. Follow-up Tasks: Extract action items from recent meetings
  3. Competitor Mentions: Search keyword in sentences
  4. Speaking Analytics: Analyze talk time, questions asked
  5. Meeting Insights: Get summaries and key topics
Usage Guidance
This skill appears to be what it claims: a collection of curl/jq examples that call Fireflies' official GraphQL API and requires a single FIREFLIES_API_KEY. Before installing, confirm you trust the skill author and are comfortable granting access to your Fireflies account (transcripts can contain sensitive conversation content). Use a least-privilege/read-only API key if Fireflies supports scopes, and be prepared to revoke the key if you stop using the skill. Note the package metadata included in the bundle (skill.json) requires curl and jq and a FIREFLIES_API_KEY; the registry summary at the top of the report incorrectly omitted those requirements. Finally, because this is instruction-only (no code/install), the main risk is data access via the API key — treat the key like any other secret.
Capability Analysis
Type: OpenClaw Skill Name: fireflies Version: 1.0.1 The OpenClaw skill bundle for Fireflies.ai is benign. All `curl` commands in `SKILL.md` target the legitimate Fireflies.ai GraphQL API (`https://api.fireflies.ai/graphql`) and use the `FIREFLIES_API_KEY` solely for authentication to this service. There is no evidence of data exfiltration to unauthorized endpoints, malicious command execution (e.g., `curl|bash`), attempts at persistence, or prompt injection against the AI agent. The skill's actions are entirely consistent with its stated purpose of accessing Fireflies.ai meeting data.
Capability Assessment
Purpose & Capability
The name/description match the runtime instructions: SKILL.md shows GraphQL calls to https://api.fireflies.ai/graphql and skill.json declares FIREFLIES_API_KEY and required binaries (curl, jq). The requested items are appropriate for querying Fireflies transcripts and analytics.
Instruction Scope
SKILL.md contains explicit curl examples and GraphQL queries limited to Fireflies data (transcripts, summaries, contacts, active meetings). It does not instruct reading unrelated files, accessing other env vars, or sending data to non-Fireflies endpoints.
Install Mechanism
No install spec or code files are included — this is instruction-only. That minimizes on-disk risk. skill.json lists required binaries (curl, jq) which are reasonable for the provided examples.
Credentials
Only a single credential (FIREFLIES_API_KEY) is required and is directly used as a Bearer token in the Authorization header. This is proportionate to the described functionality. Note: registry summary at the top of the package report incorrectly listed 'required env vars: none' — the included files do require FIREFLIES_API_KEY.
Persistence & Privilege
The skill does not request persistent/always-on presence, does not modify other skills or system settings, and has no config path requirements. Autonomous invocation is allowed by platform default (not a red flag here).
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install fireflies
  3. After installation, invoke the skill by name or use /fireflies
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
Fixed registry metadata: added skill.json declaring FIREFLIES_API_KEY credential requirement and jq dependency; added cross-platform date command support (macOS + Linux)
v1.0.0
Initial release of the Fireflies skill. - Provides access to Fireflies.ai meeting transcripts, summaries, action items, contacts, and analytics via GraphQL API. - Includes setup instructions for configuring your Fireflies API key. - Offers core and advanced queries for searching and retrieving transcripts by date, participants, organizer, and keywords. - Documents transcript, summary, sentence, and speaker fields available in the API. - Supplies example queries in both curl and PowerShell for easy integration and testing. - Supports filtering and combined queries for flexible analytics and meeting review.
Metadata
Slug fireflies
Version 1.0.1
License
All-time Installs 8
Active Installs 8
Total Versions 2
Frequently Asked Questions

What is Fireflies?

Access Fireflies.ai meeting transcripts, summaries, action items, and analytics via GraphQL API. It is an AI Agent Skill for Claude Code / OpenClaw, with 2163 downloads so far.

How do I install Fireflies?

Run "/install fireflies" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Fireflies free?

Yes, Fireflies is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Fireflies support?

Fireflies is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Fireflies?

It is built and maintained by daniil-ctrl (@daniil-ctrl); the current version is v1.0.1.

💬 Comments