Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add hamzabellouch/agent-skills --skill opencv-computer-visiongit clone --depth 1 https://github.com/hamzabellouch/agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hamzabellouch/agent-skills/opencv-computer-vision)<a href="https://agentmods.dev/skills/hamzabellouch/agent-skills/opencv-computer-vision"><img src="https://agentmods.dev/badge/skills/hamzabellouch/agent-skills/opencv-computer-vision/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hamzabellouch/agent-skills/opencv-computer-vision"><img src="https://agentmods.dev/badge/skills/hamzabellouch/agent-skills/opencv-computer-vision.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00079 | $0.02204 |
| Opus 5 | $0.00039 | $0.01102 |
| Sonnet 5 | $0.00016 | $0.00441 |
| Haiku 4.5 | $0.00008 | $0.00220 |
Grade A, and why
opencv-computer-vision scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 256 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OpenCV Computer Vision & Spatial AI
Production implementations for GPU-accelerated image processing, multi-threaded RTSP video streaming, feature tracking, camera calibration, and 3D spatial position estimation.
1. Computer Vision Architecture
+-------------------+ +--------------------------------+ +---------------------------+
| RTSP IP Camera | ---> | Multi-Threaded VideoReader | ---> | CUDA GpuMat Memory Transfer|
| (1080p @ 60 FPS) | | (Thread-safe Queue Buffer) | | (Zero CPU-GPU copy bottleneck)|
+-------------------+ +--------------------------------+ +---------------------------+
|
v
+-------------------+ +--------------------------------+ +---------------------------+
| Spatial 3D Pose | <--- | Feature Detection & PnP | <--- | GPU Pre-processing |
| (X, Y, Z, R, P, Y)| | (SolvePnP / ArUco Marker) | | (Threshold, Blur, Contours)|
+-------------------+ +--------------------------------+ +---------------------------+
2. Multi-Threaded RTSP Stream Reader (rtsp_reader.py)
A non-blocking, thread-safe RTSP video ingest pipeline with automatic reconnect logic to prevent frame dropping.
import cv2
import threading
import queue
import time
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class RobustVideoSubscriber:
def __init__(self, rtsp_url: str, max_queue_size: int = 5):
self.rtsp_url = rtsp_url
self.frame_queue = queue.Queue(maxsize=max_queue_size)
self.stopped = False
self.cap = None
self.thread = threading.Thread(target=self._update, daemon=True)
def start(self):
self._connect()
self.thread.start()
return self
def _connect(self):
logger.info(f"Connecting to RTSP stream: {self.rtsp_url}")
self.cap = cv2.VideoCapture(self.rtsp_url, cv2.CAP_FFMPEG)
self.cap.set(cv2.CAP_PROP_BUFFERSIZE, 1) # Force minimal buffering latency
def _update(self):
while not self.stopped:
if not self.cap or not self.cap.isOpened():
logger.warning("Stream disconnected. Attempting reconnect...")
time.sleep(2.0)
self._connect()
continue
grabbed, frame = self.cap.read()
if not grabbed:
logger.warning("Failed to grab frame. Reconnecting...")
self.cap.release()
time.sleep(1.0)
self._connect()
continue
# Drop oldest frame if queue is full to enforce real-time processing
if self.frame_queue.full():
try:
self.frame_queue.get_nowait()
except queue.Empty:
pass
self.frame_queue.put(frame)
def read(self):
"""Fetch latest frame non-blocking."""
try:
return True, self.frame_queue.get(timeout=1.0)
except queue.Empty:
return False, None
def stop(self):
self.stopped = True
if self.thread.is_alive():
self.thread.join()
if self.cap:
self.cap.release()
logger.info("RTSP subscriber stopped.")
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 256 lines · 79 tokens per session scan A f3177efd682e
opencv-computer-vision is a skill published in the GitHub repository hamzabellouch/agent-skills (4 stars, last pushed 1mo ago), licensed MIT. It adds 79 tokens to every session and 2,204 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
prompt-engineering
Universal prompt engineering techniques for any LLM. Use when crafting, optimizing, or reviewing prompts for AI models. Triggers on requests like "improve this prompt", "write a system prompt", "optimize my instructions", "help me prompt engineer", "audit this prompt", "review my prompt", or when building agentic…
fixing-prompt
Prompt: Prompt Refinement and Optimization.
streaming-patterns
When designing Kafka consumers/producers or implementing real-time pipelines.
feature-engineering
When building training datasets, designing feature pipelines, or debugging training-serving skew.
inference-serving
When deploying a model to an API endpoint or optimizing inference latency.
model-evaluation
When evaluating a trained model, comparing versions, or performing fairness analysis.