Frigate Installation Project Plan

Frigate Installation Project Plan#

codex resume 01a010cc-f385-7fb1-bda6-375f3a85e303

UniFi Protect remains the primary NVR. Frigate will be an additional detection and classification layer. No installation or configuration should begin until the read-only validation phase is complete.

1. Project Objectives#

1.1 Functional Objectives#

The system will detect animals using Frigate motion detection, object detection, tracking, and zones.

It will distinguish coyotes from chickens, dogs, cats, deer, raccoons, foxes, and unknown animals. The initial tuning priority is avoiding missed coyote detections; false positives can be reduced afterward.

Home Assistant - Local AI Camera Detection Documentation

Local AI Camera Detection Documentation#

codex resume 01a01163-4a3e-7cd2-b780-30eef5e8f62d Continuation: codex resume 01a01b8f-a60c-7f01-9173-c4c189929d3b

This document describes the working local visual-classification implementation and the information required to recreate it. It is documentation, not a task list.

1. Purpose and Design Principles#

1.1 Purpose#

The system adds a second-stage visual classifier to the existing UniFi Protect and Home Assistant installation.

UniFi Protect remains responsible for recording video and detecting broad event categories such as animal, person, or vehicle. Home Assistant receives the Protect event, obtains an image, sends it to a local vision-capable Ollama model, evaluates the structured result, records the decision, and sends a notification only when the objective-specific policy accepts the result.

AI - Pi CLI

Installing and Launching Pi (pi.dev)#

Follow these steps to set up the Pi coding agent on your Mac Studio and link it straight to your custom local short-context models.


1 Environment Preparation#

Because Pi is a JavaScript terminal application, it runs on Node.js. If you do not have Node installed yet, use Homebrew to get it ready.

1.1 Install Node.js via Homebrew#

brew install node

2 Installation#

Install the official global Pi command-line tool. As noted in the documentation, we include the security flag to bypass unnecessary third-party package scripts.

AI - Antigravity

The Antigravity Pro Developer Playbook#

Using an agentic IDE like Antigravity in 2026 requires a shift from “typing code” to “orchestrating intelligence.” This guide covers the mental models and technical strategies to build complex apps like GenDash while maximizing credit efficiency.

1 XCode MCP#

{
  "mcpServers": {
    "xcode-tools": {
      "command": "npx",
      "args": ["-y", "xcodebuildmcp@latest", "mcp"]
    }
  }
}

2 The Model Garage: Choosing the Right Engine#

In Antigravity, you have a team of experts. Don’t use a supercar for a grocery run.

AI - Claude Code CLI

Local AI Coding Agent Setup#

This guide documents the steps taken to install and configure Claude Code to run 100% locally on the Mac Studio M4 (64GB) using Ollama, ensuring complete privacy for local folders and Obsidian vaults.


1. Prerequisites (Mac Studio)#

  • Hardware: Mac Studio M4 (64GB Unified Memory).
  • Environment: Node.js v25.8.0 installed.
  • Local Brain: Ollama installed and running.

2. Install Claude Code (Native)#

Instead of using npm, we used the official native installer from Anthropic for better performance and signed binary security.

AI

1. Prompts#

#gemini

1.1. AI Instructions - Models#

Provide in Markdown. Wrap the entire output—frontmatter and all—inside a single code block using FOUR backticks (````) so that the internal triple-backticks do not break the block. I want one single 'Copy' button for the entire file.
Format the following text into the Proxmox Markdown model below. Wrap the entire output—frontmatter and all—inside a single code block using FOUR backticks (````) so that the internal triple-backticks do not break the block. I want one single 'Copy' button for the entire file.
#Antigravity - Start a new chat
Read the MISSON.md file to bring you up to date. Tell me what you understand from the project. We will do minor corrections during this sessions. Wait for my prompts, do not modify any files now.

#gemini-cli 
   In /Users/marc/Antigravity/GenDash, overwrite codebase.md using a single run_shell_command with a bash loop for maximum speed. Do not use sub-agents. Include ONLY: MISSION.md and these files from the GenDash/ folder: GeneratorProfile.swift, GeneratorRun.swift, HAServer.swift, GeneratorEnums.swift, ConsumptionEngine.swift, EnvironmentalPhysics.swift, HAManager.swift, GenDashApp.swift, BackupManager.swift, OnboardingWizardView.swift, and OperationCostView.swift. For each file, append the following to codebase.md: the string "FILE: " followed by the filename, the string "PATH: "followed by the absolute path, and then the file's content wrapped in a triple-backtick markdown block. Use a case statement in the loop to set the correct language hint (swift or markdown) for each block.
