Typed Replika WebSocket client with send-and-wait helpers.
npm install replika-aibash
npm install replika-ai
`
The library ships pre-compiled JavaScript (dist/) and TypeScript types.
Usage
`ts
import { ReplikaChatClient } from 'replika-ai';
const client = new ReplikaChatClient({
userId: process.env.REPLIKA_USER_ID!,
authToken: process.env.REPLIKA_AUTH_TOKEN!,
deviceId: process.env.REPLIKA_DEVICE_ID!,
chatId: process.env.REPLIKA_CHAT_ID!,
botId: process.env.REPLIKA_BOT_ID!,
});
await client.connect();
const history = await client.fetchHistory(50);
console.log('Last message:', history.messages.at(-1));
const reply = await client.sendTextAndAwaitReply('Hey Honey, how are you?', {
typingBursts: 4,
typingDelayMs: 400,
responseTimeoutMs: 20000,
});
console.log('Replika replied with:', reply.content?.text);
client.disconnect();
`
$3
You need the same headers the official web client uses:
- userId, authToken, deviceId – captured from a logged-in session.
- chatId, botId – the chat/bot you're talking to.
You can discover these by proxying the browser or using the included
npm run ws:test script together with environment variables.
$3
sendTextAndAwaitReply(text, options) supports:
| option | default | description |
| --- | --- | --- |
| typingBursts | 3 | How many text_input_detected events to send before the message. |
| typingDelayMs | 500 | Delay between typing bursts. |
| responseTimeoutMs | 15000 | Fail if no robot message arrives within this window. |
All helpers reject if the socket errors or times out, so you can wrap them in
your retry/backoff logic of choice.
Development
`bash
npm install
npm run ws:test # requires REPLIKA_* env vars
`
Publishing is handled by npm's prepare hook, which builds dist/` automatically.