Anvia Channels Skill

SkillCommunication

Connect Discord, Slack, and Telegram to Anvia agents, channel adapters, agent-backed bots, proactive delivery, sessions, streaming, and platform actions.

Use Anvia Channels Skill in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Anvia Channels Skill and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Anvia Channels Skill skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Anvia Channels SkillStart free

What this skill tells your AI

The instructions your AI receives, as published by anvia-hq/anvia in skills/anvia-channels/SKILL.md and read by ahel’s review.

Use this skill when the user wants an Anvia agent reachable from Discord, Slack, or Telegram, needs proactive delivery into a channel from a worker or monitor, or wants to handle raw platform events. The five libraries are private workspace packages — depend on them from the channels workspace (workspace:*), not npm.

Process

  1. Wire the platform adapter (references/adapters.md) — one factory call per platform; credentials from the environment, never literals.
  2. Run an agent behind it (references/channel-agent.md) — sessions and memory, streaming edits, acknowledgements, slash commands, paused approvals.
  3. Send or receive without an agent (references/delivery.md) — sendChannelMessage, long-text splitting, validation, raw event handling.
  4. Run scripts/check-channels.sh from the app root before claiming done.

Minimal slice

import { createChannelAgent } from "@anvia/channel-agent";
import { Agent } from "@anvia/core/agent";
import { OpenAIClient } from "@anvia/openai";
import { telegram } from "@anvia/telegram";

const openai = new OpenAIClient({ apiKey: process.env.OPENAI_API_KEY ?? "" });
const agent = new Agent({
  id: "telegram-assistant",
  model: openai.completionModel({ modelId: "gpt-6-astra", api: "responses" }),
  instructions: "You are a concise assistant. Answer in the sender's language.",
});

const channel = telegram({
  token: process.env.TELEGRAM_BOT_TOKEN ?? "",
  onError: (error, context) => console.error(`[telegram:${context.operation}]`, error),
});

const service = createChannelAgent({
  channel,
  agent,
  streaming: { placeholder: "Thinking…", editIntervalMs: 750 },
  acknowledge: "👀",
  onError: (error, context) => console.error(`[channel-agent:${context.stage}]`, error),
});

await service.start();
process.once("SIGTERM", () => void service.stop());

Output

Prefer one adapter, one agent, environment-read credentials, and a shutdown path for every started service. Point to the relevant reference file instead of pasting its contents into chat.

Signals

GitHub stars
50
Forks
6
Last commit
Oct 2026

ahel review

  • K6low
    bundled executables the agent is told to run

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Item type
skill
Key
anvia-channels
Source
github.com/anvia-hq/anvia