channel-setup

A guided setup tool for enabling a communication channel in a local or tmux-based project environment. It adds missing configuration, installs the plugin, sets the bot token, and guides pairing.

In plain words
What is it for?
Use it after project setup, or when you need to add or re-enable a channel for local operation.
Why use it?
It removes the manual steps needed to connect the project to a supported channel and checks whether setup must happen inside Docker instead.

Skill for Claude CodeCodex

Part of the claude-code-hermit plugin — 19 skills, 4 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/gtapps/claude-code-hermit/channel-setup
Any agent
npx skills add gtapps/claude-code-hermit --skill channel-setup
Clone the repo
git clone --depth 1 https://github.com/gtapps/claude-code-hermit

Made for: Claude Code, Codex.

Or install claude-code-hermit, the plugin that ships this one along with the rest of its 19 skills, 4 agents.

Per session 59 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,616 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00059 $0.04616
Opus 5 $0.00030 $0.02308
Sonnet 5 $0.00012 $0.00923
Haiku 4.5 $0.00006 $0.00462

Measured yesterday against content hash ce43664cef52, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

channel-setup scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

3. `chmod 600 <state_dir>/.env`
plugins/claude-code-hermit/skills/channel-setup/SKILL.md · 305 lines

How it starts

The opening of the file, as written. The whole thing — 305 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Channel Setup

Activate a channel for local/tmux operation, adding the config.json entry first when there isn't one. This mirrors what docker-setup does for Docker users but targets the local environment.

Plan

1. Read config and detect channels

Docker check (first): read .claude-code-hermit/state/runtime.json if it exists.

  • If runtime_mode == "docker": stop and redirect —

    This project is running in Docker. Channel token and pairing must happen inside the container, not on the host. Run /claude-code-hermit:docker-setup — it configures channels container-side. Stop.

  • If runtime.json is missing AND .claude-code-hermit/docker/Dockerfile.hermit exists (Docker scaffolded but not yet booted): same redirect.
  • Otherwise: proceed.

Read .claude-code-hermit/config.json. Collect all entries under channels that are valid objects, tracking which are disabled (enabled: false).

Adding an entry. Where a branch below says create the entry, run (<name> is the lowercase channel key — discord, telegram — never the capitalized option label):

echo '{"channels":{"<name>":{"enabled":true}}}' | bun ${CLAUDE_PLUGIN_ROOT}/scripts/hatch-config.ts "$(pwd)" --reinit >/dev/null

The script fills enabled, dm_channel_id: null, default_chat_id: null, and state_dir (.claude.local/channels/<name>), validates the whole config, preserves every other key, and merges onto an existing entry rather than replacing it. Discard stdout — it prints the full config. A non-zero exit means nothing was written: report the hatch-config: line it printed on stderr and stop — never fall through into steps 2–6 against a channel that isn't in config.json.

  • If no channels configured: offer to add one — AskUserQuestion (header: "Channel") with options Discord, Telegram, Cancel. On Cancel, stop without writing. Otherwise create the entry and continue with that channel selected. Do not offer iMessage here: step 4 defines token vars for Discord and Telegram only.
  • If entries exist but all are disabled: name them, then ask with AskUserQuestion (header: "Channel") — the disabled channel names plus Cancel — which to re-enable. On Cancel, stop without writing. Otherwise create the entry for the chosen name (this flips enabled and leaves dm_channel_id, default_chat_id, state_dir, and allowed_users intact) and continue with it selected.
  • If exactly one enabled channel and nothing disabled: use it automatically.
  • Otherwise (several enabled, or enabled and disabled side by side): ask with AskUserQuestion (header: "Channel") — every channel name as an option, disabled ones labelled <name> — disabled, plus All (enabled channels only) — which to set up. If a disabled name is chosen, create the entry for it first (re-enabling it), then continue with it selected.

Read the full file on GitHub · 305 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday Changed · +1 lines ce43664cef52
  2. 3d ago First seen · 304 lines · 59 tokens per session scan B 870076812ae7

Subscribe to this mod's changes

channel-setup is a skill published in the GitHub repository gtapps/claude-code-hermit (73 stars, last pushed yesterday), licensed MIT. It adds 59 tokens to every session and 4,616 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.

obra/superpowers · 37 tokens

auto-perf-optimize

Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.

microsoft/vscode · 62 tokens

chat-perf

Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.

microsoft/vscode · 51 tokens

chat-pet-sprite-creation

Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.

microsoft/vscode · 53 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens