Motel Debug
kitlangton/motel
Debug applications with motel, a local OpenTelemetry ingest and query server.
OpenTelemetry Weaver registry authoring, codegen, and CI enforcement.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-weaver --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/otel-weaver .claude/skills/otel-weaver && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "otel-weaver" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-weaver into .claude/skills/otel-weaver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-weaver", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-weaverType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-weaver --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/otel-weaver .agents/skills/otel-weaver && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "otel-weaver" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-weaver into .agents/skills/otel-weaver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-weaver", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-weaver --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/otel-weaver .cursor/skills/otel-weaver && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "otel-weaver" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-weaver into .cursor/skills/otel-weaver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-weaver", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ollygarden/opentelemetry-agent-skills.git --path skills/otel-weaver--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-weaver --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/otel-weaver .gemini/skills/otel-weaver && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "otel-weaver" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-weaver into .gemini/skills/otel-weaver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-weaver", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-weaverInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/otel-weaver .github/skills/otel-weaver && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "otel-weaver" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-weaver into .github/skills/otel-weaver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-weaver", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-weaver --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/otel-weaver .opencode/skills/otel-weaver && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "otel-weaver" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-weaver into .opencode/skills/otel-weaver/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-weaver", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
otel-weaverOpenTelemetry Weaver registry authoring, codegen, and CI enforcement.
Otel Weaver is an agent skill from ollygarden/opentelemetry-agent-skills. OpenTelemetry Weaver registry authoring, codegen, and CI enforcement. Use when adopting Weaver, authoring or reviewing a registry (manifest, attributes, metrics, spans, events), writing Jinja2 templates against the resolved schema, migrating hand-maintained telemetry constants, or wiring weaver registry check/generate/diff into CI.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/ci-integration.md`, `references/migration-playbook.md` and `references/registry-authoring.md`).
It sits in DevOps & Cloud, covering Observability and Project scaffolding. It works with OpenTelemetry. The repository describes itself as: Vendor-neutral OpenTelemetry skills for AI coding agents like Claude Code, Cursor, and Codex, grounded in upstream sources. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9900032. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
gitbrewruffFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Otel Weaver loads about 2.7k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 88 tokens; SKILL.md has 1,349 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ollygarden/opentelemetry-agent-skills at commit 9900032, republished under its Apache-2.0 licence (© ollygarden). 1,349 words, ~2,745 tokens.
.claude/skills/otel-weaver/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Use this skill when an organization wants to define its own semantic conventions on top of upstream OTel and generate language bindings from them.
Usage:
otel-semantic-conventions to decide which attributes already exist upstream and should not be redeclared in the local registryotel-sdk-versions only for SDK package selection; Weaver versions are tracked separately at https://github.com/open-telemetry/weaver/releasesIf a companion skill is unavailable:
schemas/semconv-syntax.v2.md, and docs/usage.md / docs/validate.mdThree moving parts:
manifest.yaml is required; its schema_url (OTel schema URL format, http[s]://host/path/<version>) both names the registry and carries its version in the final path segment. Dependency entries also require schema_url plus optional registry_path. The rest declare attributes, metrics, spans, events, entities. The version segment of schema_url is yours to manage; bump it on changes. (semconv_version and schema_base_url are deprecated in favor of schema_url; top-level name is not a v0.26.1 manifest field.)break/continue are supported) plus a weaver.yaml per target language describing which templates to run, with what filter, in what application_mode, and with what output filename.before_resolution (raw parsed groups; unsupported and skipped with --v2), after_resolution (resolved registry), comparison_after_resolution (only when --baseline-registry is passed), and live_check_advice (per-sample during live-check). Built-in OTel policies are the floor; custom policies layer on org rules.These three replace a hand-rolled const.go (or equivalent): const blocks become the registry, the act of writing them becomes codegen, and tribal knowledge becomes policies.
otel/weaver:vX.Y.Z Docker image, or the setup-weaver GitHub Action). Never brew install weaver — that resolves to an unrelated Scribd tool.ref rather than redeclaring them. Boundary domains (http, db, messaging, rpc, network, gen-ai, ...) belong in upstream OTel semconv, not in a local registry. Use the language SDK's semconv package for those at runtime.stability; include it on enum members too, as required by the v2 syntax guide. Weaver v0.26.1 rejects missing definition stability but reports missing enum-member stability only as a non-fatal warning in normal mode.brief, note, examples, and annotations, but not stability or deprecated; those always come from the attribute definition.ecommerce., acme.) for org-local attributes, metrics, and spans.gofmt -w, prettier, ruff format, ...) on generated output. Jinja whitespace produces multiple blank lines; without formatting, the diff check in CI will fail spuriously.definition/2 registry, call the grouped jq helpers with {"v2": true}; the v2 template ctx preserves fields such as attribute key, metric name, span type/kind and structured span.name.note, plus entity type/identity/description. See references/template-authoring.md for how to dump the exact shape.otel/weaver:vX.Y.Z Docker image, or the setup-weaver GitHub Action. Use Docker for CI and reproducible local runs.manifest.yaml plus one or more definition/2 YAML files declaring attributes, attribute groups, metrics, spans, events, or entities. See references/registry-authoring.md.templates/registry/<lang>/ with weaver.yaml plus *.j2. See references/template-authoring.md.weaver registry check --v2 -r ./telemetry/registry/ for fast feedback. weaver registry generate --v2 --registry ./telemetry/registry/ --templates ./telemetry/templates/ <lang> <output-dir> for codegen. Run the language formatter on the output.check (schema), generate + git diff --exit-code (checked-in code is current), diff against the base branch (surfaces breaking changes). See references/ci-integration.md.The Weaver CLI has more subcommands than this workflow touches: stats and json-schema for quick registry sanity checks, update-markdown for keeping semconv snippets in docs current, emit/live-check/infer for working against live OTLP telemetry, package for writing a self-contained resolved registry artifact (the replacement for the deprecated resolve), mcp for exposing a registry to LLM tooling, and serve for an HTTP+UI mode. All are out of scope here (see below) but worth knowing exist before assuming check/generate/diff is the whole surface.
These cost time and are not obvious from the upstream docs:
brew install weaver installs the wrong tool. Use GitHub releases or Docker.weaver registry generate.definition/2, pass {"v2": true} and use the preserved v2 fields: attribute key, metric name, span type/kind and span.name.note, plus entity type/identity/description. Always generate and inspect the filtered ctx before writing a template.comment Jinja filter takes a keyword argument: attr.brief | comment(format="go"). It already emits the // prefix; do not add another.semconv_grouped_attributes, semconv_grouped_metrics, semconv_grouped_spans, semconv_grouped_events, semconv_grouped_entities). For definition/2, use (for example) semconv_grouped_spans({"v2": true}) as a folded YAML scalar; the bare helper defaults select the legacy schema.weaver registry check emits "File format definition/2 is not yet stable" (a warning) for custom v2 definition files in v0.26.1. This is normal; do not treat it as a failure.--future is opt-in but still elevates the definition/2 instability warning to an error for a custom v2 registry in v0.26.1. Leave it off until the format goes stable.generate: target directory name is positional after --registry and --templates; the output directory follows. --templates points at the parent that contains target dirs, not at the language-specific subdir.type, kind (client/server/producer/consumer/internal), brief, stability, and a structured name: { note: "..." }. For internal business spans, putting the dotted type identifier in name.note and rendering the resolved span.name.note string at runtime is clean._total; this is the current semconv v1.44.0 naming rule.s) under the current semconv v1.44.0 unit guidance.references/registry-authoring.mdreferences/template-authoring.mdreferences/ci-integration.mdreferences/migration-playbook.mdotel-semantic-conventionsmanual-instrumentationThese are natural follow-ups but not part of this skill:
weaver registry package)weaver registry live-check/emit/infer against live OTLP telemetryweaver registry mcp / weaver serveMyMetricName(meter) wrappers)If you authored or modified a Weaver registry, templates, or CI integration:
weaver registry check --v2 against the definition/2 registry and capture the resultweaver registry generate --v2 and the language formatter, then verify git diff --exit-code is cleanReport the final check with:
[x] completed[~] not applicable, with a reason[ ] unresolvedUse these items:
manifest.yaml with a schema_url whose final path segment is the versionstability_total suffixs (seconds)definition/2, call the prebuilt semconv_grouped_* helpers with {"v2": true})check, generate + git diff --exit-code, and diff against the base branch© ollygarden, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts, references) in skills/otel-weaver of ollygarden/opentelemetry-agent-skills.
Open the folder on GitHubat commit 9900032
Otel Weaver next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Otel Weaver this skillollygarden/opentelemetry-agent-skills | 106 | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Motel Debugkitlangton/motel | 298 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Tempsgotempsh/temps | 833 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Axiom Metrics Queryopenclaw/clawhub | 9.5k | — | ~2.6k | Automated safety check: Pass | MIT | |
| UModel Root Cause Analysisalibaba/UnifiedModel | 415 | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Agent Kill Switchvivekchand/clawmetry | 426 | — | ~1.1k | Automated safety check: Pass | MIT |
kitlangton/motel
Debug applications with motel, a local OpenTelemetry ingest and query server.
gotempsh/temps
Manage, deploy, operate, and instrument applications with Temps.
openclaw/clawhub
Explores and queries OpenTelemetry metrics in Axiom MetricsDB, listing datasets, metrics and tags first and picking the right aggregation for each metric's type.
alibaba/UnifiedModel
Investigates a service incident to its root cause by querying a UModel object graph alongside metrics, logs, topology and recent deployments.
vivekchand/clawmetry
Give the human an off switch and a cost meter for the coding agents on this machine, using ClawMetry.
roy-tong/AgentMeasure
Check whether agent telemetry preserves measurement semantics.
ollygarden/opentelemetry-agent-skills
Build custom OpenTelemetry Collector distributions with OCB (OpenTelemetry Collector Builder).
ollygarden/opentelemetry-agent-skills
OpenTelemetry in Go — SDK setup, API surface, breaking changes, contrib instrumentation libraries (otelhttp, otelgrpc, otelmongo), compile-time zero-code instrumentation (otelc), and performance…
ollygarden/opentelemetry-agent-skills
OpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector.
ollygarden/opentelemetry-agent-skills
OpenTelemetry profiles signal and the eBPF profiler (otelcol-ebpf-profiler, profiling receiver).
ollygarden/opentelemetry-agent-skills
Migrate OpenTelemetry Span Events (AddEvent, RecordException, and language equivalents) to the Logs API following the accepted OTEP 4430 migration plan.
ollygarden/opentelemetry-agent-skills
Build safe, version-pinned telemetrygen commands for synthetic OTLP traces, metrics, and logs.
Works with
Categories
OpenTelemetry Weaver registry authoring, codegen, and CI enforcement. Otel Weaver is an agent skill from ollygarden/opentelemetry-agent-skills. OpenTelemetry Weaver registry authoring, codegen, and CI enforcement.
Otel Weaver fits situations like: adopting Weaver; reviewing a registry (manifest; writing Jinja2 templates against the resolved schema; migrating hand-maintained telemetry constants.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a claude-code`. Or copy the skill folder (skills/otel-weaver in ollygarden/opentelemetry-agent-skills) into .claude/skills/otel-weaver in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a codex`. Or copy the skill folder (skills/otel-weaver in ollygarden/opentelemetry-agent-skills) into .agents/skills/otel-weaver in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-weaver -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/otel-weaver, .gemini/skills/otel-weaver, .github/skills/otel-weaver and .opencode/skills/otel-weaver in your project.
Going by SKILL.md and its folder, Otel Weaver needs a shell for the scripts in its folder and the command-line tools its instructions call (git, brew and ruff). Our summary lists: A Bash shell; Docker.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Otel Weaver is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Otel Weaver: Motel Debug (kitlangton/motel, 298 stars), Temps (gotempsh/temps, 833 stars), Axiom Metrics Query (openclaw/clawhub, 9.5k stars) and UModel Root Cause Analysis (alibaba/UnifiedModel, 415 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ollygarden (a GitHub organization) maintains it in ollygarden/opentelemetry-agent-skills, which has 106 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 11, 2026.
Source: ollygarden/opentelemetry-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.