Skip to main content
Zuko is an open-source agentic CRM that combines a modern CRM data model (contacts, companies, deals) with an AI chat experience. Every conversation can be grounded in a specific CRM entity so the AI always has the right customer, deal, or company in context.

Tech stack


Repository structure

Apps

Libraries


Prerequisites

Before setting up Zuko, make sure you have the following installed.

Node.js 22

Zuko requires Node.js 22 (matches the CI environment). Earlier versions will not work.
Install via nvm:

Bun 1.3.10+

Bun is used as the package manager and runtime across the monorepo.
Install Bun:

PostgreSQL

Zuko uses PostgreSQL for all data storage. Any recent version works.

API keys

Required: Optional:
  • LangSmith API key — for agent tracing at smith.langchain.com
  • Deepgram API key — only needed for the meeting bot

Core concepts

CRM entities

Contacts, companies, and deals are the three core CRM entities, modeled in the database and exposed via the backend API.

Agentic chat

An AI chat interface where conversations can be attached to any CRM entity, keeping AI responses grounded in real customer data.

AI agents service

A separate LangGraph service (apps/ai-agents) that runs the agent logic and calls the backend via authenticated /api/agents/* endpoints.

Meeting bot

Joins Google Meet calls, records audio, transcribes via Deepgram, and stores recordings in S3.

MCP server

Zuko exposes an OAuth 2.1 MCP endpoint at /api/mcp so AI clients (Claude Desktop, Cursor, VS Code) can read and write CRM data on behalf of a logged-in user. See the MCP server concept page for the full OAuth flow, available tools, and client setup.