Conectar las escribe por ti y Desconectar las quita. Las mostramos para que sepas exactamente qué cambia, o para configurarlo a mano.
Respuestas: el programa notify
Codex ejecuta su programa notify después de cada turno y le pasa un evento JSON como último argumento. El evento agent-turn-complete trae last-assistant-message, que es lo que se lee.
# ~/.codex/config.toml (al principio del todo)
notify = ["C:/Program Files/VoicedByMe/voicereader-say.exe", "--codex"]
Deja notify por encima de cualquier cabecera [tabla]. En TOML, una clave escrita debajo de [mcp_servers] o [tui] pertenece a esa tabla, y Codex no la ve. Es el motivo más habitual de que un programa notify no se ejecute nunca.
Peticiones de permiso: un hook
// ~/.codex/hooks.json
{
"hooks": {
"PermissionRequest": [
{ "hooks": [{ "type": "command", "command": "…/voicereader-say --codex-hook", "timeout": 10 }] }
]
}
}
Hablar cuando se lo pides: un servidor MCP
[mcp_servers.voice-reader]
command = "C:/Program Files/VoicedByMe/voicereader-say.exe"
args = ["--mcp"]
Las entradas reales también llevan el puerto local y una clave privada, para que solo los programas de tu equipo puedan hacerla hablar.