kvaps

Courier — DevOps skill for Claude Code

DevOps community

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