Agent skill

Motel Debug

by kitlangton in kitlangton/motel

Debug applications with motel, a local OpenTelemetry ingest and query server.

MITAuto-check passedDevOps & Cloud

Install Motel Debug

skills CLI
$ npx skills add kitlangton/motel --skill motel-debug -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kitlangton/motel motel-debug --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kitlangton/motel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/motel-debug .claude/skills/motel-debug && rm -rf skills-src

Use ~/.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/

Facts

Skill name
motel-debug
GitHub stars
298
Token cost
~2.2k tokens
SKILL.md length
879 words
Files
3 (incl. scripts, references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Debug applications with motel, a local OpenTelemetry ingest and query server.

  • Works in 8 steps: Verify motel is running — and start it… → Generate hypotheses → Instrument with tagged debug blocks → …
  • The user wants runtime-evidence debugging with traces
  • SKILL.md covers Workflow, Instrumentation Rules, Query Patterns and Effect, plus 1 more section
  • Runs TypeScript scripts from its folder; calls curl, bunx and git

What it does

Motel Debug is an agent skill from kitlangton/motel. Debug applications with motel, a local OpenTelemetry ingest and query server. Use when the user wants runtime-evidence debugging with traces or logs, wants temporary debug instrumentation that can be removed later, or needs a repo wired to send OTLP/HTTP telemetry to a local motel server. If the target repo uses Effect or @effect/, also read references/effect.md.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/effect.md` and `scripts/clear-motel-debug.ts`).

It sits in DevOps & Cloud, covering Observability and Debugging. It works with OpenTelemetry. The licence is MIT.

When your agent uses it

  • The user wants runtime-evidence debugging with traces
  • Wants temporary debug instrumentation that can be removed later
  • Needs a repo wired to send OTLP/HTTP telemetry to a local motel server

Example prompts

  • “/motel-debug”

Requirements

  • Node.js

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Verify motel is running — and start it if not
  2. Generate hypotheses
  3. Instrument with tagged debug blocks
  4. Reproduce the issue
  5. Analyze evidence
  6. Fix only with evidence
  7. Verify the fix
  8. Clean up

What it can do on your machine

Read from SKILL.md and the folder at commit 3118621. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • curl
    • bunx
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl, bunx and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Motel Debug loads about 2.2k tokens when it runs, and up to ~2.5k if it reads all its reference files. Until then it costs about 95 tokens; SKILL.md has 879 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~95
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.5k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from kitlangton/motel at commit 3118621, republished under its MIT licence (© kitlangton). 879 words, ~2,167 tokens.

Download SKILL.mdSave it as .claude/skills/motel-debug/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
motel-debug
description
Debug applications with motel, a local OpenTelemetry ingest and query server. Use when the user wants runtime-evidence debugging with traces or logs, wants temporary debug instrumentation that can be removed later, or needs a repo wired to send OTLP/HTTP telemetry to a local motel server. If the target repo uses Effect or @effect/*, also read references/effect.md.

Motel Debug

You are in debug mode. Debug with runtime evidence, not guesswork.

Agents guess based on code alone. You need actual runtime data. Motel is the local OpenTelemetry server that collects traces and logs — use it as your evidence loop.

Default local server details:

  • Base URL: http://127.0.0.1:27686
  • OTLP traces: POST /v1/traces
  • OTLP logs: POST /v1/logs
  • Query API: GET /api/*
  • OpenAPI: GET /openapi.json
  • Header: Content-Type: application/json
  • Auth: none by default

If the user provides a different motel URL, use that instead of the default.

Workflow

1. Verify motel is running — and start it if not

Check GET /api/health. If it returns 200, continue.

If it fails (connection refused, timeout, non-200), motel isn't running. Start it as a background daemon — do not launch the TUI, which is interactive and will block your shell:

bash
motel start

motel start ensures the machine-global managed daemon is running, writes runtime files under ${XDG_STATE_HOME:-~/.local/state}/motel/, and returns a JSON status blob. It is idempotent and shared across local projects. If motel isn't on PATH, fall back to bunx @kitlangton/motel start.

After starting, re-check GET /api/health (may take 1–2s to become ready). If it still fails, read ${XDG_STATE_HOME:-~/.local/state}/motel/daemon.log for the error and surface it to the user.

Other lifecycle commands, for reference:

bash
motel status   # JSON status (running? pid? originating workdir?)
motel stop     # stop the shared managed daemon for all local projects

Discover reporting services with GET /api/services when needed.

2. Generate hypotheses

Before touching any code, generate 3-5 specific hypotheses about why the bug occurs. Be precise — "the cache key doesn't include the user ID" is better than "something is wrong with caching."

3. Instrument with tagged debug blocks

Add the minimum instrumentation needed to confirm or reject all hypotheses in parallel. Every debug block must:

  • Be wrapped in #region motel debug / #endregion motel debug markers
  • Include a debug.hypothesis attribute linking it to a specific hypothesis
  • Use whatever tracing/logging mechanism the codebase already has (spans, structured logs, annotations — not raw fetch calls)

Tag every piece of debug instrumentation with structured attributes so you can query it later. Reuse these keys:

KeyPurpose
debug.sessionGroups all instrumentation for this debug session
debug.hypothesisLinks to a specific hypothesis (e.g. "cache-miss", "A")
debug.stepPosition in the flow (e.g. "entry", "before-write", "after-read")
debug.labelHuman-readable description of what this point captures

Choose log placements based on your hypotheses:

  • Function entry with parameters
  • Function exit with return values
  • Values before and after critical operations
  • Branch execution paths (which if/else ran)
  • State mutations and intermediate values
  • Suspected error or edge-case values

Guidelines:

  • At least 1 instrumentation point is required; never skip instrumentation
  • Do not exceed 10 — if you think you need more, narrow your hypotheses
  • Typical range is 2-6
4. Reproduce the issue
  • If a failing test exists, run it directly
  • If reproduction is straightforward (CLI command, curl, simple script), write and run it yourself
  • Otherwise, ask the user to reproduce — provide clear numbered steps and remind them to restart if needed
  • Once a reproduction pathway is established, reuse it for all subsequent iterations
5. Analyze evidence

Query motel for the debug instrumentation:

bash
curl "http://127.0.0.1:27686/api/spans/search?service=<service>&attr.debug.hypothesis=<id>"
curl "http://127.0.0.1:27686/api/logs/search?service=<service>&attr.debug.session=<session>"
curl "http://127.0.0.1:27686/api/traces/search?service=<service>&attr.debug.hypothesis=<id>"

For each hypothesis, evaluate: CONFIRMED, REJECTED, or INCONCLUSIVE — cite specific spans, logs, or attribute values as evidence.

6. Fix only with evidence

Do not fix without runtime evidence. When you fix:

  • Keep all debug instrumentation in place — do not remove it yet
  • Make the fix as small and targeted as possible
  • Reuse existing architecture and patterns; do not overengineer
Show full SKILL.md (333 more words)Show less
7. Verify the fix

Reproduce the issue again with instrumentation still active. Compare before/after evidence:

  • Cite specific log lines or span attributes that prove the fix works
  • If the fix failed: revert code changes from rejected hypotheses (do not let speculative fixes accumulate), generate new hypotheses from different subsystems, add more instrumentation, and iterate
  • Iteration is expected. Taking longer with more data yields better fixes.
8. Clean up

Only after the fix is verified and the user confirms there are no remaining issues:

  • Run the cleanup script or remove blocks manually (see Cleanup section below)
  • Run git diff to confirm only the intentional fix remains

Instrumentation Rules

Wrap every temporary debug block in these exact markers:

ts
// #region motel debug
// temporary debug instrumentation
// #endregion motel debug

Use whatever the codebase already provides for tracing and logging. The markers are language-comment wrappers — adapt the comment syntax for non-JS/TS files (e.g. # #region motel debug for Python).

Do not:

  • Log secrets, tokens, passwords, or raw PII
  • Remove instrumentation before post-fix verification succeeds
  • Use setTimeout, sleep, or artificial delays as a "fix"
  • Let code changes from rejected hypotheses accumulate — revert them

Query Patterns

Two filter prefixes for attribute search:

PrefixMatch typeExample
attr.<key>=<value>Exact matchattr.debug.hypothesis=cache-miss
attrContains.<key>=<substring>Case-insensitive substringattrContains.ai.prompt.messages=hello world
bash
curl http://127.0.0.1:27686/api/health
curl http://127.0.0.1:27686/api/services

# Trace search
curl "http://127.0.0.1:27686/api/traces/search?service=<service>&operation=<text>&attr.debug.session=<session>"

# Span search (supports traceId to scope to one trace)
curl "http://127.0.0.1:27686/api/spans/search?service=<service>&traceId=<trace-id>&attr.debug.hypothesis=<id>"
curl "http://127.0.0.1:27686/api/spans/search?service=<service>&attrContains.ai.prompt.messages=<phrase>"

# Log search (supports severity filter, case-insensitive body search)
curl "http://127.0.0.1:27686/api/logs/search?service=<service>&severity=ERROR&body=<text>"
curl "http://127.0.0.1:27686/api/logs/search?service=<service>&attrContains.debug.label=<substring>"

# AI call search (compact summaries with previews)
curl "http://127.0.0.1:27686/api/ai/calls?model=gpt-5.4&sessionId=<session>"
curl "http://127.0.0.1:27686/api/ai/calls?text=<phrase>&status=error"

# AI call detail (full prompt/response payloads)
curl "http://127.0.0.1:27686/api/ai/calls/<span-id>"

# AI stats
curl "http://127.0.0.1:27686/api/ai/stats?groupBy=model&agg=total_input_tokens"

curl http://127.0.0.1:27686/openapi.json

List and search responses include meta.nextCursor when more data is available.

Motel gives you trace-correlated data — you can see which span a debug log belongs to, the parent operation, timing, and the full trace tree. Use GET /api/traces/<trace-id>/spans and GET /api/spans/<span-id>/logs to navigate the correlation.

For AI/LLM calls, use /api/ai/calls for compact searchable summaries (with prompt/response previews and token usage), and /api/ai/calls/<span-id> for full payloads.

Effect

If the target repo uses Effect, read references/effect.md before changing runtime wiring or adding instrumentation.

Cleanup

Use the bundled script at scripts/clear-motel-debug.ts when you want deterministic cleanup. It removes every block between #region motel debug and #endregion motel debug in JS/TS files and fails on unmatched markers.

If you cannot run the script, delete every marked block manually and then grep for #region motel debug to confirm none remain.

© kitlangton, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts, references) in skills/motel-debug of kitlangton/motel.

  • SKILL.md
  • references/effect.md
  • scripts/clear-motel-debug.ts

Open the folder on GitHubat commit 3118621

Compare with similar skills

Motel Debug 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.

Motel Debug compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Motel Debug this skillkitlangton/motel298—~2.2kAutomated safety check: PassMIT
Enforcing Nophi Loggingmaziyarpanahi/openmed5.5k—~1.9kAutomated safety check: PassApache-2.0
Aspiremicrosoft/aspire.dev1964 repos~1.1kAutomated safety check: PassMIT
Codex Session Debuggingweave-os/router5.6k—~4.5kAutomated safety check: WarnApache-2.0
Aspire Service DefaultsAaronontheweb/dotnet-skills1.2k1 repos~2.6kAutomated safety check: PassMIT
Log Aggregationaspectrr/deer405—~1.4kAutomated safety check: PassMIT

Similar skills

  • Enforcing Nophi Logging

    maziyarpanahi/openmed

    Add a logging and telemetry guard that scrubs or blocks PHI from logs, traces, and error reports around an OpenMed deployment.

    5.5k GitHub stars~1.9k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Aspire

    microsoft/aspire.dev

    Official

    Orchestrates Aspire distributed applications using the Aspire CLI for running, debugging, and managing distributed apps.

    196 GitHub starsUsed in 4 repos~1.1k tokens
    DevOps & CloudAuto-check passed
  • Correlates a Codex CLI session's local transcript with a model router's production logs to explain why a reply rendered the way it did.

    5.6k GitHub stars~4.5k tokensUpdated today
    DevOps & CloudAuto-check: warnings
  • Aspire Service Defaults

    Aaronontheweb/dotnet-skills

    Sets up a shared ServiceDefaults project for .NET Aspire apps that centralizes OpenTelemetry, health checks, HTTP resilience and service discovery for every service.

    1.2k GitHub starsUsed in 1 repo~2.6k tokens
    DevOps & CloudAuto-check passed
  • Log Aggregation

    aspectrr/deer

    ELK Stack deployment, Logstash pipeline building, Filebeat configuration, and Kibana dashboard setup.

    405 GitHub stars~1.4k tokensUpdated 5 mo ago
    DevOps & CloudAuto-check passed
  • Gcloud Usage

    fcakyon/claude-codex-settings

    This skill should be used when user asks about "GCloud logs", "Cloud Logging queries", "Google Cloud metrics", "GCP observability", "trace analysis", or "debugging production issues on GCP".

    1.2k GitHub stars~871 tokensUpdated yesterday
    DevOps & CloudAuto-check passed

Works with

Questions about Motel Debug

What does Motel Debug do?

Debug applications with motel, a local OpenTelemetry ingest and query server. Motel Debug is an agent skill from kitlangton/motel. Debug applications with motel, a local OpenTelemetry ingest and query server.

When should I use Motel Debug?

Motel Debug fits situations like: the user wants runtime-evidence debugging with traces; wants temporary debug instrumentation that can be removed later; needs a repo wired to send OTLP/HTTP telemetry to a local motel server.

How do I install Motel Debug in Claude Code?

Run `npx skills add kitlangton/motel --skill motel-debug -a claude-code`. Or copy the skill folder (skills/motel-debug in kitlangton/motel) into .claude/skills/motel-debug in your project. Claude Code loads it when a task matches its description.

How do I install Motel Debug in Codex?

Run `npx skills add kitlangton/motel --skill motel-debug -a codex`. Or copy the skill folder (skills/motel-debug in kitlangton/motel) into .agents/skills/motel-debug in your project. Codex loads it when a task matches its description.

Can I use Motel Debug in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kitlangton/motel --skill motel-debug -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/motel-debug, .gemini/skills/motel-debug, .github/skills/motel-debug and .opencode/skills/motel-debug in your project.

What does Motel Debug need to run?

Going by SKILL.md and its folder, Motel Debug needs TypeScript for the scripts in its folder and the command-line tools its instructions call (curl, bunx and git). Our summary lists: Node.js.

Does Motel Debug access the network?

SKILL.md contains no URLs. Its commands use curl and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Motel Debug safe to install?

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.

What licence does Motel Debug use?

Motel Debug is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Motel Debug use?

About 2.2k tokens (SKILL.md is roughly 8.7k 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 334 tokens, read only when the agent opens those files.

What are the alternatives to Motel Debug?

Skills that share tags, products or a category with Motel Debug: Enforcing Nophi Logging (maziyarpanahi/openmed, 5.5k stars), Aspire (microsoft/aspire.dev, 196 stars), Codex Session Debugging (weave-os/router, 5.6k stars) and Aspire Service Defaults (Aaronontheweb/dotnet-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Motel Debug?

kitlangton (a GitHub user) maintains it in kitlangton/motel, which has 298 GitHub stars. The repository was last updated on September 2, 2026.

Source: kitlangton/motel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.