Monitor your security cameras with locally processed AI
TL;DR Highlight
How to analyze CCTV in real-time with AI on edge devices — no cloud required.
Who Should Read
Developers building self-hosted surveillance systems on home servers or Raspberry Pis, or self-hosting enthusiasts who avoid cloud-based security camera services for privacy and cost reasons.
Core Mechanics
- Camera footage processed with AI inference locally on the machine — no cloud upload needed
- Local LLM runtime (Ollama) paired with vision models (LLaVA, moondream) for video analysis
- Motion detection events trigger frame capture → AI query in natural language ('what do you see?')
- Alert conditions customizable via prompts — e.g., 'alert if person detected', 'alert if car in driveway'
Evidence
- Original paper text not available for quantitative data — content below is based on title inference
- Local inference with no network latency — ~1-3 sec/frame on CPU-only (no GPU)
- $0/month cloud costs vs. cloud API services (excluding hardware costs)
How to Apply
- Set up Frigate NVR + Ollama (moondream model): motion detection → MQTT event → frame capture → Ollama API call → send results as Home Assistant notifications.
- Branch prompts by scenario: 'If there is a person in this image, say YES. Otherwise, say NO.' — forcing short answers simplifies parsing.
- Raspberry Pi 5 or low-power x86 mini PC + USB camera for cheapest setup. Add a Coral TPU for faster inference.
Code Example
# Python example: Analyze camera frames with a local Ollama vision model
import ollama
import base64
from pathlib import Path
def analyze_frame(image_path: str, alert_condition: str) -> str:
image_data = base64.b64encode(Path(image_path).read_bytes()).decode()
response = ollama.chat(
model='moondream', # or llava:7b
messages=[
{
'role': 'user',
'content': f'{alert_condition}\nLook at the image and answer with only YES or NO.',
'images': [image_data]
}
]
)
return response['message']['content'].strip()
# Usage example
result = analyze_frame(
'/tmp/motion_capture.jpg',
'Is there a person in this image?'
)
if 'YES' in result.upper():
send_notification('Person detected!')Terminology
Related Papers
Show HN: adamsreview – better multi-agent PR reviews for Claude Code
Claude Code에서 최대 7개의 병렬 서브 에이전트가 각각 다른 관점으로 PR을 리뷰하고, 자동 수정까지 해주는 오픈소스 플러그인이다. 기존 /review나 CodeRabbit보다 실제 버그를 더 많이 잡는다고 주장하지만 커뮤니티에서는 복잡도와 실효성에 대한 회의론도 나왔다.
How Fast Does Claude, Acting as a User Space IP Stack, Respond to Pings?
Claude Code에게 IP 패킷을 직접 파싱하고 ICMP echo reply를 구성하도록 시켜서 실제로 ping에 응답하게 만든 실험으로, 'Markdown이 곧 코드이고 LLM이 프로세서'라는 아이디어를 네트워크 스택 수준까지 밀어붙인 재미있는 사례다.
Show HN: Git for AI Agents
AI 코딩 에이전트(Claude Code 등)가 수행한 모든 툴 호출을 자동으로 추적하고, 어떤 프롬프트가 어느 코드 줄을 작성했는지 blame까지 가능한 버전 관리 도구다.
Principles for agent-native CLIs
AI 에이전트가 CLI 도구를 더 잘 사용할 수 있도록 설계하는 원칙들을 정리한 글로, 에이전트가 CLI를 도구로 활용하는 빈도가 높아지면서 이 설계 방식이 실용적으로 중요해지고 있다.
Agent-harness-kit scaffolding for multi-agent workflows (MCP, provider-agnostic)
여러 AI 에이전트가 서로 역할을 나눠 협업할 수 있도록 조율하는 scaffolding 도구로, Vite처럼 설정 없이 빠르게 멀티 에이전트 파이프라인을 구성할 수 있다.
Show HN: Tilde.run – Agent sandbox with a transactional, versioned filesystem
AI 에이전트가 실제 프로덕션 데이터를 건드려도 롤백할 수 있는 격리된 샌드박스 환경을 제공하는 도구로, GitHub/S3/Google Drive를 하나의 버전 관리 파일시스템으로 묶어준다.