Courier — DevOps skill for Claude Code
A local daemon that carries a question from an agent to a person, and the answer back.
How to install Courier
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open kvaps/courier and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Courier does
A local daemon that carries a question from an agent to a person, and the answer back. Kubernetes-shaped API, pluggable transports, MCP.
Alternatives in DevOps
- Kubernetes 71.9k ★
- Kubeshark — Cluster-wide network observability for Kubernetes 11.8k ★
- Skypilot — Run, manage, and scale AI workloads on any AI infrastructure 9.7k ★
README
courier
A local daemon that carries a question from an agent to a person, and the answer back.
An agent that reaches a decision only you can make has nowhere to put it. It stops, and you find out by opening a session list. courier gives it somewhere to put it: a thread in Telegram, one per agent, that you can also write into at any time — and what you write reaches the agent, waking it if it had stopped.
It is a message daemon with a Kubernetes-shaped API and pluggable transports. Telegram is the first one; nothing above `pkg/backend` knows it exists.
agent ──MCP──►┌─────────┐──telegram──► you
│ courier │
agent ◄─push──└─────────┘◄─────────────
What it looks like
The orchestrator opens a thread for an agent:
curl -sX POST localhost:7717/api/v1/conversations -d '{
"metadata": {"name": "externalip-api"},
"spec": {
"channel": "telegram",
"title": "▣ externalip-api",
"agent": {"sink": "claude", "address": "b3b059e2"}
}
}'
The agent asks its question through MCP, and the thread gets:
3/12 — PR #17 (ComputePlane), rewording the overview
A reviewer wants the line about "closing a security gap" dropped — they
read it as convenience, not as protection. Mention security at all?
→ I'd keep one honest sentence: today a catalogue app lands on the shared
cluster, and ComputePlane puts it in an isolated VM
OK?
You reply `OK`. The agent's `ask` call returns with your words. If it had stopped waiting, your message wakes it and arrives as a turn.
Quick start
make build
./courier serve --telegram-chat https://t.me/c/1234567890/1
claude mcp add --transport http courier http://127.0.0.1:7717/mcp
The bot token is read from `~/.claude/channels/telegram/.env` (`TELEGRAM_BOT_TOKEN`), or from the environment, or from `--telegram-token-file`. It is never a flag and never part of a resource — see [The token](#the-token).
The bot must be an **administrator** of the group, with topics
Related Skills
P9m
Self-hosted Docker sandboxes for teams and AI agents: own Docker daemon per sandbox, a URL for every app, slee
Agent Ready Steam Analytics Platform
An agent-ready Steam analytics platform (Dagster, dbt, BigQuery, dlt, Terraform) with a Kimball warehouse, ass
Remote Shell MCP
Persistent SSH, SFTP, port forwarding, and Docker over MCP. A long-running daemon so sessions, tunnels, and PT
Img Hosting
Private, self-hosted, Imgur-shaped image host on Cloudflare Workers (R2 + D1) — with a Claude Code skill + CLI
Claude Cowork Playbook
Everything you need to use Claude Cowork and ship Claude agents: 3 production-shaped examples, Cowork skills,
Spec Kit Plus
A practical fork of github/spec-kit with patterns & templates for building scalable multi-agent AI systems. Sh
Related Agents
Question Writer
Writes the one review question for a change Belay made on an earned skill, with the answer it expects, so the
Explainer Director
Delegate to this agent to make a vertical first-person making-of video (3-5 min, 公众号/视频号/抖音) with real-data ca
Question Answerer
Draft an application's free-text answers from the user's real resume, the JD brief, and the fit report, handin