# ANTIGRAVITY TASK: RAG Self-Update (Roadmap) - Gemini 3 Flash

Act as a precise file surgeon following the **Dumb Terminal Protocol**. Your objective is to update the GenDash project roadmap to reflect recently completed work.

**Target File:** `.agent/skills/gendash-roadmap/SKILL.md`

**Update Parameters:**
- **Completed Task/Epic:** [INSERT FINISHED TASK HERE, e.g., Epic 7 Pre-Built Generator Library]
- **Promoted Task/Epic:** [INSERT NEXT TASK HERE, e.g., Epic 6 Trial features]

**Execution Steps:**
1. Read the current contents of the target file.
2. Relocate the **Completed Task** out of the "In Development" section and into the "Completed Features" section. Append today's date to the entry.
3. Relocate the **Promoted Task** into the "In Development" section to set it as the new active priority.
4. Write the updated file to disk immediately. Do NOT modify, summarize, or remove the frontmatter/metadata header at the top of the file. 
5. Execute an atomic git commit with the message: `docs(rag): update roadmap skill - mark [INSERT FINISHED TASK HERE] as complete`
6. Output a brief success confirmation.
# gemini-cli - Approve Plan
This is the proposed Antigravity implementation plan. Comment, no full prompt, comments and new directives only. Add your comments in a markdown block so I can copy and paste.
# Prompt for Antigravity

Prepare a prompt for Antigravity, specify the model and mode to use. Prioritize Gemini Flash or Gemini 3.1 Pro (LOW) when possible. Use markdown. Wrap the entire output—front-matter and all—inside a single code block using FOUR backticks (````) so that the internal triple-backticks do not break the block. I want one single 'Copy' button for the entire file.

Available models:

Gemini 3.1 Pro (High)
Gemini 3.1 Pro (Low)
Gemini 3 Flash
Claude Sonnet 4.6 (Thinking)
Claude Opus 4.6 (Thinking)
GPT-OSS 120B (Medium)

Can we use Gemini 3 Flash for this one?
Do one step at a time, wait for my reply to continue.
# Exit a chat and restore
Summarize our current progress and any pending logic requirements in a single list. Add this to the MISSION.md file
# Replace hardcoded words by keys
Role: Senior iOS Architect
Task: Automated Key-First Migration for `GeneratorProfileForm.swift` and `en.xcloc`.

Objective: Surgically replace literal strings in the Swift code with keys, AND simultaneously update the English localization airlock file.

ACTION 1 (Swift File Surgery):
- Target: `/Users/marc/Antigravity/GenDash/GenDash/GeneratorProfileForm.swift`
- Replace every literal English string (in Text() views or String(localized:)) with a descriptive `UPPER_SNAKE_CASE` key.
- Key Format: `GENERATOR_FORM_[ELEMENT]_[PURPOSE]` (e.g., `GENERATOR_FORM_TITLE_EDIT`).
- Handle all matches found in the file.
  
ACTION 2 (WAIT)
- Wait for marc to execute a build so the keys are populated in /Users/marc/Antigravity/GenDash/GenDash Localizations/en.xcloc and /Users/marc/Antigravity/GenDash/GenDash Localizations/fr.xcloc

ACTION 3 (Airlock Update):
- Path: `/Users/marc/Antigravity/GenDash/GenDash Localizations/en.xcloc/Source Contents/Localizable.xliff`
- For every new key created in Action 1, add a corresponding `<trans-unit>` entry to this XLIFF file.
- The `<source>` must be the technical key (e.g., GENERATOR_FORM_TITLE_EDIT).
- The `<target>` must be the original literal English word/phrase from the code.
- Do the same for Fench
- Path: `/Users/marc/Antigravity/GenDash/GenDash Localizations/fr.xcloc/Source Contents/Localizable.xliff`
- The `<source>` must be the technical key (e.g., GENERATOR_FORM_TITLE_EDIT).
- The `<target>` must be the translated literal French word/phrase

