
Opik
- 26 installs
- 40 repo stars
- Updated August 4, 2026
- akillness/oh-my-skills
opik is a Claude Code skill that wraps Comet's Opik for LLM observability, evaluation, and optimization, wiring tracing, LLM-as-a-judge metrics, and CI evaluation gates.
About
opik wraps Comet's open-source Opik to give a developer LLM observability, evaluation, and optimization from one skill. It installs the SDK, stands up a server on cloud, Docker Compose, or Kubernetes, wires tracing through @opik.track or 50+ framework integrations, and scores outputs with LLM-as-a-judge metrics. Use it when you need LLM tracing, prompt evaluation, production monitoring, or guardrails.
- Wraps Comet's Opik for LLM observability, evaluation, and optimization from one routing-first skill
- Wires tracing via @opik.track or 50+ framework integrations (OpenAI, Anthropic, LangChain, LangGraph)
- Scores outputs with LLM-as-a-judge metrics (Hallucination, Moderation, Answer Relevance) and PyTest CI gates
Opik by the numbers
- 26 all-time installs (skills.sh)
- Ranked #9,702 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
opik capabilities & compatibility
Open-source and self-hostable via Docker/Kubernetes; the Comet.com cloud option needs an API key and workspace.
- Capabilities
- llm observability · llm evaluation · prompt optimization · guardrails
- Works with
- openai · anthropic · docker · kubernetes
- Use cases
- orchestration · testing
- Runs
- Local or remote
- Pricing
- Freemium
What opik says it does
Run Comet's Opik — open-source LLM observability, evaluation, and optimization — from one routing-first skill
score outputs with LLM-as-a-judge metrics (Hallucination, Moderation, Answer Relevance, Context Precision)
npx skills add https://github.com/akillness/oh-my-skills --skill opikAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 26 |
|---|---|
| repo stars | ★ 40 |
| Last updated | August 4, 2026 |
| Repository | akillness/oh-my-skills ↗ |
What it does
Trace, evaluate, and monitor LLM apps and agents with Opik, including LLM-as-a-judge metrics and PyTest CI evaluation gates.
Who is it for?
LLM tracing, prompt evaluation, production LLM monitoring, agent optimization, and guardrails with Opik.
Skip if: LangSmith stacks, generic non-LLM service dashboards, or offline KPI interpretation.
When should I use this skill?
You want LLM tracing, prompt evaluation, production LLM monitoring, or guardrails via Opik.
What you get
LLM calls and agents are traced, scored with judge metrics, and monitored across cloud, Docker, or Kubernetes.
- traced LLM calls and agent activity
- LLM-as-a-judge evaluation scores
- monitoring dashboards
By the numbers
- 50+ framework integrations
- 40M+ traces/day production monitoring
Files
opik — Open-source LLM Observability, Evaluation & Optimization
Opik (built by Comet) streamlines the entire LLM application lifecycle: deep tracing of LLM calls and agent activity, LLM-as-a-judge evaluation, experiment management, production monitoring at scale (40M+ traces/day), plus the Opik Agent Optimizer and Opik Guardrails. This skill is the routing-first wrapper — it picks the right deployment mode, wires the SDK, and drives the trace → evaluate → monitor → optimize loop.
When to use this skill
- The user asks to install or configure Opik (
pip install opik,
opik configure, ./opik.sh)
- The user wants tracing for LLM calls or agents — via
@opik.trackor a
framework integration (OpenAI, Anthropic, LangChain, LangGraph, LlamaIndex, CrewAI, DSPy, Haystack, Ollama, Bedrock, Vercel AI SDK, Pydantic AI, …)
- The user wants LLM-as-a-judge metrics: hallucination detection, moderation,
answer relevance, context precision/recall for RAG
- The user wants Datasets + Experiments evaluation, or PyTest-integrated
LLM evaluation in CI/CD
- The user wants production LLM monitoring dashboards, online evaluation
rules, prompt playground experiments, agent/prompt optimization, or guardrails
When not to use this skill
- The stack is LangSmith, not Opik → use
langsmith - The user needs generic service dashboards/alerts (non-LLM telemetry,
uptime, infra metrics) → use monitoring-observability
- The user wants offline dataset/KPI interpretation rather than LLM
tracing/eval plumbing → use data-analysis
- The user is doing root-cause log forensics on app/container logs →
use log-analysis
Prerequisites
| Requirement | Notes |
|---|---|
| Python 3.8+ (SDK) | pip install opik or uv pip install opik |
| Docker + Docker Compose | Only for local self-hosting via ./opik.sh |
| Kubernetes + Helm | Only for scalable self-hosted deployments |
| Comet.com account | Only for the zero-setup cloud option |
Instructions
Step 1 — Choose the server mode
| Mode | When | How |
|---|---|---|
| Comet.com cloud (easiest) | Quick start, no maintenance | Create a free account, get API key + workspace |
| Docker Compose (local) | Local dev & testing, full control | git clone https://github.com/comet-ml/opik.git && cd opik && ./opik.sh → UI at localhost:5173 |
| Kubernetes / Helm | Production-scale self-hosting | Upstream Helm chart guide |
Docker service profiles (development scenarios):
./opik.sh # full Opik suite (default)
./opik.sh --infra # infrastructure only (databases, caches)
./opik.sh --backend # infrastructure + backend services
./opik.sh --guardrails # enable guardrails with any profile
./opik.sh --help # troubleshootingWindows: powershell -ExecutionPolicy ByPass -c ".\opik.ps1".
Step 2 — Install and configure the SDK
pip install opik # or: uv pip install opik
opik configure # prompts for server address (self-hosted) or API key + workspace (cloud)Or configure in code:
import opik
opik.configure(use_local=True) # local self-hosted instanceTypeScript, and Ruby (via OpenTelemetry) SDKs are also available — see the client reference docs.
Step 3 — Log traces
Prefer a native integration when the framework is supported (50+ available: ADK, AG2, Agno, Anthropic, Autogen, Bedrock, CrewAI, DSPy, Dify, Flowise, Gemini, Haystack, Instructor, LangChain, LangGraph, LiteLLM, LlamaIndex, Mastra, Ollama, OpenAI, OpenAI Agents, OpenRouter, OpenTelemetry, Pydantic AI, Ragas, Semantic Kernel, Smolagents, Spring AI, Vercel AI SDK, WatsonX, …). See `references/commands.md` for the full table.
Fallback for any code path — the track decorator (nest-aware, composes with integrations):
import opik
@opik.track
def my_llm_function(user_question: str) -> str:
# Your LLM code here
return "Hello"Annotate traces/spans with feedback scores via the SDK or the UI.
Step 4 — Evaluate with LLM-as-a-judge metrics
from opik.evaluation.metrics import Hallucination
metric = Hallucination()
score = metric.score(
input="What is the capital of France?",
output="Paris",
context=["France is a country in Europe."],
)
print(score)Built-in judges include Hallucination, Moderation, Answer Relevance, Context Precision/Recall; heuristic metrics and custom metrics are also supported.
Step 5 — Datasets, Experiments, and CI gates
- Manage Datasets and run Experiments to compare prompt/model
variants during development
- Wire evaluations into CI/CD with the PyTest integration so regressions
block merges
- Iterate on prompts/models in the Prompt Playground
Step 6 — Production monitoring and optimization
- Opik is built for scale: 40M+ traces/day ingestion
- Track feedback scores, trace counts, and token usage in the Opik Dashboard
- Add Online Evaluation Rules (LLM-as-a-judge on production traffic) to
catch issues live
- Use Opik Agent Optimizer (dedicated SDK) to improve prompts/agents and
Opik Guardrails for safe-AI policies
Step 7 — Plugin-style installation alongside jeo-skills
This skill folder is plugin-installable through the standard jeo-skills flow so the wrapper, references, and installer script land on disk for any supported agent runtime:
# Project install (writes into .agents/skills/opik/)
npx skills add https://github.com/akillness/jeo-skills --skill opik
# Global install for every detected agent
npx skills add -g https://github.com/akillness/jeo-skills --skill opik
# Target specific agents
npx skills add -g https://github.com/akillness/jeo-skills --skill opik -a claude-code -a codex -yThe skill also ships `scripts/install.sh` as a one-shot installer covering SDK install (uv → pip fallback) and optional local self-hosting (OPIK_INSTALL_MODE=local).
Output format
When the user asks opik for help, return a compact brief:
# opik Routing Brief
## Scope
- Server mode: cloud | docker-local | kubernetes | undecided
- SDK: python | typescript | ruby-otel
- Lifecycle stage: tracing | evaluation | ci-gate | production-monitoring | optimization | guardrails
## Recommended next move
- install-sdk | opik-configure | start-local-server | wire-integration | add-judge-metric | create-dataset-experiment | enable-online-rules
## Why
- 2-3 bullets grounded in the user's packet
## Route-outs
- `langsmith` when the observability stack is LangSmith
- `monitoring-observability` for non-LLM dashboards/alerts
- `data-analysis` for offline KPI/metric interpretationBest practices
1. Start with cloud or `./opik.sh`, not Kubernetes — Helm is for production scale; local Docker Compose answers "does tracing work" in minutes. 2. Prefer a native integration over hand-rolled `@opik.track` when the framework is in the support table — integrations capture provider metadata (tokens, model, latency) automatically. 3. Check the changelog before upgrading a self-hosted server — e.g. v1.7.0 shipped breaking changes. 4. Judge metrics need context — Hallucination and RAG metrics score against the context you pass; empty context produces misleading scores. 5. Gate CI on small, stable datasets — PyTest-integrated experiments should be fast and deterministic; keep large sweeps in scheduled runs. 6. Turn production checks into Online Evaluation Rules instead of re-running offline experiments against live traffic.
References
- Upstream repo: <https://github.com/comet-ml/opik>
- Documentation: <https://www.comet.com/docs/opik/>
- Quickstart: <https://www.comet.com/docs/opik/quickstart/>
- Integrations overview: <https://www.comet.com/docs/opik/integrations/overview/>
- Metrics overview: <https://www.comet.com/docs/opik/evaluation/metrics/overview/>
- Self-host (local): <https://www.comet.com/docs/opik/self-host/local_deployment>
- Self-host (Kubernetes): <https://www.comet.com/docs/opik/self-host/kubernetes/>
- Installer script: `scripts/install.sh`
- Command + integration reference: `references/commands.md`
- Adjacent skills:
../langsmith/SKILL.md,../monitoring-observability/SKILL.md,
../data-analysis/SKILL.md, ../log-analysis/SKILL.md
- License: Apache-2.0 (see upstream
LICENSE)
{
"skill_name": "opik",
"evals": [
{
"id": 1,
"prompt": "We want to trace our LangChain RAG app's LLM calls locally before buying anything. Set us up with Opik.",
"expected_output": "A routing brief that picks local Docker Compose (`./opik.sh`), installs/configures the Python SDK, and wires the native LangChain integration rather than hand-rolled tracking.",
"assertions": [
"Output selects the local Docker Compose server mode (`./opik.sh`) for a no-cost local start, not Kubernetes.",
"Output includes `pip install opik` (or uv equivalent) and `opik configure` / `opik.configure(use_local=True)`.",
"Output prefers the native LangChain integration over a bare `@opik.track` decorator."
]
},
{
"id": 2,
"prompt": "How do I stop our chatbot from hallucinating answers in production, and catch it when it does?",
"expected_output": "An evaluation + production-monitoring plan: LLM-as-a-judge Hallucination metric with proper context, Datasets/Experiments for offline evals, and Online Evaluation Rules on live traffic.",
"assertions": [
"Output uses the Hallucination metric with a `context` argument and warns that empty context produces misleading scores.",
"Output distinguishes offline Datasets/Experiments (with PyTest CI gates) from production Online Evaluation Rules.",
"Output does not re-run offline experiments against live traffic as the production mechanism."
]
},
{
"id": 3,
"prompt": "Our observability stack is LangSmith and we just need better service uptime dashboards.",
"expected_output": "A route-out: LangSmith-stack work goes to the `langsmith` skill and generic non-LLM dashboards/alerts go to `monitoring-observability`, without installing Opik.",
"assertions": [
"Output routes LangSmith-specific work to the `langsmith` skill.",
"Output routes uptime/non-LLM dashboards to `monitoring-observability`.",
"Output does not start an Opik server install for this request."
]
}
]
}
opik command and integration reference
Upstream: <https://github.com/comet-ml/opik> · Docs: <https://www.comet.com/docs/opik/>
Server (self-hosted, Docker Compose)
| Command | Purpose |
|---|---|
git clone https://github.com/comet-ml/opik.git && cd opik | Get the platform sources |
./opik.sh | Start the full Opik suite (UI at <http://localhost:5173>) |
./opik.sh --infra | Infrastructure services only (databases, caches) |
./opik.sh --backend | Infrastructure + backend services |
./opik.sh --guardrails | Enable guardrails with any profile |
./opik.sh --help / --info | Troubleshooting and status |
powershell -ExecutionPolicy ByPass -c ".\opik.ps1" | Windows equivalent |
Kubernetes/Helm for production scale: Kubernetes Installation Guide. Containers run as non-root users. Check the changelog before upgrades (v1.7.0 had breaking changes).
SDK (Python)
| Command / snippet | Purpose |
|---|---|
pip install opik / uv pip install opik | Install the Python SDK |
opik configure | Interactive config: server address (self-hosted) or API key + workspace (Comet.com) |
opik.configure(use_local=True) | Configure in code for a local instance |
@opik.track | Decorator-based trace logging (nest-aware, framework-agnostic) |
from opik.evaluation.metrics import Hallucination | LLM-as-a-judge metric import |
metric.score(input=..., output=..., context=[...]) | Score one output |
TypeScript SDK and Ruby (OpenTelemetry) are also supported — see the client reference.
LLM-as-a-judge metrics (selected)
| Metric | Use |
|---|---|
Hallucination | Output contradicts or invents beyond the given context |
Moderation | Unsafe/inappropriate content detection |
AnswerRelevance | RAG: answer addresses the question |
ContextPrecision / ContextRecall | RAG: retrieved-context quality |
| Heuristic metrics + custom metrics | Deterministic checks and project-specific judges |
Evaluation & CI
- Datasets + Experiments — versioned eval sets and comparison runs
- PyTest integration — run LLM evaluations as CI gates
- Prompt Playground — interactive prompt/model experimentation
Production
- 40M+ traces/day ingestion scale
- Dashboard: feedback scores, trace counts, token usage over time
- Online Evaluation Rules — LLM-as-a-judge on live traffic
- Opik Agent Optimizer — dedicated SDK to improve prompts/agents
- Opik Guardrails — safe and responsible AI policies
Framework integrations (selected, 50+ total)
ADK · AG2 · Agent Spec · AIsuite · Agno · Anthropic · Autogen · Bedrock · BeeAI (Py/TS) · BytePlus · Cloudflare Workers AI · Cohere · CrewAI · Cursor · DeepSeek · Dify · DSPy · Fireworks AI · Flowise AI · Gemini (Py/TS) · Groq · Guardrails AI · Haystack · Harbor · Instructor · LangChain (Py/JS) · LangGraph · Langflow · LiteLLM · LiveKit Agents · LlamaIndex · Mastra · Microsoft Agent Framework (Py/.NET) · Mistral AI · n8n · Novita AI · Ollama · OpenAI (Py/JS) · OpenAI Agents · OpenClaw · OpenRouter · OpenTelemetry · OpenWebUI · Pipecat · Predibase · Pydantic AI · Ragas · Semantic Kernel · Smolagents · Spring AI · Strands Agents · Together AI · Vercel AI SDK · VoltAgent · WatsonX · xAI Grok
Full table with doc links: Integrations overview. Unsupported framework → use @opik.track or open an upstream issue/PR.
#!/usr/bin/env bash
# opik installer wrapper.
# Installs the Opik Python SDK and (optionally) a local self-hosted server.
#
# Env knobs:
# OPIK_INSTALL_MODE — "sdk" (default) installs only the Python SDK;
# "local" also clones the platform and starts ./opik.sh
# OPIK_REF — Git ref / tag / SHA for the local server clone (default: main)
# OPIK_DIR — clone target for local mode (default: ./opik)
# OPIK_PROFILE — optional ./opik.sh profile flag for local mode
# (e.g. --infra, --backend, --guardrails)
#
# Usage:
# bash scripts/install.sh
# OPIK_INSTALL_MODE=local bash scripts/install.sh
# OPIK_INSTALL_MODE=local OPIK_REF=1.7.0 OPIK_PROFILE=--backend bash scripts/install.sh
set -euo pipefail
OPIK_INSTALL_MODE="${OPIK_INSTALL_MODE:-sdk}"
OPIK_REF="${OPIK_REF:-main}"
OPIK_DIR="${OPIK_DIR:-./opik}"
echo "=== opik installer ==="
echo "mode: ${OPIK_INSTALL_MODE}"
# Fast path: SDK already installed → skip network install (FORCE=1 to upgrade).
if [ "${FORCE:-0}" != "1" ] && [ "${OPIK_INSTALL_MODE}" = "sdk" ] \
&& command -v opik >/dev/null 2>&1; then
echo "opik already installed ($(opik --version 2>/dev/null || echo unknown)) — set FORCE=1 to upgrade."
exit 0
fi
echo "[1/2] Installing the opik Python SDK"
if [ -n "${VIRTUAL_ENV:-}" ]; then
# Active venv: install the importable SDK into it
if command -v uv >/dev/null 2>&1; then
uv pip install --upgrade opik
else
pip install --upgrade opik
fi
elif command -v uv >/dev/null 2>&1; then
# No venv: isolated CLI install; keeps system/Homebrew Python untouched (PEP 668)
uv tool install --upgrade opik
echo "NOTE: installed the 'opik' CLI in an isolated uv tool env."
echo " For SDK usage, run 'uv pip install opik' inside your project venv."
elif command -v pip3 >/dev/null 2>&1; then
pip3 install --upgrade opik 2>/dev/null \
|| pip3 install --user --break-system-packages --upgrade opik
else
echo "ERROR: neither uv nor pip is installed." >&2
echo " Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh" >&2
echo " Or pip: python3 -m ensurepip --upgrade" >&2
exit 1
fi
if command -v opik >/dev/null 2>&1; then
echo "[2/2] opik CLI available: $(opik --version 2>/dev/null || echo 'installed')"
else
echo "[2/2] SDK installed (CLI entrypoint not on PATH — check your Python bin dir)."
fi
if [ "${OPIK_INSTALL_MODE}" = "local" ]; then
echo ""
echo "=== Local self-hosted server (Docker Compose) ==="
if ! command -v docker >/dev/null 2>&1; then
echo "ERROR: docker is required for OPIK_INSTALL_MODE=local." >&2
exit 1
fi
if [ ! -d "${OPIK_DIR}/.git" ]; then
git clone https://github.com/comet-ml/opik.git "${OPIK_DIR}"
fi
( cd "${OPIK_DIR}" && git fetch --tags && git checkout "${OPIK_REF}" && ./opik.sh ${OPIK_PROFILE:-} )
echo "Opik UI: http://localhost:5173"
fi
echo ""
echo "Done. Next:"
echo " opik configure # point the SDK at your server / Comet.com workspace"
echo " python -c 'import opik; print(opik.__version__)'"
echo " Then add @opik.track or a framework integration to start logging traces."
N:opik
D:Comet Opik open-source LLM observability/evaluation/optimization — pick a server mode (Comet.com cloud, `./opik.sh` Docker Compose, Kubernetes/Helm), install + `opik configure` the Python SDK, trace via `@opik.track` or 50+ framework integrations, score with LLM-as-a-judge metrics, gate CI with Datasets/Experiments + PyTest, monitor production, and apply Agent Optimizer/Guardrails.
T:Bash|Read|Write|Edit|Glob|Grep|WebFetch
G:opik|comet opik|opik configure|opik.sh|llm observability|llm tracing|llm as a judge|hallucination metric|prompt evaluation|opik dashboard|opik guardrails|agent optimizer
F:Claude|Gemini|Codex|OpenCode
S:
1:Choose server mode — Comet.com cloud, local `./opik.sh` (--infra/--backend/--guardrails), or Kubernetes/Helm
2:Install + configure the SDK — `pip install opik` then `opik configure` (or `opik.configure(use_local=True)`)
3:Log traces — native integration first (LangChain/LangGraph/OpenAI/Anthropic/...), `@opik.track` as the generic decorator
4:Evaluate with LLM-as-a-judge metrics (Hallucination/Moderation/AnswerRelevance/ContextPrecision) — always pass context
5:Run Datasets/Experiments and gate CI via the PyTest integration
6:Production — dashboard, Online Evaluation Rules, Agent Optimizer, Guardrails
R:
langsmith:Use when the observability stack is LangSmith
monitoring-observability:Use for non-LLM dashboards/alerts
data-analysis:Use for offline KPI/metric interpretation
log-analysis:Use for root-cause log forensics
Related skills
FAQ
How do I deploy Opik?
Via Comet.com cloud, local Docker Compose with ./opik.sh, or Kubernetes/Helm for production scale.
How is tracing wired?
Through the @opik.track decorator or one of 50+ framework integrations like OpenAI, Anthropic, and LangChain.