adguardctrl AGENTS.md

Repository instructions for a TypeScript server that provides tools for managing AdGuard Home, a network-wide ad-blocking service, and AdGuardHome Sync. They define the project structure, safety rules, and checks required before a change is considered complete.

In plain words
What is it for?
Use them when changing this repository’s MCP server, which lets AI clients call tools through a standard connection protocol. They guide tool registration, file placement, tests, builds, and safe handling of protected operations.
Why use it?
They reduce the risk of registering tools incorrectly, skipping verification, or bypassing safeguards for write and destructive operations. They also make the project’s definition of done explicit.

Instructions file for CodexOpenCode

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 instructions/lidless-labs/adguardctrl/agents-md
Clone the repo
git clone --depth 1 https://github.com/lidless-labs/adguardctrl

Made for: Codex, OpenCode.

Per session 1,005 This file is loaded in full into every session.
When invoked 1,005 The same file — it is already loaded in full.
Security scan A 0 findings. 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.01005 $0.01005
Opus 5 $0.00502 $0.00502
Sonnet 5 $0.00201 $0.00201
Haiku 4.5 $0.00101 $0.00101

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

Security

Grade A, and why

adguardctrl AGENTS.md scanned grade A with 0 findings 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 2d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 57 lines

How it starts

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

Repository Guidance

Definition of Done

Before reporting any code change as complete, run:

./scripts/verify

It runs npm run typecheck, npm test, and npm run build. Report the actual results, paste failures verbatim, and never claim success you did not observe.

Project Shape

  • TypeScript MCP server for AdGuard Home and AdGuardHome Sync. It exposes 33 tools across read, safe-write, and destructive tiers.
  • mcp-server.ts is the stdio MCP entry point. index.ts is the OpenClaw plugin entry point. Both must register tools through buildAllTools() in src/tools/index.ts.
  • Tool implementations live one per file under src/tools/. When adding or removing a tool, update the explicit import/export list in src/tools/index.ts; it is the canonical registration list.

Hard Prohibitions

  • A pre-push hook exists (hooks/pre-push, wired via core.hooksPath). Never push with --no-verify. If the hook blocks, fix the flagged content or add the documented inline allow tag, then push normally.
  • Never weaken, skip, or delete failing tests, and never weaken or remove the tier gates (assertConfirmedWrite, assertDestructive) to make something pass. Fix the code instead.
  • Never invent npm scripts, tool names, endpoints, or API facts. Verify against package.json, src/tools/index.ts, and the code before citing them.
  • When blocked, report the exact blocker (command, full error output) and stop. Do not work around it silently.

Safety Rules: Tier Gates

  • Adding or editing a Tier-2 write tool: it must call assertConfirmedWrite(raw, NAME) before any network request. Tier-3 destructive tools must call assertDestructive(raw, NAME) before any network request. Reads need no gate.
  • Building a request body: never forward instance, confirm, destructive, or future gate-only fields to AdGuard Home request bodies. Strip them first.
  • Touching credentials: keep credential handling in src/security.ts and register any derived secret forms, especially Basic auth header values, before serving tools.

Read the full file on GitHub · 57 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. 2d ago First seen · 57 lines · 1,005 tokens per session scan A fb381d35c7f0

Subscribe to this mod's changes

adguardctrl AGENTS.md is an instructions file published in the GitHub repository lidless-labs/adguardctrl (2 stars, last pushed 17d ago), licensed MIT. It adds 1,005 tokens to every session, about $0.0050 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.