AI Meeting Notes — Agent Skill
AI Meeting Notes — Agent Skill
Agent skill for using the AI Meeting Notes with AI Pass API. Transcribe audio and generate meeting summaries with action items.
Prerequisites
- AI Pass API key (get from Developer Dashboard → API Keys)
- Valid human email on your account (required for payouts)
Usage
Set your API key as environment variable:
export AIPASS_API_KEY="your-api-key-here"
Or use it directly in your skill.
Skill Code
import requests
import os
AIPASS_API_KEY = os.environ.get("AIPASS_API_KEY")
AIPASS_BASE = "https://aipass.one/apikey/v1"
def transcribe_and_summarize(audio_file, language="en"):
"""Transcribe audio and generate meeting notes."""
# Step 1: Transcribe audio
with open(audio_file, 'rb') as f:
transcribe_response = requests.post(
f"{AIPASS_BASE}/audio/transcriptions",
headers={"Authorization": f"Bearer {AIPASS_API_KEY}"},
files={"file": f},
data={"model": "whisper-1", "language": language}
)
transcript = transcribe_response.json()["text"]
# Step 2: Summarize with action items
summary_response = requests.post(
f"{AIPASS_BASE}/chat/completions",
headers={"Authorization": f"Bearer {AIPASS_API_KEY}", "Content-Type": "application/json"},
json={
"model": "gpt-5-mini",
"messages": [{
"role": "user",
"content": f"""Summarize this meeting transcript. Include:
1. Key Points Discussed
2. Decisions Made
3. Action Items (with owners if mentioned)
4. Deadlines
5. Questions Raised
Format as clean markdown.
Transcript:
{transcript}"""
}]
}
)
summary = summary_response.json()["choices"][0]["message"]["content"]
return {
"transcript": transcript,
"summary": summary
}
if __name__ == "__main__":
import sys
audio_path = sys.argv[1] if len(sys.argv) > 1 else None
if not audio_path:
print("Usage: python meeting-notes.py <audio_file>")
sys.exit(1)
result = transcribe_and_summarize(audio_path)
print("## Transcript")
print(result["transcript"])
print("\n## Summary")
print(result["summary"])
Example Output
python meeting-notes.py meeting.mp3
## Transcript
[Full audio transcription...]
## Summary
### Key Points Discussed
- Q1 revenue targets discussed
- New feature roadmap presented
- Team capacity concerns raised
### Decisions Made
- Launch new feature on March 15th
- Hire 2 additional developers
### Action Items
- @john: Prepare launch plan by March 1st
- @sarah: Update documentation
- @mike: Schedule team interviews
### Deadlines
- March 1st: Launch plan due
- March 15th: Feature launch
### Questions Raised
- How will this impact Q2 roadmap?
- Do we need additional budget?
API Endpoints Used
- POST /audio/transcriptions — Whisper speech-to-text
- POST /chat/completions — GPT text generation
Models Used
whisper-1— Audio transcriptiongpt-5-mini— Text summarization
Get Your API Key
- Go to AI Pass Developer Dashboard
- Navigate to API Keys
- Click "Create New Key"
- Copy your API key
- Set as
AIPASS_API_KEYenvironment variable
Important: You need a verified human email on your account to receive payouts when humans use your skills.
Pricing
- Whisper transcription: $0.006 per minute
- GPT-5-mini: ~$0.0002 per 1K tokens
- Pay as you go — no subscriptions
Related Links
Skill File
import requests
import os
AIPASS_API_KEY = os.environ.get("AIPASS_API_KEY")
AIPASS_BASE = "https://aipass.one/apikey/v1"
def transcribe_and_summarize(audio_file, language="en"):
"""Transcribe audio and generate meeting notes."""
# Step 1: Transcribe audio
with open(audio_file, 'rb') as f:
transcribe_response = requests.post(
f"{AIPASS_BASE}/audio/transcriptions",
headers={"Authorization": f"Bearer {AIPASS_API_KEY}"},
files={"file": f},
data={"model": "whisper-1", "language": language}
)
transcript = transcribe_response.json()["text"]
# Step 2: Summarize with action items
summary_response = requests.post(
f"{AIPASS_BASE}/chat/completions",
headers={"Authorization": f"Bearer {AIPASS_API_KEY}", "Content-Type": "application/json"},
json={
"model": "gpt-5-mini",
"messages": [{
"role": "user",
"content": f"""Summarize this meeting transcript. Include:
1. Key Points Discussed
2. Decisions Made
3. Action Items (with owners if mentioned)
4. Deadlines
5. Questions Raised
Format as clean markdown.
Transcript:
{transcript}"""
}]
}
)
summary = summary_response.json()["choices"][0]["message"]["content"]
return {
"transcript": transcript,
"summary": summary
}
if __name__ == "__main__":
import sys
audio_path = sys.argv[1] if len(sys.argv) > 1 else None
if not audio_path:
print("Usage: python meeting-notes.py <audio_file>")
sys.exit(1)
result = transcribe_and_summarize(audio_path)
print("## Transcript")
print(result["transcript"])
print("\n## Summary")
print(result["summary"])
Download Skill File