WebRTC session recorder → structured AI minutes, delivered via webhook.
Warning
Alpha pre-release. This project is under active development. APIs may change without notice and correct behaviour is not guaranteed. Not recommended for production use.
Aftertalk sits alongside your WebRTC calls. It captures audio server-side, transcribes with STT (Whisper · Google · AWS · Azure), generates structured minutes with an LLM (OpenAI · Anthropic · Ollama), and delivers them to your backend via webhook — all without storing audio.
No audio is ever persisted. Minutes are always editable. Humans stay in the loop.
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/Josepavese/aftertalk/master/scripts/install.sh | bash
# Configure
cp ~/.aftertalk/aftertalk.yaml.example ~/.aftertalk/aftertalk.yaml
# set: API_KEY, JWT_SECRET, LLM_PROVIDER, STT_PROVIDER
# Start
aftertalk startDemo UI at http://localhost:8080 · Full installation guide
The canonical pattern: PHP backend holds the API key, browser receives only a short-lived JWT room token.
PHP backend (privileged — API key stays here):
$result = $aftertalk->rooms->join(
code: $appointment->id, // room code — idempotent, safe to call twice
name: $user->displayName,
role: 'therapist', // determined server-side from your auth
);
// return $result['token'] to the browser — never the API keyTypeScript frontend (JWT only — no API key):
const sdk = new AftertalkClient({ baseUrl: window.location.origin });
const conn = await sdk.connectWebRTC({ sessionId, token }); // token from PHP
conn.on('connected', () => console.log('streaming audio'));| SDK | Install | Use case |
|---|---|---|
TypeScript @aftertalk/sdk |
npm i @aftertalk/sdk |
Browser — WebRTC streaming, minutes polling |
PHP aftertalk/aftertalk-php |
composer require aftertalk/aftertalk-php |
Server — sessions, webhook verification |
| Installation | Requirements, install modes (local-ai · cloud · offline), first run |
| Configuration | All parameters with defaults |
| REST API | Every endpoint with curl examples |
| Integration Guide | PHP + TS full workflow, security model, race conditions |
| Webhook | Push vs notify_pull, HMAC verification |
| Templates | therapy, consulting, custom session structures |
| Architecture | Internal audio → minutes pipeline |
| Tone of Voice | Editorial style for docs and project messaging |
MIT · Josepavese