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.Bun 1.3.10+
Bun is used as the package manager and runtime across the monorepo.PostgreSQL
Zuko uses PostgreSQL for all data storage. Any recent version works.API keys
Required:- OpenAI API key — for AI chat. Get one at platform.openai.com
- GitHub OAuth credentials — for authentication. Create an OAuth App at github.com/settings/developers
- 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.