STRICT CONSTRAINTS:
1. DO NOT modify the internal `Localizable.xcstrings` file.
2. DO NOT change any UI layout or logic.
3. Provide a "KEY AND TRANSLATION CHEAT SHEET" table below the code so I can verify the mappings.
# Move fron MISSION.md tile to RAG
Act as a precise file surgeon following the Dumb Terminal Protocol. Your objective is to migrate the monolithic `MISSION.md` file into a modular Antigravity Skills (RAG) architecture. Do not summarize or paraphrase the content; use exact text extraction from the source file.

**Step 1: Read Source**
Read the entire contents of the `MISSION.md` file located in the current root directory.

**Step 2: Directory Creation**
Create the following directory structure in the project root. Do not ask for permission, execute the creation:
- `.agent/skills/gendash-conduct/`
- `.agent/skills/gendash-i18n/`
- `.agent/skills/gendash-hardware/`
- `.agent/skills/gendash-roadmap/`
- `.agent/skills/gendash-architecture/`

**Step 3: File Population (Extract & Write)**
Create a `SKILL.md` file within each of the new directories. Populate them by adding the exact YAML/Text frontmatter defined below at the top of each file, followed immediately by the exact text extracted from the corresponding sections of `MISSION.md`.

**A. Conduct Skill**
- **File:** `.agent/skills/gendash-conduct/SKILL.md`
- **Frontmatter to inject:**
  ```text
  ---
  SKILL_NAME: Rules of Conduct
  STATUS: Static
  PRIORITY: Critical
  ---
  • Content to extract: Extract the entirely of “Section 7. Development Rituals & Workflow” EXCEPT for the Localization/Airlock parts. Ensure the rules for “Dumb Terminal Protocol”, “Atomic Commits”, “No Emojis”, and “Data Sanitization” are included here.

B. i18n Protocol Skill

n8n AI & Database Management

n8n AI & Database Management#


1. Database Administration#

Access the backend Postgres instance to monitor or clear AI-related data.

Access the Database#

docker exec -it n8n_postgres16 psql -U n8n -d n8n

Table Inspection#

-- Count entries in knowledge base
SELECT COUNT(*) FROM n8n_knowledge_base;
-- Count entries in chat history
SELECT COUNT(*) FROM n8n_chat_histories;
-- View table structure
\d n8n_knowledge_base
-- Preview top 20 entries
SELECT * FROM n8n_knowledge_base LIMIT 20;

Maintenance (Data Deletion)#

-- Clear all chat histories
DELETE FROM n8n_chat_histories;
-- Clear all knowledge base vectors
DELETE FROM n8n_knowledge_base;

2. AI Agent: System Prompt (Wally)#

Copy and paste the following into the System Message field of your n8n AI Agent node.

Ollama & Stable Diffusion AI Guide

Ollama & Stable Diffusion AI Guide#

1 HP1GPU - Docker (Ollama Model Inventory)#

1.1 llama3.2:latest (2.0 GB)#

  • Consuming VM: HP1Docker
  • Services:
    • karakeep (Docker)
    • paperless (Docker)
    • [n8n](n8n.md) (Docker)

1.2 qwen3-vl:8b (6.1 GB)#

  • Consuming VM: HP1Docker
    • Service: paperless-ai (Docker)

1.3 gemma3:12b (8.1 GB)#

  • Consuming VM: HP1GPU
  • Service:
    • open-webui (Docker)

1.4 llama3.2-vision:latest (7.8 GB)#

  • Consuming VM: HP1Docker
  • Service:
    • paperless Inactive (Commented out in compose)

1.5 qwen2.5vl:3b (3.2 GB)#

  • Consuming VM: HP1Docker
  • Service: paperless (Testing)
  • Status: Inactive (Commented out in compose)

1.6 glm-ocr:latest (2.2 GB)#

1.7 gemma4::e4b (9.6 GB)#

1.8 nomic-embed-text:latest (274 MB)#

  • Service: Internal Embeddings / RAG
  • Status: Active (Implicit)

2 Ollama Installation & Network Setup#

2.1 Basic Installation#

# Open firewall port
ufw allow 11434/tcp
# Official Install Script
curl -fsSL [https://ollama.com/install.sh](https://ollama.com/install.sh) | sh

2.2 Enable Local Network Access#

To allow other devices to use the AI, you must change the bind address from 127.0.0.1 to 0.0.0.0.