telegram-ai-bridge: Instructions file for GitHub Copilot

.github/copilot-instructions.md

telegram-ai-bridge copilot-instructions.md is an instructions file for GitHub Copilot from legate-dev/telegram-ai-bridge. It costs 921 tokens per session, scanned A, original, MIT.

Repository instructions for a coding agent working on a Node.js Telegram bridge that connects several AI command-line tools.

In plain words
What is it for?
Use them when changing this Telegram bridge so backends, commands, message handling, database state, configuration, session scanning, and tests follow the project’s stated rules.
Why use it?
They give the agent the project’s architecture, coding conventions, testing approach, and rules against hardcoding values such as paths, ports, and tokens.

Instructions file for GitHub Copilot

Written for GitHub Copilot: a Copilot instructions file. Also seen: mentions Claude Code; mentions Codex.

This is legate-dev/telegram-ai-bridge's own configuration. It tells GitHub Copilot how to work on telegram-ai-bridge itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything telegram-ai-bridge configures →

Reuse

Borrowing it

Nothing to install: this file belongs to legate-dev/telegram-ai-bridge. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/legate-dev/telegram-ai-bridge/main/.github/copilot-instructions.md
Clone the repo
git clone --depth 1 https://github.com/legate-dev/telegram-ai-bridge

Made for: GitHub Copilot.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for telegram-ai-bridge copilot-instructions.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/legate-dev/telegram-ai-bridge/copilot-instructions/github.svg)](https://agentmods.dev/instructions/legate-dev/telegram-ai-bridge/copilot-instructions)
Your own site
<a href="https://agentmods.dev/instructions/legate-dev/telegram-ai-bridge/copilot-instructions"><img src="https://agentmods.dev/badge/instructions/legate-dev/telegram-ai-bridge/copilot-instructions/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for telegram-ai-bridge copilot-instructions.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/legate-dev/telegram-ai-bridge/copilot-instructions"><img src="https://agentmods.dev/badge/instructions/legate-dev/telegram-ai-bridge/copilot-instructions.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 921 This file is loaded in full into every session.
When invoked 921 The same file — it is already loaded in full.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00921 $0.00921
Opus 5.5 $0.00368 $0.00368
Sonnet 5.5 $0.00184 $0.00184
Haiku 4.5 $0.00092 $0.00092

Measured 1mo ago against content hash c67c76dba7f1, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

telegram-ai-bridge copilot-instructions.md scanned grade A 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 1mo ago.

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.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

- **Dependencies:** prefer stdlib (`node:fs`, `node:path`, `node:child_process`) or deps already in `package.json`. Do not add new dependencies without explicit justification. When updating or adding versions, follow the
.github/copilot-instructions.md · 66 lines

How it starts

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

Copilot Coding Agent — Repository Instructions

Project context

This is a Telegram bridge that wraps multiple AI CLI backends (Claude Code, Codex, Kilo, Gemini, Copilot) behind a single bot interface. Node.js, ESM, Grammy (Telegram framework), better-sqlite3 for local state.

Code style

  • ESM imports, no CommonJS
  • No TypeScript — plain JS with JSDoc where helpful
  • node:test + node:assert/strict for tests, no external test frameworks
  • Prefer node: prefix for built-in modules
  • Trailing newline on all files
  • No semicolons except where ASI is ambiguous

Architecture rules

  • Each CLI backend is a class in src/backends.js with a sendMessage() method
  • Chat bindings (which session is bound to which Telegram chat) live in SQLite via src/db.js
  • Commands are registered in src/commands.js, callback queries handled in src/message-handler.js
  • Config comes from env vars via src/config.js — never hardcode paths, ports, tokens, or thresholds
  • Session scanning (discovering CLI sessions on disk) lives in src/cli-scanner.js

No hardcoding

This is non-negotiable:

  • Never hardcode values that could change: URLs, ports, paths, feature flags, thresholds
  • Environment variables for anything deployment-specific — define defaults in src/config.js, document in .env.example
  • Credentials and secrets: never in source, never in commits, never in logs

Security awareness

AI-generated code has a 40-45% vulnerability rate in studies. Actively counter this:

  • SQL: parameterize all queries. This project uses better-sqlite3 with named parameters (@param). Never interpolate user input into SQL strings.
  • Input handling: all Telegram message text and callback data is untrusted user input. Validate and sanitize before using in file paths, shell args, or SQL.
  • Shell execution: this project uses execFile (not exec) for CLI spawning. Never construct shell command strings from user input. Pass arguments as array elements.
  • Secrets in logs: the log module is used throughout. Never log tokens, API keys, session secrets, or user messages in full. Use redactString() from src/log.js for sensitive values.
  • Dependencies: prefer stdlib (node:fs, node:path, node:child_process) or deps already in package.json. Do not add new dependencies without explicit justification. When updating or adding versions, follow the existing package.json versioning convention rather than switching to exact pins.
  • Path traversal: when resolving directories from user input (e.g., /new command workspace path), always canonicalize and validate against allowed paths before use.

Read the full file on GitHub · 66 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. 1mo ago First seen · 66 lines · 921 tokens per session scan A c67c76dba7f1

Subscribe to this mod's changes

telegram-ai-bridge copilot-instructions.md is an instructions file published in the GitHub repository legate-dev/telegram-ai-bridge (1 stars, last pushed 3mo ago), licensed MIT. It adds 921 tokens to every session, about $0.0037 per session on Opus 5.5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories