Show HN: Grafana Cloud observability plugin for Hermes Agent

oboroten1 pts0 comments

GitHub - alexander-akhmetov/sigil-hermes: Grafana AI observability plugin for Hermes Agent · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

alexander-akhmetov

sigil-hermes

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>24 Commits<br>24 Commits

.github/workflows

.github/workflows

src/hermes_plugin_sigil

src/hermes_plugin_sigil

tests

tests

.gitignore

.gitignore

LICENSE

LICENSE

README.md

README.md

img.png

img.png

llms.txt

llms.txt

plugin.yaml

plugin.yaml

pyproject.toml

pyproject.toml

View all files

Repository files navigation

sigil-hermes

Grafana AI Observability plugin for Hermes Agent. Records LLM calls and tool executions as Sigil generations and emits OTel traces + metrics.

Install

Preferred: let your agent do it

Paste this into Hermes (or any Claude / Codex / Cursor / similar agent that can fetch URLs):

Install and configure the Grafana AI Observability plugin for me by following<br>https://raw.githubusercontent.com/alexander-akhmetov/sigil-hermes/main/llms.txt

The agent will walk you through pip install, ~/.hermes/config.yaml, and the credential collection from Grafana Cloud. It will also explain what conversation data flows by default and how to tune it before turning anything on.

Manual

pip install git+https://github.com/alexander-akhmetov/sigil-hermes

Install into the same Python environment hermes runs from (which hermes to check). Then enable the plugin in ~/.hermes/config.yaml:

plugins:<br>enabled:<br>- sigil

Hermes's plugins enable CLI does not see pip-installed plugins yet — it only scans ~/.hermes/plugins/ and the bundled directory. Editing the YAML directly is the workaround.

Configure

Two independent channels, each optional: generations under the canonical SIGIL_* schema, traces and metrics under the standard OpenTelemetry OTEL_* schema. You can find URLs and tokens in your Grafana account: https://grafana.com/orgs/{org}.<br>If you do not have a Grafana Cloud account, you can create one for free at https://grafana.com/auth/sign-up/create-user/. The free tier is enough to run this plugin.

.grafana.net"<br>export SIGIL_PROTOCOL=http<br>export SIGIL_AUTH_MODE=basic<br>export SIGIL_AUTH_TENANT_ID=""<br># Find this token in your stack info → "AI Observability" card at<br># https://grafana.com/orgs/{org-id}/stacks/{stack-id}<br>export SIGIL_AUTH_TOKEN=""

# Traces + metrics → Grafana Cloud OTLP gateway (standard OTel envs)<br>export OTEL_EXPORTER_OTLP_ENDPOINT="https://otlp-gateway-prod-.grafana.net/otlp"<br># OTEL_EXPORTER_OTLP_HEADERS is optional: when unset, the plugin derives<br># Authorization=Basic base64("$SIGIL_AUTH_TENANT_ID:$SIGIL_AUTH_TOKEN") plus<br># X-Scope-OrgID. That only works when the OTLP gateway's basic-auth username<br># equals SIGIL_AUTH_TENANT_ID. If the OTLP instance ID differs, set it<br># explicitly with that username (override per signal with<br># OTEL_EXPORTER_OTLP_TRACES_HEADERS / _METRICS_HEADERS):<br># Base64 of ":" — see your stack's<br># "OpenTelemetry" card.<br>export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic ""># Generations → Sigil API (Conversations)<br>export SIGIL_ENDPOINT="https://sigil-prod-.grafana.net"<br>export SIGIL_PROTOCOL=http<br>export SIGIL_AUTH_MODE=basic<br>export SIGIL_AUTH_TENANT_ID=""<br># Find this token in your stack info → "AI Observability" card at<br># https://grafana.com/orgs/{org-id}/stacks/{stack-id}<br>export SIGIL_AUTH_TOKEN=""

# Traces + metrics → Grafana Cloud OTLP gateway (standard OTel envs)<br>export OTEL_EXPORTER_OTLP_ENDPOINT="https://otlp-gateway-prod-.grafana.net/otlp"<br># OTEL_EXPORTER_OTLP_HEADERS is optional: when unset, the plugin derives<br># Authorization=Basic base64("$SIGIL_AUTH_TENANT_ID:$SIGIL_AUTH_TOKEN") plus<br># X-Scope-OrgID. That only works when the OTLP gateway's basic-auth username<br># equals SIGIL_AUTH_TENANT_ID. If the OTLP instance ID differs, set it<br># explicitly with that username (override per signal with<br># OTEL_EXPORTER_OTLP_TRACES_HEADERS / _METRICS_HEADERS):<br># Base64 of ":" — see your stack's<br># "OpenTelemetry" card.<br>export...

grafana hermes export plugin otlp sigil

Related Articles