Gabber is an engine for building real-time AI applications across voice, text, video, and other modalities. An application is a graph of nodes — ingesting media, transcribing audio, analysing emotion, calling an external API, generating a response — connected so that output from one node is processed downstream as it happens. Graphs support multiple participants and simultaneous media streams, and a drag-and-drop builder assembles them visually from templates or from scratch.
Nodes connect through typed pads. Sink pads receive data from upstream, source pads send data downstream, and each pad is either a property that always holds a value or a stateless stream that emits values as they occur; only compatible types can be linked. A subgraph is a collection of nodes that embeds into another application as a single node, with proxy nodes forming its entry and exit points. A state machine layers branching logic on top, built from parameters the machine watches, states, and transition nodes that act as AND gates and can be combined in parallel for OR logic.
A deployment has a Next.js frontend and three backend services: an editor that serves the frontend, an engine that runs applications, and a repository service that fetches and saves applications and subgraphs from a local directory. Media reaches the engine through LiveKit, a WebRTC server. A local LLM node can be backed by llama.cpp on macOS or vLLM on Linux, with provided server scripts. Secrets live in a separate file and are never stored in graph data, so graphs can be shared without leaking credentials.
The engine and frontend are source-available and self-hostable; a hosted service is priced per session-hour, with a base session rate, a separate speech-to-text rate, variably priced language models, orchestration included, and no stated limit on concurrent sessions. Client integration is through SDKs: a framework-agnostic JavaScript and TypeScript library for Node.js, browsers, Bun, and Deno; a React package of hooks, providers, and components wrapping it; and a Python package for backend integrations, prototyping, and small devices. Unity, iOS, Android, React Native, and Flutter SDKs are listed as planned.
Features
- Node graph engine: composable, extensible nodes wired through typed pads, executed with sub-second orchestration
- Visual app builder: drag-and-drop construction of application flows, from scratch or by remixing existing templates
- Multi-stream, multi-participant: video, screen, audio, and text inputs combined in one running application
- Subgraphs: reusable node collections embedded as a single node, with proxy nodes as entry and exit points
- State machines: parameters, states, and transition nodes with AND and OR combination for branching application logic
- Custom integrations: building blocks that call your own API or SDK so a graph can act on external systems
- Local or hosted inference: a local LLM node backed by llama.cpp or vLLM scripts, or hosted speech-to-text, text-to-speech, and language models
- Secret handling: secrets read from a separate file and surfaced as a dropdown on nodes that need them, never written into shared graph data
- SDKs: JavaScript/TypeScript, React, and Python today, with Unity, iOS, Android, React Native, and Flutter listed as planned
