explaingit

coreworxlab/caal

Analysis updated 2026-05-18

395TypeScriptAudience · developerComplexity · 4/5Setup · hard

TLDR

A self-hosted voice assistant that keeps credentials safe by having n8n, not the AI model, handle authentication for triggered automations.

Mindmap

mindmap
  root((CAAL))
    What it does
      Voice control
      Tool calling
      Credential isolation
    Tech stack
      LiveKit
      n8n
      Docker
      Ollama
    Use cases
      Smart home control
      Chained tools
      Community workflows
    Audience
      Self-hosters
      Developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Control Home Assistant smart home devices using voice commands processed entirely on your own hardware.

USE CASE 2

Chain multiple tools together in a single spoken request.

USE CASE 3

Install community-built voice workflows from a security-reviewed Tool Registry.

USE CASE 4

Search the web by voice using DuckDuckGo without sending data to a third-party assistant.

What is it built with?

TypeScriptLiveKitn8nDocker

How does it compare?

coreworxlab/caalzhilin1112/yellowkey-bitlockertritano/ultraviewer
Stars395393388
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyhardeasy
Complexity4/51/5
Audiencedevelopergeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Needs an NVIDIA GPU (or CPU/Apple Silicon fallback) plus a working n8n instance for automations.

In plain English

CAAL is a self-hosted voice assistant that runs entirely on your own hardware, meaning your voice commands, credentials, and data never leave your local network. It is built on a platform called LiveKit Agents and uses a purpose-built AI model fine-tuned specifically for voice-activated tool calling. You speak to it, it decides which automation to trigger, and it executes that automation through n8n, a visual workflow tool that handles the actual credentials and API calls. What makes CAAL unusual is its security design: the AI model itself never sees your API keys or passwords. Instead, it just tells n8n which workflow to run and what parameters to use, and n8n handles authentication separately. This means even if someone tricks the AI into doing something unexpected, it cannot access or leak your credentials. You can control smart home devices via Home Assistant, search the web via DuckDuckGo, chain multiple tools together in a single spoken request, and extend CAAL's capabilities by installing community-built workflows from a shared Tool Registry where every submission goes through security review before publishing. It runs on NVIDIA GPU hardware via Docker, with options for CPU-only mode or Apple Silicon Macs. You can use local models via Ollama or connect to cloud providers like Groq or OpenRouter. A wake word ("Hey Cal"), an Android mobile app, and support for English, French, and Italian are all included out of the box.

Copy-paste prompts

Prompt 1
Set up CAAL with Docker on my NVIDIA GPU and connect it to my Home Assistant instance.
Prompt 2
Create an n8n workflow that CAAL can trigger by voice to control my smart lights.
Prompt 3
Configure CAAL to use a local Ollama model instead of a cloud provider like Groq.
Prompt 4
Install the CAAL Android app and set the wake word to Hey Cal.

Frequently asked questions

What is caal?

A self-hosted voice assistant that keeps credentials safe by having n8n, not the AI model, handle authentication for triggered automations.

What language is caal written in?

Mainly TypeScript. The stack also includes TypeScript, LiveKit, n8n.

How hard is caal to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is caal for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.