smello

Inspect captured HTTP requests, pytest results, logs, and exceptions to diagnose application failures.

78|Updated Feb 16, 2026
One-click install
npx skills add https://github.com/smelloscope/smello --skill smello-smelloscope
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: smello
Source: https://github.com/smelloscope/smello/tree/main/skills/smello
Command: npx skills add https://github.com/smelloscope/smello --skill smello-smelloscope

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When debugging Python applications, HTTP traffic, test failures, log records, and unhandled exceptions are scattered across terminals and tools, making it hard to see what actually happened during a run. This Skill queries a running Smello server to inspect all captured events in one place and trace which test, endpoint, or call each event happened inside. ## Core Features & Use Cases - Event querying and filtering: List, search, and filter captured events by type (http, http_incoming, test, log, exception), host, method, status code, app, or session using the smello query CLI. - Hierarchy-aware debugging: Resolve runtime parent-child relationships via span IDs to attribute a failed request or log to the exact test or incoming request that produced it, instead of guessing from timestamps. - Instrumented run sessions: Wrap scripts, pytest suites, or web apps with smello run --app --session to capture a tagged debugging session, including gRPC calls from Google Cloud libraries. - Use Case: A user pastes a Smello dashboard URL like http://localhost:5110/#<uuid> and asks what went wrong; the Skill fetches the event, resolves its hierarchy, and explains the failure in context — for example, a ConnectError inside a specific incoming request that returned 500. ## Quick Start Ask the assistant to inspect the events captured by your Smello server at http://localhost:5110 and explain any failed requests, tests, or exceptions it finds.

Frequently Asked Questions about smello

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug failed HTTP requests captured by Smello?

Run smello query with filters like --type http --status 500 --ancestors to list failing requests together with the test or endpoint that made them. Calls that raised before getting a response have a null status code, so list the session's HTTP events and look for summaries showing an exception type instead of a status.

How do I find out which test made a specific HTTP request?

Fetch the event with smello query <id> and inspect its hierarchy.runtime field. Search the parent_span_id (or span_id for logs and exceptions) to pull back the owning operation and its other children in one request, rather than inferring relationships from adjacent timestamps.

Can Smello capture gRPC calls from Google Cloud libraries?

Yes. gRPC calls from libraries like BigQuery, Firestore, Pub/Sub, and Vertex AI appear as HTTP events with grpc:// URLs and protobuf bodies serialized as JSON. The library field in the event data shows grpc as the source.

Why does smello query return nothing for my run?

An empty result exits 0 and means no matches, not an error. Check that the server is reachable with smello query --limit 1, that you are querying the right --app and --session, and that SMELLO_URL points at the correct server. Log capture is opt-in via SMELLO_CAPTURE_LOGS=true.

What are the limitations of smello query result listings?

List results are capped at 200 events with no pagination, so on a busy server narrow queries with --session, --app, or --search instead of assuming the newest 200 cover the run. The smello meta command reads the whole database and is not subject to this limit.