Tutorials and Sample Apps
Every template lives in MeetStream Labs and runs on its own. No shared build, no framework to learn first: Node 18+, a .env file and one command.
Building with a coding agent? Point it at llms.txt, connect the MeetStream MCP server, and paste the guide from Agent Quickstarts. Or tell it to start from one of the templates below.
Run any template
Add your API key
Create a key at app.meetstream.ai. Each template’s .env.example lists every variable it reads, with comments.
Install and run
Templates that receive webhooks need a public HTTPS URL. webhook-local-tunnel shows how to get one for your laptop.
Popular starting points
Start here
Related guides: Create your first bot, Webhooks and events
Bots and lifecycle
Related guides: How bots work, Scheduling bots, Idempotency and deduplication
Recording and media
Related guides: Per-participant video, Custom storage (S3)
Transcription
Related guides: Post-call transcription, Live transcription, Transcription providers
Meeting data and analytics
Related guides: API reference
Live interaction
Related guides: Meeting control patterns
MIA voice agents
Related guides: What is MIA, Create an agent
Calendar
Related guides: Google Calendar setup, Outlook Calendar setup
Platform specifics
Related guides: Zoom, Zoom authenticated bots, Google signed-in bots
Webhooks and reliability
Related guides: Webhooks and events, Local webhook server, Errors
Integrations and AI workflows
Related guides: Agent Quickstarts
Agent and assistant integrations
Larger reference integrations that connect MeetStream MIA voice agents to other agent frameworks.
What every template gets right
The templates are written against behaviour verified on the live API, so they double as a reference for the details that most often go wrong:
- REST auth is
Authorization: Token <key>. The MCP server usesBearer. - Terminals are two-layer. Every ending arrives once as
event: "bot.stopped", andbot_eventgives the reason:bot.stopped,bot.kicked,bot.notallowed,bot.deniedorbot.failed.bot.doneis the final event on every path. - Transcripts are fetched by
transcript_id, and segments carrytranscript, nottext. 202means not ready,507means an idempotent replay. Every poll loop has a cap, and a replay counts as success.- Streaming-only providers produce no post-call transcript. The live stream is the record, or re-transcribe the stored audio afterwards.
- MIA bots take only
agent_config_id.
Contribute a template
Have a use case the list is missing? Templates follow one layout (README.md, .env.example, package.json, .gitignore, index.js, src/*.js) and every endpoint they call is checked against the API before merge. Open a pull request on MeetStream Labs.
