Project Info
The name itself Argus comes from Argus or Argos Panoptes, a many-eyed giant in Greek mythology who's known for his perpetual vigilance, he served the goddess Hera as a watchman. Felt fitting and was a cool thing to build around! π What does Argus do? Argus is the multi-tool for all your enterprise surveillance needs. π°οΈ Surveillance Input Pipeline: MUX Realtime Live streaming & VOD asset generation using RTMP streaming Supabase Edge Functions sync the MUX data stream Gemini 2.5 Pro Vision Analysis for Event & Anomaly detection off generated VOD assets Roboflow 3.0 Object Detection Computer Vision for generating bounding boxes and tracking entities within streams π§© Event Pipeline: Gemini & Roboflow jobs sync with MUX VOD assets creating a event timeline within the viewer & detection display Elasticsearch accessses the Supabase DB through real-time sync and populates the index to allow for semantic searching of events/anomalies Stats are populated based off of Supabase through realtime & the Elasticsearch knowledge base π¬ Interface Pipeline: The AI Chat page accesses all of the available data and allows for direct interaction through various models (Letta Stateful Agent, Kimi K2 Instruct through Groq, Claude 4.5 Sonnet, Claude 4.5 Haiku) Through the Chat interactions, you are able to generate Incident Reports of events & anomalies which are editable through a Tiptap Rich Markdown editor π§βπ»
How we built it
By coding :) π€ βοΈ
Challenges we ran into
Since Argus has so many services, you need to be running at least 4 terminals to host it locally: ngrok server to point MUX webhooks Next.js application Node worker running the workflow services & agents (Gemini, Roboflow, Elasticsearch) Containerized Docker Supabase instance with supabase edge functions ngrok server to point MUX webhooks Next.js application Node worker running the workflow services & agents (Gemini, Roboflow, Elasticsearch) Containerized Docker Supabase instance with supabase edge functions Alongside the terminal suffering, we had to deal with merge conflict misery a few times.... π π
Accomplishments we're proud of
All in all, Argus is the most fleshed out hackathon project we've made so far, it was really satisfying putting it all together and seeing it all work! As someone who's worked in Government IT & Cybersecurity (Carson), it was really cool to create something that has genuine real-world use cases and with some more overall polish could even be shipped as a full tool integrated into security workflows! π€―
What we learned
We learnt a lot about many of the tools provided by CalHacks' sponsors! We had a lot of fun tinkering around with each interface and understanding the capabilities, very cool tools and we are looking forward to spending more time working with them in the future! ποΈποΈποΈ
What's next
Hardware integration (into security cameras for example) Enterprise level security Entity tracking across video streams (did Person A walk from Camera 1 to Camera 3?) More automated workflows & agentic pipelines
ποΈ Argus
AI-Powered Real-Time Video Surveillance & Analysis Platform
Named after Argos Panoptes, the all-seeing giant from Greek mythology known for his perpetual vigilance.
π Awards
Cal Hacks 12.0 Winner:
- π₯ Conway: Most Data-Intensive Application
- π₯ A37: Best Use of A37
What is Argus?
Argus is a comprehensive surveillance platform that combines AI, computer vision, and real-time streaming to deliver intelligent video monitoring with instant threat detection, automated reporting, and semantic search across all your video networks.
Think of it as the multi-tool for enterprise surveillance needs: from live streaming and object detection to AI-powered incident reports.
β¨ Key Features
πΉ Real-Time Surveillance
- RTMP-based live video streaming with MUX integration
- Automatic Video-on-Demand (VOD) asset generation
- Multi-camera management and monitoring
π€ AI-Powered Analysis
- Gemini 2.5 Pro Vision for event and anomaly detection
- Roboflow 3.0 for real-time object detection and entity tracking
- Multi-Model AI Chat to interface with your surveillance data
π Smart Data Management
- Elasticsearch integration for semantic search across events
- Real-time data sync with Supabase edge functions
- Comprehensive event timeline with detection visualization
π Automated Reporting
- AI-generated incident reports based on detected events
- Rich markdown editor (Tiptap) for report customization
- Export and share capabilities
π οΈ Built With
Core Stack:
- Next.js, TypeScript, Tailwind CSS
- Supabase (Database, Auth, Edge Functions)
- MUX (Video streaming)
- Elasticsearch
AI & Computer Vision:
- Google Gemini 2.5 Pro
- Roboflow 3.0
- Claude 4.5 (Sonnet & Haiku)
- Letta
- Groq (Kimi K2)
Streaming:
- RTMP, WebRTC
π₯ Team
- Marcus Lee - Fullstack with focus on backend logic, video processing, and AI capabilities
- Carson Spriggs-Audet - Fullstack with focus on frontend and pipelines (Roboflow, stats, entity processing)
π Acknowledgments
Built at Cal Hacks 12.0 with amazing tools from MUX, Supabase, Google, Anthropic, Roboflow, Elasticsearch, Letta, and Groq.
Analysis
View
Metric
- 48
- 43
- 1
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- CSSIn code
- Google GeminiIn code
- JavaScriptIn code
- Next.jsIn code
- ReactIn code
- SQLIn code
- SupabaseIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Vercel AI SDKIn code
11 of 11 appear in the indexed code.
AI coding agents
- Claude CodeCommits
- CursorConfig
- GitHub CopilotCommits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
1.5 MB
Source files
294
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
GodPuffin/argus
332 files Β· 3.4 MB Β· @ 5fca39b
Structure
Interface
187 files Β· 56%Screens, components and styles rendered to the user.
+9 moreAPI & routing
19 files Β· 6%Request entry points: routes, handlers and controllers.
Application logic
48 files Β· 14%Domain rules, services and shared utilities.
Background jobs
17 files Β· 5%Work run outside a request: tasks, workers and schedules.
Data & schema
35 files Β· 11%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here β open the file browser to check anything the diagram implies.
Languages
- TypeScript75%
- YAML21%
- SQL2%
- JavaScript1%
- CSS1%
- Markdown0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm Β· 122- @ai-sdk/anthropic
- @ai-sdk/groq
- @ai-sdk/mcp
- @ai-sdk/openai-compatible
- @ai-sdk/react
- @base-ui/react
- @dnd-kit/core
- @dnd-kit/modifiers
- @dnd-kit/sortable
- @dnd-kit/utilities
- @elastic/elasticsearch
- @floating-ui/react
- @icons-pack/react-simple-icons
- @letta-ai/vercel-ai-sdk-provider
- @mux/blurup
- @mux/mux-player-react
- @mux/upchunk
- @radix-ui/react-alert-dialog
- +104 more
worker/package.json
npm Β· 13- @ai-sdk/google
- @google/genai
- @supabase/supabase-js
- ai
- axios
- dotenv
- fluent-ffmpeg
- zod
- +5 more
Declared in the repositoryβs manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
AI-generated incident reports with Tiptap editorVerified
Through the Chat interactions, you are able to generate Incident Reports of events & anomalies which are editable through a Tiptap Rich Markdown editor
Claimed on Devposthigh confidenceapp/api/reports/route.ts:45β POST /api/reports converts markdown (via marked) to Tiptap JSON document using StarterKit and Tiptap extensionscomponents/reports/tiptap-editor.tsxβ Rich Tiptap editor component for reportslib/ai-tools.tsβ AI tool set referenced by chat route includes report-related tools
Elastic Agent Builder MCP integration in chatVerified
AI Chat page accesses all of the available data
Claimed on Devpostmedium confidenceapp/api/chat/route.ts:129β Creates an MCP client against Kibana Agent Builder endpoint and merges its tools into the chat toolset when Elasticsearch credentials are present
Elasticsearch semantic search across eventsVerified
Elasticsearch accesses the Supabase DB through real-time sync and populates the index to allow for semantic searching of events/anomalies
Claimed on Devposthigh confidencelib/elasticsearch.tsβ searchContent function queries Elasticsearch indexlib/elasticsearch-sync.tsβ Syncs Supabase records into Elasticsearchapp/api/search/sync/route.tsβ Sync endpoint called by worker after job/event insertworker/analysis-worker.ts:42β Worker POSTs to /api/search/sync after inserting events and analysis results
Event timeline synced with MUX/Gemini/Roboflow jobsVerified
Gemini & Roboflow jobs sync with MUX VOD assets creating an event timeline within the viewer & detection display
Claimed on Devposthigh confidenceworker/analysis-worker.ts:146β Inserts ai_analysis_events tied to asset_id with absolute timestamps computed from job offsetscomponents/watch/event-timeline.tsxβ UI component rendering the event timeline
Gemini 2.5 Pro Vision event/anomaly detectionVerified
Gemini 2.5 Pro Vision Analysis for Event & Anomaly detection off generated VOD assets
Claimed on Devposthigh confidenceworker/gemini-client.tsβ Client wrapping Gemini video analysisworker/analysis-worker.ts:370β Calls analyzeVideoWithGemini on transmuxed MP4 segments and persists summary/tags/entities/events
Multi-camera management and monitoringVerified
Multi-camera management and monitoring
Claimed on readmemedium confidenceapp/api/cameras/route.tsβ CRUD API for camerasapp/api/cameras/[id]/route.tsβ Per-camera route
Multi-model AI chat (Letta, Kimi K2/Groq, Claude Sonnet/Haiku)Verified
The AI Chat page accesses all of the available data and allows for direct interaction through various models (Letta Stateful Agent, Kimi K2 Instruct through Groq, Claude 4.5 Sonnet, Claude 4.5 Haiku)
Claimed on Devposthigh confidenceapp/api/chat/route.ts:206β Switch statement wires claude-sonnet-4.5, claude-haiku-4.5, kimi-k2 (via groq), and stateful-argus (via lettaCloud) to real model providers with API key checks
Roboflow object detection / bounding boxesVerified
Roboflow 3.0 Object Detection Computer Vision for generating bounding boxes and tracking entities within streams
Claimed on Devposthigh confidenceworker/roboflow-detector.ts:10β Calls Roboflow serverless person-detection API and returns bounding-box predictionscomponents/watch/detection-overlay.tsx:1β Renders bounding boxes over video with interpolation between sparse detection frames
RTMP live streaming via MUXVerified
RTMP-based live video streaming with MUX integration
Claimed on readmehigh confidencecomponents/stream/external-stream-setup.tsx:39β Builds rtmps://global-live.mux.com RTMP push URL with stream key for external encodersapp/api/mux/upload/route.ts:27β Creates MUX direct upload via api.mux.com/video/v1/uploads using MUX_TOKEN_ID/SECRET
Stats dashboard from Supabase + ElasticsearchVerified
Stats are populated based off of Supabase through realtime & the Elasticsearch knowledge base
Claimed on Devpostmedium confidencelib/stats-queries.ts:15β Aggregates job/asset/stream stats from Supabaselib/elasticsearch-stats.tsβ Separate module computing stats from Elasticsearch
Supabase Edge Functions sync MUX dataVerified
Supabase Edge Functions sync the MUX data stream
Claimed on Devposthigh confidencesupabase/functions/mux-webhook/index.tsβ Deno edge function that ingests MUX webhook payloads into Supabasesupabase/functions/mux-get-duration/index.tsβ Second edge function fetching MUX asset duration into Supabase
VOD asset generation from MUXVerified
Automatic Video-on-Demand (VOD) asset generation
Claimed on readmehigh confidencesupabase/functions/mux-webhook/index.tsβ Edge function handling MUX webhook events for asset/stream lifecycleworker/analysis-worker.ts:344β Distinguishes VOD vs live source types and builds asset_start_time/asset_end_time clipping URLs
Cross-camera entity tracking (Person A walking from Camera 1 to Camera 3)Claimed only
What's next for Argus: Entity tracking across video streams (did Person A walk from Camera 1 to Camera 3?)
Claimed on Devposthigh confidenceEnterprise-level securityClaimed only
What's next for Argus: Enterprise level security
Claimed on Devpostmedium confidenceHardware integration into security camerasClaimed only
What's next for Argus: Hardware integration (into security cameras for example)
Claimed on Devposthigh confidenceWebRTC streamingClaimed only
Streaming: RTMP, WebRTC
Claimed on readmemedium confidence
An AI agent derived these features from the projectβs Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.