The open-source customer messaging platform.
Live chat, shared inbox, knowledge base, AI-powered support, and automations — all in one place.
Website · Documentation · Issues · Blog
GudDesk is a free and open-source alternative to Intercom, Zendesk, and Freshdesk. It gives your team everything needed to deliver fast, personal customer support — without per-seat pricing or feature gates.
Built by GudLab.
- Live Chat Widget — Embeddable, customizable widget with real-time messaging via Pusher
- Shared Inbox — Manage all customer conversations in one place with assignment, tagging, and prioritization
- Knowledge Base — Create and organize help articles with collections, publishing workflow, and a public help center
- AI-Powered Support — Reply suggestions, conversation summaries, auto-categorization, sentiment analysis, and smart article recommendations (powered by Claude)
- AI Agent Plugins — Connect external bots via REST API and webhooks. Bot messages appear natively in the widget and inbox
- Automations — Rule-based workflows triggered by conversation events (created, closed, message received, tag added, etc.)
- Slack Integration — Get notified in Slack when new conversations arrive
- Visitor Management — Track visitors with metadata, identify returning users
- Canned Responses — Pre-built reply templates for common questions
- Analytics — Dashboard with conversation volume, response times, and resolution metrics
- Self-Hosted — Deploy on your own infrastructure. Your data stays on your servers
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Database | PostgreSQL via Prisma 7 |
| Auth | Auth.js v5 (NextAuth) |
| Real-time | Pusher |
| AI | Anthropic Claude |
| Resend + React Email | |
| UI | Tailwind CSS v4, Radix UI, shadcn/ui |
| Widget | Preact + Vite (Shadow DOM) |
| Content | Contentlayer (docs & blog) |
| Deployment | Vercel (or any Node.js host) |
- Node.js 20+ (we recommend using nvm)
- pnpm (
npm install -g pnpm) - PostgreSQL database (e.g., Neon, Supabase, or local)
git clone https://github.com/gudlab/guddesk-core.git
cd guddesk-core
pnpm installcp .env.example .envFill in the required variables:
# Required
DATABASE_URL="postgresql://..."
AUTH_SECRET="your-secret-here" # Run: openssl rand -base64 32
NEXT_PUBLIC_APP_URL="http://localhost:3000"
RESEND_API_KEY="re_..."
GOOGLE_CLIENT_ID="..."
GOOGLE_CLIENT_SECRET="..."
# Optional — Real-time messaging
PUSHER_APP_ID="..."
PUSHER_SECRET="..."
NEXT_PUBLIC_PUSHER_KEY="..."
NEXT_PUBLIC_PUSHER_CLUSTER="..."
# Optional — AI features (reply suggestions, summaries, etc.)
ANTHROPIC_API_KEY="sk-ant-..."
# Optional — Slack integration
SLACK_CLIENT_ID="..."
SLACK_CLIENT_SECRET="..."pnpm prisma generate
pnpm prisma db pushpnpm run build:widgetpnpm devOpen http://localhost:3000 — create an account, set up your first workspace, and embed the chat widget on your site.
Add this snippet to your website, just before the closing </body> tag:
<script>
window.gudDeskSettings = { appId: "YOUR_APP_ID" };
</script>
<script src="https://your-domain.com/widget.js" async></script>Replace YOUR_APP_ID with the App ID from your workspace settings, and your-domain.com with your GudDesk deployment URL.
guddesk-core/
├── app/ # Next.js App Router pages & API routes
│ ├── (auth)/ # Login, register, password reset
│ ├── (marketing)/ # Landing pages, blog, docs
│ ├── (protected)/ # Dashboard & workspace pages
│ └── api/ # REST API routes (widget, pusher, cron, etc.)
├── actions/ # Server actions (create workspace, send message, AI, etc.)
├── components/ # React components (UI, dashboard, widget preview, etc.)
├── config/ # Site, dashboard, and marketing configuration
├── content/ # MDX content (docs, blog posts, legal pages)
├── emails/ # React Email templates
├── hooks/ # Custom React hooks
├── lib/ # Shared utilities (db, auth, AI, workspace, etc.)
├── packages/
│ └── widget/ # Preact-based chat widget (builds to public/widget.js)
├── prisma/
│ └── schema.prisma # Database schema
├── public/ # Static assets & built widget
└── types/ # TypeScript type definitions
GudDesk integrates with Anthropic's Claude to provide:
- Reply Suggestions — AI-generated response drafts based on conversation context
- Conversation Summaries — One-click summaries for long conversations
- Auto-Categorization — Automatically tag conversations by topic
- Sentiment Analysis — Detect customer frustration or satisfaction
- Article Suggestions — Recommend relevant knowledge base articles
To enable AI features, set the ANTHROPIC_API_KEY environment variable. All AI features work with your own API key — no additional charges from GudDesk.
GudDesk supports external AI agents that connect via the REST API:
- Listen to webhook events (new message, conversation created, tag added, etc.)
- Read conversation history and knowledge base articles via the API
- Respond by sending messages as the
BOTmessage type - Take actions — assign conversations, add tags, change status
Bot messages appear natively in both the chat widget and the agent inbox. Build agents in any language — Python, TypeScript, Go — using GudDesk's REST API.
- Push your repo to GitHub
- Import into Vercel
- Set environment variables in the Vercel dashboard
- Deploy — Vercel handles the build automatically
Docker Compose support for self-hosted deployments is in development.
pnpm install
pnpm run build
pnpm startWe welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and commit:
git commit -m "Add my feature" - Push to your fork:
git push origin feature/my-feature - Open a pull request
Please ensure your code passes TypeScript checks (pnpm tsc --noEmit) before submitting.
GudDesk Core is open source under the AGPL-3.0 license.
GudDesk is built on the shoulders of amazing open-source projects including Next.js, Prisma, Tailwind CSS, Radix UI, Auth.js, and many more. We're grateful to the open-source community.
Built with care by GudLab