From assemblyai-pack
Generates minimal TypeScript examples for AssemblyAI transcription from URLs/local files, plus audio intelligence like speaker diarization, sentiment, and summarization.
How this skill is triggered — by the user, by Claude, or both
Slash command
/assemblyai-pack:assemblyai-hello-worldThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Minimal working examples demonstrating AssemblyAI's three core capabilities: async transcription, audio intelligence features, and LeMUR (LLM-powered analysis).
Minimal working examples demonstrating AssemblyAI's three core capabilities: async transcription, audio intelligence features, and LeMUR (LLM-powered analysis).
assemblyai-install-auth setupASSEMBLYAI_API_KEYimport { AssemblyAI } from 'assemblyai';
const client = new AssemblyAI({
apiKey: process.env.ASSEMBLYAI_API_KEY!,
});
async function transcribeUrl() {
const transcript = await client.transcripts.transcribe({
audio: 'https://storage.googleapis.com/aai-web-samples/5_common_sports_702.wav',
});
if (transcript.status === 'error') {
throw new Error(`Transcription failed: ${transcript.error}`);
}
console.log('Transcript:', transcript.text);
console.log('Duration:', transcript.audio_duration, 'seconds');
console.log('Word count:', transcript.words?.length);
}
transcribeUrl().catch(console.error);
async function transcribeLocal() {
// The SDK handles upload automatically when you pass a local path
const transcript = await client.transcripts.transcribe({
audio: './recording.mp3',
});
console.log('Transcript:', transcript.text);
// Access word-level timestamps
for (const word of transcript.words ?? []) {
console.log(`[${word.start}ms - ${word.end}ms] ${word.text} (${word.confidence})`);
}
}
async function transcribeWithIntelligence() {
const transcript = await client.transcripts.transcribe({
audio: 'https://storage.googleapis.com/aai-web-samples/5_common_sports_702.wav',
speaker_labels: true, // Who said what
auto_highlights: true, // Key phrases extraction
sentiment_analysis: true, // Sentiment per sentence
entity_detection: true, // Named entities (people, orgs, locations)
summarization: true, // Auto-summary
summary_model: 'informative',
summary_type: 'bullets',
});
// Speaker diarization
for (const utterance of transcript.utterances ?? []) {
console.log(`Speaker ${utterance.speaker}: ${utterance.text}`);
}
// Key phrases
for (const result of transcript.auto_highlights_result?.results ?? []) {
console.log(`Key phrase: "${result.text}" (mentioned ${result.count} times)`);
}
// Sentiment analysis
for (const result of transcript.sentiment_analysis_results ?? []) {
console.log(`${result.sentiment}: "${result.text}"`);
}
// Summary
console.log('Summary:', transcript.summary);
}
async function lemurDemo() {
// First, transcribe
const transcript = await client.transcripts.transcribe({
audio: 'https://storage.googleapis.com/aai-web-samples/5_common_sports_702.wav',
});
// Then use LeMUR to analyze
const { response } = await client.lemur.task({
transcript_ids: [transcript.id],
prompt: 'Summarize the key topics discussed and list any action items mentioned.',
});
console.log('LeMUR response:', response);
}
| Error | Cause | Solution |
|---|---|---|
transcript.status === 'error' | Bad audio URL/format | Verify URL is publicly accessible, supported format |
Authentication error | Invalid API key | Check ASSEMBLYAI_API_KEY environment variable |
File not found | Wrong local path | Verify file exists at the specified path |
Unsupported audio format | Incompatible format | Use MP3, WAV, M4A, FLAC, OGG, or WebM |
Proceed to assemblyai-local-dev-loop for development workflow setup.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin assemblyai-packImplements AssemblyAI reference architecture for transcription services: layered design, webhooks, LeMUR pipelines, TypeScript/Node.js project structure.
Creates minimal Deepgram speech-to-text examples in TypeScript/Node.js and Python for transcribing audio URLs or local files. Use for quick starts, API testing, or setup validation.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.