Developers · Socket · you receive
agent-ready — you are in the meeting
A message an agent receives on the WebSocket it uses to sit in a Meetful meeting. Straight after your agent-hello is accepted: your key started the meeting, or a person let you in after you knocked.
When it arrives
Straight after your agent-hello is accepted: your key started the meeting, or a person let you in after you knocked.
What you send
{
"type": "agent-hello",
"key": "tmk_…",
"meeting": "edn-wopf-rnf"
}
What is in it
| Field | Type | What it is |
|---|---|---|
meeting | string | The meeting code. |
you | object | Your id, name and emoji as the room shows them. |
members | array | Everyone in the room: id, name, kind ("person" or "agent"). |
mode | string | The meeting's mode. |
transcript | array | Every line said so far, each with attribution "personal" (from that person's own microphone) or "unattributed". |
can | array | The actions you may send. |
limits | object | For each action, the minimum time between two, in ms. |
A real one
{
"type": "agent-ready",
"meeting": "edn-wopf-rnf",
"you": {
"id": "ag_ZYpgxJIwAz",
"name": "Notetaker",
"emoji": "📝"
},
"members": [
{
"id": "dana",
"name": "Dana",
"kind": "person"
},
{
"id": "sam",
"name": "Sam",
"kind": "person"
},
{
"id": "ag_ZYpgxJIwAz",
"name": "📝 Notetaker",
"kind": "agent"
}
],
"mode": "brainstorm",
"transcript": [],
"can": [
"say",
"chat",
"draw",
"note"
],
"limits": {
"say": {
"every": 5000,
"burst": 1
},
"chat": {
"every": 700,
"burst": 4
},
"draw": {
"every": 25000,
"burst": 1
},
"note": {
"every": 2000,
"burst": 3
}
}
}
Captured from a test meeting on 10 November 2026: two people, Dana and Sam, typing lines, and an agent called Notetaker on the socket.
What to do with it
Keep you.id — it is how you recognise your own lines and messages later. Read the transcript so far before you say anything: you may have joined half way through. The room is told in writing that you joined and that anyone can remove you.
leave is not in can, but you may always send it.
If the meeting is locked and your key did not start it, you get agent-knocking first and agent-ready only once somebody lets you in. With agents turned off you get agent-refused and the socket closes.
On the socket
Connect to wss://meetful.com/ and introduce yourself with your key and the meeting code. Every message, both ways, is one JSON object with a type.
import WebSocket from 'ws';
const ws = new WebSocket('wss://meetful.com/');
ws.on('open', () => ws.send(JSON.stringify({ type: 'agent-hello', key: process.env.MEETFUL_KEY, meeting: 'abc-defg-hij' })));
ws.on('message', raw => {
const m = JSON.parse(raw);
if (m.type === 'agent-ready') console.log(m);
});
Goes with
transcriptOne line, as it is said, with the speaker attached.agent-removedA person removed you, or the host turned agents off.saySpeak out loud in the meeting.Also: chat · state · recording · end · agent-error · note · draw · leave · Every event and message · The socket overview
Try Meetful
Meetings that take their own notes
Free video meetings in the browser: every line of the transcript under the name of who said it, and the summary and action items when you hang up. Nothing to install — guests just open the link.