fireflies-hello-world
Create a minimal working Fireflies.ai example that queries transcripts. Use when starting a new Fireflies.ai integration, testing your setup, or learning the GraphQL API patterns for meeting data. Trigger with phrases like "fireflies hello world", "fireflies example", "fireflies quick start", "simple fireflies code".
claude-codecodexopenclaw
Allowed Tools
ReadWriteEditBash(curl:*)
Provided by Plugin
fireflies-pack
Claude Code skill pack for Fireflies.ai (24 skills)
Installation
This skill is included in the fireflies-pack plugin:
/plugin install fireflies-pack@claude-code-plugins-plus
Click to copy
Instructions
Fireflies.ai Hello World
Overview
Minimal working examples demonstrating core Fireflies.ai GraphQL queries: list users, fetch transcripts, and read a meeting summary.
Prerequisites
- Completed
fireflies-install-authsetup FIREFLIESAPIKEYenvironment variable set- At least one meeting recorded in Fireflies
Instructions
Step 1: List Workspace Users
set -euo pipefail
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query": "{ users { name user_id email } }"}' | jq '.data.users'
Step 2: Fetch Recent Transcripts
const FIREFLIES_API = "https://api.fireflies.ai/graphql";
async function firefliesQuery(query: string, variables?: Record<string, any>) {
const res = await fetch(FIREFLIES_API, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.FIREFLIES_API_KEY}`,
},
body: JSON.stringify({ query, variables }),
});
const json = await res.json();
if (json.errors) throw new Error(json.errors[0].message);
return json.data;
}
// List 5 most recent transcripts
const data = await firefliesQuery(`
query RecentMeetings {
transcripts(limit: 5) {
id
title
date
duration
organizer_email
participants
}
}
`);
for (const t of data.transcripts) {
console.log(`${t.title} (${t.duration}min) - ${t.date}`);
console.log(` Organizer: ${t.organizer_email}`);
console.log(` Participants: ${t.participants?.join(", ")}`);
}
Step 3: Read a Single Transcript with Summary
async function getTranscriptSummary(id: string) {
return firefliesQuery(`
query GetTranscript($id: String!) {
transcript(id: $id) {
id
title
date
duration
organizer_email
speakers { id name }
summary {
overview
short_summary
action_items
keywords
}
}
}
`, { id });
}
const { transcript } = await getTranscriptSummary("your-transcript-id");
console.log(`Title: ${transcript.title}`);
console.log(`Summary: ${transcript.summary.overview}`);
console.log(`Action Items: ${transcript.summary.action_items?.join("\n - ")}`);
console.log(`Keywords: ${transcript.summary.keywords?.join(", ")}`);
Step 4: Python Hello World
import os, requests
API = "https://api.fireflies.ai/graphql"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.environ['FIREFLIES_API_KEY']}",
}
def gql(query, variables=None):
resp = requests.post(API, json={"query": query, "variables": variables}, headers=HEADERS)
data = resp.json()
if "errors" in data:
raise Exception(data["errors"][0]["message"])
return data["data"]
# List recent meetings
meetings = gql("{ transcripts(limit: 5) { id title date duration } }")
for m in meetings["transcripts"]:
print(f"{m['title']} - {m['duration']}min - {m['date']}")
Key Queries Reference
| Query | Purpose | Key Fields |
|---|---|---|
user |
Current user info | name, email, is_admin |
users |
All workspace users | name, user_id, email |
transcripts(limit: N) |
Recent meetings | id, title, date, duration |
transcript(id: "...") |
Single meeting | sentences, summary, speakers |
Error Handling
| Error | Cause | Solution |
|---|---|---|
auth_failed |
Missing or invalid API key | Verify FIREFLIESAPIKEY is set |
| Empty transcripts array | No meetings recorded yet | Record a meeting or upload audio |
null summary fields |
Transcript still processing | Wait for processing to complete |
| Network timeout | API unreachable | Check internet connectivity |
Output
- Working GraphQL queries against
https://api.fireflies.ai/graphql - Transcript listing with metadata
- Meeting summary with action items and keywords
Resources
Next Steps
Proceed to fireflies-core-workflow-a for transcript retrieval and processing.