smithery/jeremylongshore

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". '

Installation

$ npx skills add smithery/jeremylongshore --skill fireflies-hello-world

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/jeremylongshore · top by installs.

npx skills add smithery/jeremylongshore

Browse all from smithery/jeremylongshore

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.11.0
LicenseMIT
CompatibilityDesigned for Claude Code
Allowed toolsRead, Write, Edit, Bash(curl:*)
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,174 B
  • docs SUMMARY.md 316 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Fireflies.ai Hello World

Overview

Minimal working examples demonstrating core Fireflies.ai GraphQL queries: list users, fetch transcripts, and read a meeting summary.

Examples

Start with a synthetic meeting that has invented speakers and a minimal summary. Query only an opaque ID and schema result, verify logs redact headers and content, and delete the test record after confirming retention behavior. Never use a real meeting as a quick-start fixture.

Prerequisites

  • Completed fireflies-install-auth setup
  • FIREFLIESAPIKEY environment 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.