Dialogue Branch

Open source · MIT licensed

Write conversations that branch.

An open-source toolkit for writing, testing and running scripted dialogues between people and computers — from virtual health coaches to games and chatbots.

welcome.dlb
title: Start
speaker: Martin McOwl
---
Hey there! Do you want a quick tour of Dialogue Branch?

[[Sure!|Tour]]
===
title: Tour
speaker: Martin McOwl
---
Wonderful! A dialogue is a script made of nodes: text plus replies.

[[Like this chat?|Meta]]
[[Why scripts?|WhyScripts]]
[[How do I write one?|Write]]
===
Try this dialogue with Martin McOwl below ↓

Dialogue Branch gives you the creative freedom to write engaging interactive conversations...

Whether you're building a virtual health coach, a video game, or a customer support chatbot — if the quality and reliability of the conversation is important, Dialogue Branch may be the right tool for you.

Write and test dialogues in Studio

Build dialogues in Studio's graph editor, on top of plain .dlb scripts that are easy to read and to keep under version control. Play them through as speech bubbles or text, translate them, and publish when they're ready: your drafts stay apart from what your users see.

Dialogue Branch Studio's graph editor, showing Martin McOwl's welcome dialogue as connected nodes About Studio → The .dlb language →

Run dialogues on your own server

A Spring Boot service with a REST API for playing and authoring dialogues, secured with Keycloak and backed by MariaDB. It fits in alongside your existing systems, reading and updating variables through your own API. Docker files for the whole stack are included.

Your app and Studio, through the BFF, call the Web Service, which uses MariaDB, Keycloak and your own API REST + token Your app Studio BFF Dialogue Branch Web Service REST API · core engine MariaDB Keycloak Your API
Dashed boxes are yours to build; everything else ships with the platform.
The Web Service → Authentication →

Bring dialogues into your app

Connect a website, mobile app, game or chatbot through the JavaScript client or the REST API, or build the Java library straight into your application.

import { DialogueBranchClient }
  from '@dialoguebranch/client-js';

const client = new DialogueBranchClient({
  baseUrl:
    'https://my.server/dlb-web-service/v1',
});

const step = await client.startDialogue({
  projectSlug: 'my-project',
  dialogueName: 'welcome',
  timeZone: 'Europe/Amsterdam',
});

console.log(step.statement.fullStatement());
for (const reply of step.replies)
  showReply(reply);  // your own UI
Connect your app → The Java library →

Open source, MIT licensed

The language, the core library, the Web Service, Studio and the JavaScript client all live in one repository, versioned and released together. Use it, change it, host it: it's yours.

dialoguebranch / platform JavaJavaScriptVue LicenseMIT npm@dialoguebranch/client-js View on GitHub → Releases →

Who's behind it

Under development since 2017, and maintained by Fruit Tree Labs together with everyone who contributes on GitHub.

Read the story →

Get started

Start the Web Service on your own machine with Docker Compose, then try out its API right from your browser.