Clone the repo
git clone github.com/channeldesk/channeldesk. The whole stack is one
NX monorepo — orchestrator, channel-server, frontend and MCP packages.
ChannelDesk is the AI-native control desk for your home network. Enroll any machine over SSH, turn chat commands into live flows and one-tap quick actions, and watch real Claude Code agents do the work — across every host and cluster you own.
Fair-code · Self-hosted · Your keys, your data · No telemetry
The dashboard ships as an installable PWA. Your homelab has the keys, the SSH access and the project source — you drive it from your phone, your laptop, or a hotel browser. Claude Code runs on your cluster, not in a SaaS tab, with full filesystem and tool access.
brian/channeldesk-site. Permission relay fired before the push;
you allowed it from the chat dock.
Most homelabs are a graveyard of one-off scripts, expired tokens and Telegram bots
that work until they don't. ChannelDesk replaces them with a single, opinionated
stack: an orchestrator that spawns real claude-code subprocesses,
a PWA that gives you a room-centric control desk, and an MCP relay that
plugs both into your devices.
It runs on the boring stack you already trust — Postgres, Redis, k3s — and ships as a single Docker Compose file or a Kustomize bundle. No SaaS account, no phone-home, no proprietary runtime. The whole thing ships under a Sustainable Use License (n8n's, drop-in) and lives in a GitHub repo you can fork.
disk-pressure — cron every 5 min → SSH to cluster:workers → claude-code step → notify on /activity.
Open in canvas →
Enroll a machine with a one-time password — ChannelDesk hands it an
ed25519 key, stores the fingerprint, and from then on agents
chat to it directly. One host, a whole rack, or two clusters across two
houses — same desk, same chat, same Quick Actions.
Cron, webhook, device events and manual runs all flow through the same node graph. A flow can call an LLM step, branch on its output, then dispatch device commands — and the whole run is replayable.
See the Flow Engine →git clone cp .env.example .env docker compose up /cluster — live git clone github.com/channeldesk/channeldesk. The whole stack is one
NX monorepo — orchestrator, channel-server, frontend and MCP packages.
.env.example to .env, paste your
ANTHROPIC_API_KEY and any integration creds you actually use. That's the
only secret-handling you do.
docker compose -f docker-compose.yml up -d spins up Postgres,
Redis, the orchestrator and the dashboard. On k3s, point Flux at the Kustomize
bundle and you're done.
ChannelDesk doesn't bill you per token. It drives the local claude CLI
signed in to your existing Pro or Max subscription — so a session that would cost €40
on the metered API costs you exactly what your monthly plan already costs. No
surprise bills, no "oops we left a flow running overnight", no API key roulette.
claude-code as a subprocess, signed in once.
ChannelDesk runs the official Claude CLI on your box. You log in once with
claude login — using the same Anthropic account that powers Claude.ai
— and the orchestrator spawns subprocesses against that session. The Claude CLI
re-prompts for a fresh login about every 3 days; ChannelDesk surfaces that on the
sessions page so you never get caught out.
✓ opening browser to claude.ai
✓ account: [email protected]
✓ plan: Max (200×)
session token saved to
~/.claude/credentials.json
// channeldesk now uses this
// for every spawned agent.
Every push to master runs a SonarQube scan. The badges below come straight
from channeldesk.hubje.nl/api/badges/… — live, not cached.
Internal SonarQube project · public read-only badge token · numbers above reflect last passing scan on master.
Clone the repo, drop your SSH keys, and chat to your fleet from your own box. No SaaS account, no metered bills, no telemetry.