PlanOpticon

Update docs, README, and add interactive CLI menu - Replace README with accurate feature list, install instructions, and output structure - Delete stale README_new.md - Add agent-analyze and auth commands to CLI reference docs - Add periodic capture and face detection to configuration docs - Remove "Coming soon" from cloud sources (already implemented) - Update index features and copyright year - Add interactive numbered menu when running planopticon with no args

leo 2026-02-15 04:37 trunk
Commit ecf907c803bf1dec7776f6d5f27ba46f2121b5d633061cd432d471525772c52d
+101 -176
--- README.md
+++ README.md
@@ -1,176 +1,101 @@
1
-PlanOpticon
2
-Comprehensive Video Analysis & Knowledge Extraction CLI
3
-PlanOpticon is an advanced AI-powered CLI tool that conducts thorough analysis of video content, extracting structured knowledge, diagrams, and actionable insights. Using state-of-the-art computer vision and natural language processing techniques, PlanOpticon transforms video assets into valuable, structured information.
4
-
5
-Core Features
6
-
7
-Complete Transcription: Full speech-to-text with speaker attribution and semantic segmentation
8
-Visual Element Extraction: Automated recognition and digitization of diagrams, charts, whiteboards, and visual aids
9
-Action Item Detection: Intelligent identification and prioritization of tasks, commitments, and follow-ups
10
-Knowledge Structure: Organization of extracted content into searchable, related concepts
11
-Plan Generation: Synthesis of extracted elements into cohesive action plans and summaries
12
-
13
-
14
-Technical Implementation
15
-PlanOpticon leverages cloud APIs and efficient processing pipelines to achieve comprehensive video analysis:
16
-Architecture Overview
17
-```
18
-Video Input → Frame Extraction → Cloud API Integration → Knowledge Integration → Structured Output
19
- ↓ ↓ ↓
20
- Frame Selection API Request Management Result Processing
21
- • Key Frame • Vision API Calls • Content Organization
22
- • Scene Detection • Speech-to-Text API • Relationship Mapping
23
- • Content Changes • LLM Analysis API • Mermaid Generation
24
-```
25
-Key Components
26
-
27
-Cloud API integration for speech-to-text transcription
28
-Vision API utilization for diagram and visual content detection
29
-LLM-powered content analysis and summarization
30
-Efficient prompt engineering for specialized content extraction
31
-Knowledge integration system for relationship mapping and organization
32
-
33
-
34
-Installation
35
-bash# Clone the repository
36
-git clone https://github.com/yourusername/planopticon.git
37
-cd planopticon
38
-
39
-# Create virtual environment
40
-python -m venv venv
41
-source venv/bin/activate # On Windows: venv\Scripts\activate
42
-
43
-# Install dependencies
44
-pip install -r requirements.txt
45
-
46
-# Install optional GPU dependencies (if available)
47
-pip install -r requirements-gpu.txt
48
-
49
-Usage
50
-PlanOpticon is designed as a command-line interface tool:
51
-bash# Basic usage
52
-planopticon analyze --input video.mp4 --output analysis/
53
-
54
-# Specify processing depth
55
-planopticon analyze --input video.mp4 --depth comprehensive --output analysis/
56
-
57
-# Focus on specific extraction types
58
-planopticon analyze --input video.mp4 --focus "diagrams,action-items" --output analysis/
59
-
60
-# Process with GPU acceleration
61
-planopticon analyze --input video.mp4 --use-gpu --output analysis/
62
-Output Structure
63
-analysis/
64
-├── transcript.json # Full transcription with timestamps and speakers
65
-├── key_points.md # Extracted main concepts and ideas
66
-├── diagrams/ # Extracted and digitized visual elements
67
-│ ├── diagram_001.svg
68
-│ └── whiteboard_001.svg
69
-├── action_items.json # Prioritized tasks and commitments
70
-└── knowledge_graph.json # Relationship map of concepts
71
-
72
-Development Guidelines
73
-When contributing to PlanOpticon, please adhere to these principles:
74
-Code Standards
75
-
76
-Follow PEP 8 style guidelines for all Python code
77
-Write comprehensive docstrings using NumPy/Google style
78
-Maintain test coverage above 80%
79
-Use type hints consistently throughout the codebase
80
-
81
-Architecture Considerations
82
-
83
-Optimize for cross-platform compatibility (macOS, Linux, Windows)
84
-Ensure ARM architecture support for cloud deployment and Apple Silicon
85
-Implement graceful degradation when GPU is unavailable
86
-Design modular components with clear interfaces
87
-
88
-
89
-System Requirements
90
-
91
-Python 3.9+
92
-8GB RAM minimum (16GB recommended)
93
-2GB disk space for models and dependencies
94
-CUDA-compatible GPU (optional, for accelerated processing)
95
-ARM64 or x86_64 architecture
96
-
97
-
98
-Implementation Strategy
99
-The core processing pipeline requires thoughtful implementation of several key systems:
100
-
101
-Frame extraction and analysis
102
-
103
-Implement selective sampling based on visual change detection
104
-Utilize region proposal networks for element identification
105
-
106
-
107
-Speech processing
108
-
109
-Apply time-domain speaker diarization
110
-Implement context-aware transcription with domain adaptation
111
-
112
-
113
-Visual element extraction
114
-
115
-Develop whiteboard/diagram detection with boundary recognition
116
-Implement reconstruction of visual elements into vector formats
117
-
118
-
119
-Knowledge integration
120
-
121
-Create hierarchical structure of extracted concepts
122
-Generate relationship mappings between identified elements
123
-
124
-
125
-Action item synthesis
126
-
127
-Apply intent recognition for commitment identification
128
-Implement priority scoring based on contextual importance
129
-
130
-
131
-
132
-Each component should be implemented as a separate module with clear interfaces, allowing for independent testing and optimization.
133
-
134
-Development Approach
135
-When implementing PlanOpticon, consider these architectural principles:
136
-
137
-Pipeline Architecture
138
-
139
-Design processing stages that can operate independently
140
-Implement data passing between stages using standardized formats
141
-Enable parallelization where appropriate
142
-Consider using Python's asyncio for I/O-bound operations
143
-
144
-
145
-Performance Optimization
146
-
147
-Implement batched processing for GPU acceleration
148
-Use memory mapping for large video files
149
-Consider JIT compilation for performance-critical sections
150
-Profile and optimize bottlenecks systematically
151
-
152
-
153
-Error Handling
154
-
155
-Implement comprehensive exception handling
156
-Design graceful degradation paths for each component
157
-Provide detailed logging for troubleshooting
158
-Consider retry mechanisms for transient failures
159
-
160
-
161
-Testing Strategy
162
-
163
-Create comprehensive unit tests for each module
164
-Implement integration tests for end-to-end pipeline
165
-Develop benchmark tests for performance evaluation
166
-Use property-based testing for complex components
167
-
168
-
169
-
170
-The implementation should maintain separation of concerns while ensuring efficient data flow between components. Consider using dependency injection patterns to improve testability and component isolation.
171
-
172
-License
173
-MIT License
174
-
175
-Contact
176
-For questions or contributions, please open an issue on GitHub or contact the maintainers at [email protected].
1
+# PlanOpticon
2
+
3
+**AI-powered video analysis and knowledge extraction.**
4
+
5
+PlanOpticon processes video recordings into structured knowledge — transcripts, diagrams, action items, key points, and knowledge graphs. It auto-discovers available models across OpenAI, Anthropic, and Gemini, and produces rich multi-format output.
6
+
7
+## Features
8
+
9
+- **Multi-provider AI** — Auto-discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
10
+- **Smart frame extraction** — Change detection for transitions + periodic capture for slow-evolving content (document scrolling, screen shares)
11
+- **People frame filtering** — OpenCV face detection automatically removes webcam/video conference frames, keeping only shared content
12
+- **Diagram extraction** — Vision model classification detects flowcharts, architecture diagrams, charts, and whiteboards
13
+- **Knowledge graphs** — Extracts entities and relationships, builds and merges knowledge graphs across videos
14
+- **Action item detection** — Finds commitments, tasks, and follow-ups with assignees and deadlines
15
+- **Batch processing** — Process entire folders of videos with merged knowledge graphs and cross-referencing
16
+- **Rich output** — Markdown, HTML, PDF reports. Mermaid diagrams, SVG/PNG renderings, JSON manifests
17
+- **Cloud sources** — Fetch videos from Google Drive and Dropbox shared folders
18
+- **Checkpoint/resume** — Pipeline resumes from where it left off if interrupted
19
+- **Screengrab fallback** — When extraction isn't perfect, captures frames with captions — something is always better than nothing
20
+
21
+## Quick Start
22
+
23
+```bash
24
+# Install
25
+pip install planopticon
26
+
27
+# Analyze a single video
28
+planopticon analyze -i meeting.mp4 -o ./output
29
+
30
+# Process a folder of videos
31
+planopticon batch -i ./recordings -o ./output --title "Weekly Meetings"
32
+
33
+# See available AI models
34
+planopticon list-models
35
+```
36
+
37
+## Installation
38
+
39
+### From PyPI
40
+
41
+```bash
42
+pip install planopticon
43
+
44
+# With all extras (PDF, cloud sources, GPU)
45
+pip install planopticon[all]
46
+```
47
+
48
+### From Source
49
+
50
+```bash
51
+git clone https://github.com/ConflictHQ/PlanOpticon.git
52
+cd PlanOpticon
53
+pip install -e ".[dev]"
54
+```
55
+
56
+### Binary Download
57
+
58
+Download standalone binaries (no Python required) from [GitHub Releases](https://github.com/ConflictHQ/PlanOpticon/releases).
59
+
60
+### Requirements
61
+
62
+- Python 3.10+
63
+- FFmpeg (`brew install ffmpeg` / `apt install ffmpeg`)
64
+- At least one API key: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or `GEMINI_API_KEY`
65
+
66
+## Output Structure
67
+
68
+```
69
+output/
70
+├── manifest.json # Single source of truth
71
+├── transcript/
72
+│ ├── transcript.json # Full transcript with timestamps
73
+│ ├── transcript.txt # Plain text
74
+│ └── transcript.srt # Subtitles
75
+├── frames/ # Content frames (people filtered out)
76
+├── diagrams/ # Detected diagrams + mermaid code
77
+├── captures/ # Screengrab fallbacks
78
+└── results/
79
+ ├── analysis.md # Markdown report
80
+ ├── analysis.html # HTML report
81
+ ├── analysis.pdf # PDF report
82
+ ├── knowledge_graph.json # Entities and relationships
83
+ ├── key_points.json # Extracted key points
84
+ └── action_items.json # Tasks and follow-ups
85
+```
86
+
87
+## Processing Depth
88
+
89
+| Depth | What you get |
90
+|-------|-------------|
91
+| `basic` | Transcription, key points, action items |
92
+| `standard` | + Diagram extraction (10 frames), knowledge graph, full reports |
93
+| `comprehensive` | + More frames analyzed (20), deeper extraction |
94
+
95
+## Documentation
96
+
97
+Full documentation at [planopticon.dev](https://planopticon.dev)
98
+
99
+## License
100
+
101
+MIT License — Copyright (c) 2026 CONFLICT LLC
177102
178103
DELETED README_new.md
--- README.md
+++ README.md
@@ -1,176 +1,101 @@
1 PlanOpticon
2 Comprehensive Video Analysis & Knowledge Extraction CLI
3 PlanOpticon is an advanced AI-powered CLI tool that conducts thorough analysis of video content, extracting structured knowledge, diagrams, and actionable insights. Using state-of-the-art computer vision and natural language processing techniques, PlanOpticon transforms video assets into valuable, structured information.
4
5 Core Features
6
7 Complete Transcription: Full speech-to-text with speaker attribution and semantic segmentation
8 Visual Element Extraction: Automated recognition and digitization of diagrams, charts, whiteboards, and visual aids
9 Action Item Detection: Intelligent identification and prioritization of tasks, commitments, and follow-ups
10 Knowledge Structure: Organization of extracted content into searchable, related concepts
11 Plan Generation: Synthesis of extracted elements into cohesive action plans and summaries
12
13
14 Technical Implementation
15 PlanOpticon leverages cloud APIs and efficient processing pipelines to achieve comprehensive video analysis:
16 Architecture Overview
17 ```
18 Video Input → Frame Extraction → Cloud API Integration → Knowledge Integration → Structured Output
19 ↓ ↓ ↓
20 Frame Selection API Request Management Result Processing
21 • Key Frame • Vision API Calls • Content Organization
22 • Scene Detection • Speech-to-Text API • Relationship Mapping
23 • Content Changes • LLM Analysis API • Mermaid Generation
24 ```
25 Key Components
26
27 Cloud API integration for speech-to-text transcription
28 Vision API utilization for diagram and visual content detection
29 LLM-powered content analysis and summarization
30 Efficient prompt engineering for specialized content extraction
31 Knowledge integration system for relationship mapping and organization
32
33
34 Installation
35 bash# Clone the repository
36 git clone https://github.com/yourusername/planopticon.git
37 cd planopticon
38
39 # Create virtual environment
40 python -m venv venv
41 source venv/bin/activate # On Windows: venv\Scripts\activate
42
43 # Install dependencies
44 pip install -r requirements.txt
45
46 # Install optional GPU dependencies (if available)
47 pip install -r requirements-gpu.txt
48
49 Usage
50 PlanOpticon is designed as a command-line interface tool:
51 bash# Basic usage
52 planopticon analyze --input video.mp4 --output analysis/
53
54 # Specify processing depth
55 planopticon analyze --input video.mp4 --depth comprehensive --output analysis/
56
57 # Focus on specific extraction types
58 planopticon analyze --input video.mp4 --focus "diagrams,action-items" --output analysis/
59
60 # Process with GPU acceleration
61 planopticon analyze --input video.mp4 --use-gpu --output analysis/
62 Output Structure
63 analysis/
64 ├── transcript.json # Full transcription with timestamps and speakers
65 ├── key_points.md # Extracted main concepts and ideas
66 ├── diagrams/ # Extracted and digitized visual elements
67 │ ├── diagram_001.svg
68 │ └── whiteboard_001.svg
69 ├── action_items.json # Prioritized tasks and commitments
70 └── knowledge_graph.json # Relationship map of concepts
71
72 Development Guidelines
73 When contributing to PlanOpticon, please adhere to these principles:
74 Code Standards
75
76 Follow PEP 8 style guidelines for all Python code
77 Write comprehensive docstrings using NumPy/Google style
78 Maintain test coverage above 80%
79 Use type hints consistently throughout the codebase
80
81 Architecture Considerations
82
83 Optimize for cross-platform compatibility (macOS, Linux, Windows)
84 Ensure ARM architecture support for cloud deployment and Apple Silicon
85 Implement graceful degradation when GPU is unavailable
86 Design modular components with clear interfaces
87
88
89 System Requirements
90
91 Python 3.9+
92 8GB RAM minimum (16GB recommended)
93 2GB disk space for models and dependencies
94 CUDA-compatible GPU (optional, for accelerated processing)
95 ARM64 or x86_64 architecture
96
97
98 Implementation Strategy
99 The core processing pipeline requires thoughtful implementation of several key systems:
100
101 Frame extraction and analysis
102
103 Implement selective sampling based on visual change detection
104 Utilize region proposal networks for element identification
105
106
107 Speech processing
108
109 Apply time-domain speaker diarization
110 Implement context-aware transcription with domain adaptation
111
112
113 Visual element extraction
114
115 Develop whiteboard/diagram detection with boundary recognition
116 Implement reconstruction of visual elements into vector formats
117
118
119 Knowledge integration
120
121 Create hierarchical structure of extracted concepts
122 Generate relationship mappings between identified elements
123
124
125 Action item synthesis
126
127 Apply intent recognition for commitment identification
128 Implement priority scoring based on contextual importance
129
130
131
132 Each component should be implemented as a separate module with clear interfaces, allowing for independent testing and optimization.
133
134 Development Approach
135 When implementing PlanOpticon, consider these architectural principles:
136
137 Pipeline Architecture
138
139 Design processing stages that can operate independently
140 Implement data passing between stages using standardized formats
141 Enable parallelization where appropriate
142 Consider using Python's asyncio for I/O-bound operations
143
144
145 Performance Optimization
146
147 Implement batched processing for GPU acceleration
148 Use memory mapping for large video files
149 Consider JIT compilation for performance-critical sections
150 Profile and optimize bottlenecks systematically
151
152
153 Error Handling
154
155 Implement comprehensive exception handling
156 Design graceful degradation paths for each component
157 Provide detailed logging for troubleshooting
158 Consider retry mechanisms for transient failures
159
160
161 Testing Strategy
162
163 Create comprehensive unit tests for each module
164 Implement integration tests for end-to-end pipeline
165 Develop benchmark tests for performance evaluation
166 Use property-based testing for complex components
167
168
169
170 The implementation should maintain separation of concerns while ensuring efficient data flow between components. Consider using dependency injection patterns to improve testability and component isolation.
171
172 License
173 MIT License
174
175 Contact
176 For questions or contributions, please open an issue on GitHub or contact the maintainers at [email protected].
177
178 ELETED README_new.md
--- README.md
+++ README.md
@@ -1,176 +1,101 @@
1 # PlanOpticon
2
3 **AI-powered video analysis and knowledge extraction.**
4
5 PlanOpticon processes video recordings into structured knowledge — transcripts, diagrams, action items, key points, and knowledge graphs. It auto-discovers available models across OpenAI, Anthropic, and Gemini, and produces rich multi-format output.
6
7 ## Features
8
9 - **Multi-provider AI** — Auto-discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
10 - **Smart frame extraction** — Change detection for transitions + periodic capture for slow-evolving content (document scrolling, screen shares)
11 - **People frame filtering** — OpenCV face detection automatically removes webcam/video conference frames, keeping only shared content
12 - **Diagram extraction** — Vision model classification detects flowcharts, architecture diagrams, charts, and whiteboards
13 - **Knowledge graphs** — Extracts entities and relationships, builds and merges knowledge graphs across videos
14 - **Action item detection** — Finds commitments, tasks, and follow-ups with assignees and deadlines
15 - **Batch processing** — Process entire folders of videos with merged knowledge graphs and cross-referencing
16 - **Rich output** — Markdown, HTML, PDF reports. Mermaid diagrams, SVG/PNG renderings, JSON manifests
17 - **Cloud sources** — Fetch videos from Google Drive and Dropbox shared folders
18 - **Checkpoint/resume** — Pipeline resumes from where it left off if interrupted
19 - **Screengrab fallback** — When extraction isn't perfect, captures frames with captions — something is always better than nothing
20
21 ## Quick Start
22
23 ```bash
24 # Install
25 pip install planopticon
26
27 # Analyze a single video
28 planopticon analyze -i meeting.mp4 -o ./output
29
30 # Process a folder of videos
31 planopticon batch -i ./recordings -o ./output --title "Weekly Meetings"
32
33 # See available AI models
34 planopticon list-models
35 ```
36
37 ## Installation
38
39 ### From PyPI
40
41 ```bash
42 pip install planopticon
43
44 # With all extras (PDF, cloud sources, GPU)
45 pip install planopticon[all]
46 ```
47
48 ### From Source
49
50 ```bash
51 git clone https://github.com/ConflictHQ/PlanOpticon.git
52 cd PlanOpticon
53 pip install -e ".[dev]"
54 ```
55
56 ### Binary Download
57
58 Download standalone binaries (no Python required) from [GitHub Releases](https://github.com/ConflictHQ/PlanOpticon/releases).
59
60 ### Requirements
61
62 - Python 3.10+
63 - FFmpeg (`brew install ffmpeg` / `apt install ffmpeg`)
64 - At least one API key: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or `GEMINI_API_KEY`
65
66 ## Output Structure
67
68 ```
69 output/
70 ├── manifest.json # Single source of truth
71 ├── transcript/
72 │ ├── transcript.json # Full transcript with timestamps
73 │ ├── transcript.txt # Plain text
74 │ └── transcript.srt # Subtitles
75 ├── frames/ # Content frames (people filtered out)
76 ├── diagrams/ # Detected diagrams + mermaid code
77 ├── captures/ # Screengrab fallbacks
78 └── results/
79 ├── analysis.md # Markdown report
80 ├── analysis.html # HTML report
81 ├── analysis.pdf # PDF report
82 ├── knowledge_graph.json # Entities and relationships
83 ├── key_points.json # Extracted key points
84 └── action_items.json # Tasks and follow-ups
85 ```
86
87 ## Processing Depth
88
89 | Depth | What you get |
90 |-------|-------------|
91 | `basic` | Transcription, key points, action items |
92 | `standard` | + Diagram extraction (10 frames), knowledge graph, full reports |
93 | `comprehensive` | + More frames analyzed (20), deeper extraction |
94
95 ## Documentation
96
97 Full documentation at [planopticon.dev](https://planopticon.dev)
98
99 ## License
100
101 MIT License — Copyright (c) 2026 CONFLICT LLC
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
103 ELETED README_new.md
D README_new.md
-149
--- a/README_new.md
+++ b/README_new.md
@@ -1,149 +0,0 @@
1
-# PlanOpticon
2
-
3
-Comprehensive Video Analysis & Knowledge Extraction CLI
4
-
5
-## Overview
6
-
7
-PlanOpticon is an advanced AI-powered CLI tool that conducts thorough analysis of video content, extracting structured knowledge, diagrams, and actionable insights. Using state-of-the-art computer vision and natural language processing techniques, PlanOpticon transforms video assets into valuable, structured information.
8
-
9
-## Core Features
10
-
11
-- **Complete Transcription**: Full speech-to-text with speaker attribution and semantic segmentation
12
-- **Visual Element Extraction**: Automated recognition and digitization of diagrams, charts, whiteboards, and visual aids
13
-- **Action Item Detection**: Intelligent identification and prioritization of tasks, commitments, and follow-ups
14
-- **Knowledge Structure**: Organization of extracted content into searchable, related concepts
15
-- **Plan Generation**: Synthesis of extracted elements into cohesive action plans and summaries
16
-
17
-## Installation
18
-
19
-### Prerequisites
20
-
21
-- Python 3.9+
22
-- FFmpeg (for audio/video processing)
23
-- API keys for cloud services (OpenAI, Google Cloud, etc.)
24
-
25
-### Setup
26
-
27
-1. Clone the repository:
28
-
29
-```bash
30
-git clone https://github.com/yourusername/planopticon.git
31
-cd planopticon
32
-```
33
-
34
-2. Run the setup script which creates a virtual environment and installs dependencies:
35
-
36
-```bash
37
-./scripts/setup.sh
38
-```
39
-
40
-3. Configure your API keys by editing the `.env` file created during setup.
41
-
42
-### Manual Installation
43
-
44
-If you prefer to set up manually:
45
-
46
-```bash
47
-# Create virtual environment
48
-python -m venv venv
49
-source venv/bin/activate # On Windows: venv\Scripts\activate
50
-
51
-# Install dependencies
52
-pip install -e .
53
-
54
-# Install optional GPU dependencies (if available)
55
-pip install -r requirements-gpu.txt # For NVIDIA GPUs
56
-pip install -r requirements-apple.txt # For Apple Silicon
57
-```
58
-
59
-## Usage
60
-
61
-PlanOpticon is designed as a command-line interface tool:
62
-
63
-```bash
64
-# Basic usage
65
-planopticon analyze --input video.mp4 --output analysis/
66
-
67
-# Specify processing depth
68
-planopticon analyze --input video.mp4 --depth comprehensive --output analysis/
69
-
70
-# Focus on specific extraction types
71
-planopticon analyze --input video.mp4 --focus "diagrams,action-items" --output analysis/
72
-
73
-# Process with GPU acceleration
74
-planopticon analyze --input video.mp4 --use-gpu --output analysis/
75
-```
76
-
77
-### Output Structure
78
-
79
-```
80
-analysis/
81
-├── transcript/
82
-│ ├── video_name.json # Full transcription with timestamps and speakers
83
-│ ├── video_name.txt # Plain text transcription
84
-│ └── video_name.srt # Subtitle format
85
-├── frames/ # Extracted key frames
86
-│ ├── frame_0001.jpg
87
-│ └── frame_0002.jpg
88
-├── audio/ # Extracted audio
89
-│ └── video_name.wav
90
-├── diagrams/ # Extracted and digitized visual elements
91
-│ ├── diagram_001.svg
92
-│ └── whiteboard_001.svg
93
-└── cache/ # API response cache
94
-```
95
-
96
-## Development
97
-
98
-### Architecture
99
-
100
-PlanOpticon follows a modular pipeline architecture:
101
-
102
-```
103
-video_processor/
104
-├── extractors/ # Video and audio extraction
105
-├── api/ # Cloud API integrations
106
-├── analyzers/ # Content analysis components
107
-├── integrators/ # Knowledge integration
108
-├── utils/ # Common utilities
109
-└── cli/ # Command-line interface
110
-```
111
-
112
-### Code Standards
113
-
114
-- Follow PEP 8 style guidelines for all Python code
115
-- Write comprehensive docstrings using NumPy style
116
-- Include type hints consistently throughout the codebase
117
-- Maintain test coverage for key components
118
-
119
-### Testing
120
-
121
-Run tests with pytest:
122
-
123
-```bash
124
-pytest
125
-```
126
-
127
-## System Requirements
128
-
129
-- Python 3.9+
130
-- 8GB RAM minimum (16GB recommended)
131
-- 2GB disk space for models and dependencies
132
-- CUDA-compatible GPU (optional, for accelerated processing)
133
-- ARM64 or x86_64 architecture
134
-
135
-## License
136
-
137
-MIT License
138
-
139
-## Roadmap
140
-
141
-See [work_plan.md](work_plan.md) for detailed development roadmap and milestones.
142
-
143
-## Contributing
144
-
145
-Contributions are welcome! Please feel free to submit a Pull Request.
146
-
147
-## Contact
148
-
149
-For questions or contributions, please open an issue on GitHub or contact the maintainers at [email protected].
--- a/README_new.md
+++ b/README_new.md
@@ -1,149 +0,0 @@
1 # PlanOpticon
2
3 Comprehensive Video Analysis & Knowledge Extraction CLI
4
5 ## Overview
6
7 PlanOpticon is an advanced AI-powered CLI tool that conducts thorough analysis of video content, extracting structured knowledge, diagrams, and actionable insights. Using state-of-the-art computer vision and natural language processing techniques, PlanOpticon transforms video assets into valuable, structured information.
8
9 ## Core Features
10
11 - **Complete Transcription**: Full speech-to-text with speaker attribution and semantic segmentation
12 - **Visual Element Extraction**: Automated recognition and digitization of diagrams, charts, whiteboards, and visual aids
13 - **Action Item Detection**: Intelligent identification and prioritization of tasks, commitments, and follow-ups
14 - **Knowledge Structure**: Organization of extracted content into searchable, related concepts
15 - **Plan Generation**: Synthesis of extracted elements into cohesive action plans and summaries
16
17 ## Installation
18
19 ### Prerequisites
20
21 - Python 3.9+
22 - FFmpeg (for audio/video processing)
23 - API keys for cloud services (OpenAI, Google Cloud, etc.)
24
25 ### Setup
26
27 1. Clone the repository:
28
29 ```bash
30 git clone https://github.com/yourusername/planopticon.git
31 cd planopticon
32 ```
33
34 2. Run the setup script which creates a virtual environment and installs dependencies:
35
36 ```bash
37 ./scripts/setup.sh
38 ```
39
40 3. Configure your API keys by editing the `.env` file created during setup.
41
42 ### Manual Installation
43
44 If you prefer to set up manually:
45
46 ```bash
47 # Create virtual environment
48 python -m venv venv
49 source venv/bin/activate # On Windows: venv\Scripts\activate
50
51 # Install dependencies
52 pip install -e .
53
54 # Install optional GPU dependencies (if available)
55 pip install -r requirements-gpu.txt # For NVIDIA GPUs
56 pip install -r requirements-apple.txt # For Apple Silicon
57 ```
58
59 ## Usage
60
61 PlanOpticon is designed as a command-line interface tool:
62
63 ```bash
64 # Basic usage
65 planopticon analyze --input video.mp4 --output analysis/
66
67 # Specify processing depth
68 planopticon analyze --input video.mp4 --depth comprehensive --output analysis/
69
70 # Focus on specific extraction types
71 planopticon analyze --input video.mp4 --focus "diagrams,action-items" --output analysis/
72
73 # Process with GPU acceleration
74 planopticon analyze --input video.mp4 --use-gpu --output analysis/
75 ```
76
77 ### Output Structure
78
79 ```
80 analysis/
81 ├── transcript/
82 │ ├── video_name.json # Full transcription with timestamps and speakers
83 │ ├── video_name.txt # Plain text transcription
84 │ └── video_name.srt # Subtitle format
85 ├── frames/ # Extracted key frames
86 │ ├── frame_0001.jpg
87 │ └── frame_0002.jpg
88 ├── audio/ # Extracted audio
89 │ └── video_name.wav
90 ├── diagrams/ # Extracted and digitized visual elements
91 │ ├── diagram_001.svg
92 │ └── whiteboard_001.svg
93 └── cache/ # API response cache
94 ```
95
96 ## Development
97
98 ### Architecture
99
100 PlanOpticon follows a modular pipeline architecture:
101
102 ```
103 video_processor/
104 ├── extractors/ # Video and audio extraction
105 ├── api/ # Cloud API integrations
106 ├── analyzers/ # Content analysis components
107 ├── integrators/ # Knowledge integration
108 ├── utils/ # Common utilities
109 └── cli/ # Command-line interface
110 ```
111
112 ### Code Standards
113
114 - Follow PEP 8 style guidelines for all Python code
115 - Write comprehensive docstrings using NumPy style
116 - Include type hints consistently throughout the codebase
117 - Maintain test coverage for key components
118
119 ### Testing
120
121 Run tests with pytest:
122
123 ```bash
124 pytest
125 ```
126
127 ## System Requirements
128
129 - Python 3.9+
130 - 8GB RAM minimum (16GB recommended)
131 - 2GB disk space for models and dependencies
132 - CUDA-compatible GPU (optional, for accelerated processing)
133 - ARM64 or x86_64 architecture
134
135 ## License
136
137 MIT License
138
139 ## Roadmap
140
141 See [work_plan.md](work_plan.md) for detailed development roadmap and milestones.
142
143 ## Contributing
144
145 Contributions are welcome! Please feel free to submit a Pull Request.
146
147 ## Contact
148
149 For questions or contributions, please open an issue on GitHub or contact the maintainers at [email protected].
--- a/README_new.md
+++ b/README_new.md
@@ -1,149 +0,0 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- docs/cli-reference.md
+++ docs/cli-reference.md
@@ -41,10 +41,14 @@
4141
| `--pattern` | TEXT | `*.mp4,*.mkv,*.avi,*.mov,*.webm` | File glob patterns |
4242
| `--title` | TEXT | `Batch Processing Results` | Batch title |
4343
| `-p`, `--provider` | `auto\|openai\|anthropic\|gemini` | `auto` | API provider |
4444
| `--vision-model` | TEXT | auto | Override vision model |
4545
| `--chat-model` | TEXT | auto | Override chat model |
46
+| `--source` | `local\|gdrive\|dropbox` | `local` | Video source |
47
+| `--folder-id` | TEXT | none | Google Drive folder ID |
48
+| `--folder-path` | TEXT | none | Cloud folder path |
49
+| `--recursive/--no-recursive` | FLAG | recursive | Recurse into subfolders |
4650
4751
---
4852
4953
## `planopticon list-models`
5054
@@ -70,14 +74,60 @@
7074
|--------|------|---------|-------------|
7175
| `--cache-dir` | PATH | `$CACHE_DIR` | Path to cache directory |
7276
| `--older-than` | INT | all | Clear entries older than N seconds |
7377
| `--all` | FLAG | off | Clear all cache entries |
7478
79
+---
80
+
81
+## `planopticon agent-analyze`
82
+
83
+Agentic video analysis — adaptive, intelligent processing that adjusts depth and focus based on content.
84
+
85
+```bash
86
+planopticon agent-analyze [OPTIONS]
87
+```
88
+
89
+| Option | Type | Default | Description |
90
+|--------|------|---------|-------------|
91
+| `-i`, `--input` | PATH | *required* | Input video file path |
92
+| `-o`, `--output` | PATH | *required* | Output directory |
93
+| `--depth` | `basic\|standard\|comprehensive` | `standard` | Initial processing depth (agent may adapt) |
94
+| `--title` | TEXT | auto | Report title |
95
+| `-p`, `--provider` | `auto\|openai\|anthropic\|gemini` | `auto` | API provider |
96
+| `--vision-model` | TEXT | auto | Override vision model |
97
+| `--chat-model` | TEXT | auto | Override chat model |
98
+
99
+---
100
+
101
+## `planopticon auth`
102
+
103
+Authenticate with a cloud storage service for batch processing.
104
+
105
+```bash
106
+planopticon auth SERVICE
107
+```
108
+
109
+| Argument | Values | Description |
110
+|----------|--------|-------------|
111
+| `SERVICE` | `google\|dropbox` | Cloud service to authenticate with |
112
+
113
+**Examples:**
114
+
115
+```bash
116
+# Authenticate with Google Drive (interactive OAuth2)
117
+planopticon auth google
118
+
119
+# Authenticate with Dropbox
120
+planopticon auth dropbox
121
+```
122
+
123
+After authentication, use `planopticon batch --source gdrive` or `--source dropbox` to process cloud videos.
124
+
75125
---
76126
77127
## Global options
78128
79129
| Option | Description |
80130
|--------|-------------|
81131
| `-v`, `--verbose` | Enable debug-level logging |
82132
| `--version` | Show version and exit |
83133
| `--help` | Show help and exit |
84134
--- docs/cli-reference.md
+++ docs/cli-reference.md
@@ -41,10 +41,14 @@
41 | `--pattern` | TEXT | `*.mp4,*.mkv,*.avi,*.mov,*.webm` | File glob patterns |
42 | `--title` | TEXT | `Batch Processing Results` | Batch title |
43 | `-p`, `--provider` | `auto\|openai\|anthropic\|gemini` | `auto` | API provider |
44 | `--vision-model` | TEXT | auto | Override vision model |
45 | `--chat-model` | TEXT | auto | Override chat model |
 
 
 
 
46
47 ---
48
49 ## `planopticon list-models`
50
@@ -70,14 +74,60 @@
70 |--------|------|---------|-------------|
71 | `--cache-dir` | PATH | `$CACHE_DIR` | Path to cache directory |
72 | `--older-than` | INT | all | Clear entries older than N seconds |
73 | `--all` | FLAG | off | Clear all cache entries |
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75 ---
76
77 ## Global options
78
79 | Option | Description |
80 |--------|-------------|
81 | `-v`, `--verbose` | Enable debug-level logging |
82 | `--version` | Show version and exit |
83 | `--help` | Show help and exit |
84
--- docs/cli-reference.md
+++ docs/cli-reference.md
@@ -41,10 +41,14 @@
41 | `--pattern` | TEXT | `*.mp4,*.mkv,*.avi,*.mov,*.webm` | File glob patterns |
42 | `--title` | TEXT | `Batch Processing Results` | Batch title |
43 | `-p`, `--provider` | `auto\|openai\|anthropic\|gemini` | `auto` | API provider |
44 | `--vision-model` | TEXT | auto | Override vision model |
45 | `--chat-model` | TEXT | auto | Override chat model |
46 | `--source` | `local\|gdrive\|dropbox` | `local` | Video source |
47 | `--folder-id` | TEXT | none | Google Drive folder ID |
48 | `--folder-path` | TEXT | none | Cloud folder path |
49 | `--recursive/--no-recursive` | FLAG | recursive | Recurse into subfolders |
50
51 ---
52
53 ## `planopticon list-models`
54
@@ -70,14 +74,60 @@
74 |--------|------|---------|-------------|
75 | `--cache-dir` | PATH | `$CACHE_DIR` | Path to cache directory |
76 | `--older-than` | INT | all | Clear entries older than N seconds |
77 | `--all` | FLAG | off | Clear all cache entries |
78
79 ---
80
81 ## `planopticon agent-analyze`
82
83 Agentic video analysis — adaptive, intelligent processing that adjusts depth and focus based on content.
84
85 ```bash
86 planopticon agent-analyze [OPTIONS]
87 ```
88
89 | Option | Type | Default | Description |
90 |--------|------|---------|-------------|
91 | `-i`, `--input` | PATH | *required* | Input video file path |
92 | `-o`, `--output` | PATH | *required* | Output directory |
93 | `--depth` | `basic\|standard\|comprehensive` | `standard` | Initial processing depth (agent may adapt) |
94 | `--title` | TEXT | auto | Report title |
95 | `-p`, `--provider` | `auto\|openai\|anthropic\|gemini` | `auto` | API provider |
96 | `--vision-model` | TEXT | auto | Override vision model |
97 | `--chat-model` | TEXT | auto | Override chat model |
98
99 ---
100
101 ## `planopticon auth`
102
103 Authenticate with a cloud storage service for batch processing.
104
105 ```bash
106 planopticon auth SERVICE
107 ```
108
109 | Argument | Values | Description |
110 |----------|--------|-------------|
111 | `SERVICE` | `google\|dropbox` | Cloud service to authenticate with |
112
113 **Examples:**
114
115 ```bash
116 # Authenticate with Google Drive (interactive OAuth2)
117 planopticon auth google
118
119 # Authenticate with Dropbox
120 planopticon auth dropbox
121 ```
122
123 After authentication, use `planopticon batch --source gdrive` or `--source dropbox` to process cloud videos.
124
125 ---
126
127 ## Global options
128
129 | Option | Description |
130 |--------|-------------|
131 | `-v`, `--verbose` | Enable debug-level logging |
132 | `--version` | Show version and exit |
133 | `--help` | Show help and exit |
134
--- docs/getting-started/configuration.md
+++ docs/getting-started/configuration.md
@@ -30,13 +30,22 @@
3030
# Sample rate: frames per second (default: 0.5)
3131
planopticon analyze -i video.mp4 -o ./out --sampling-rate 1.0
3232
3333
# Change threshold: visual difference needed to keep a frame (default: 0.15)
3434
planopticon analyze -i video.mp4 -o ./out --change-threshold 0.1
35
+
36
+# Periodic capture: capture a frame every N seconds regardless of change (default: 30)
37
+# Useful for slow-evolving content like document scrolling
38
+planopticon analyze -i video.mp4 -o ./out --periodic-capture 15
39
+
40
+# Disable periodic capture (rely only on change detection)
41
+planopticon analyze -i video.mp4 -o ./out --periodic-capture 0
3542
```
3643
37
-Lower `change-threshold` = more frames kept. Higher `sampling-rate` = more candidates.
44
+Lower `change-threshold` = more frames kept. Higher `sampling-rate` = more candidates. Periodic capture catches content that changes too slowly for change detection (e.g., scrolling through a document during a screen share).
45
+
46
+People/webcam frames are automatically filtered out using face detection — no configuration needed.
3847
3948
## Focus areas
4049
4150
Limit processing to specific extraction types:
4251
4352
--- docs/getting-started/configuration.md
+++ docs/getting-started/configuration.md
@@ -30,13 +30,22 @@
30 # Sample rate: frames per second (default: 0.5)
31 planopticon analyze -i video.mp4 -o ./out --sampling-rate 1.0
32
33 # Change threshold: visual difference needed to keep a frame (default: 0.15)
34 planopticon analyze -i video.mp4 -o ./out --change-threshold 0.1
 
 
 
 
 
 
 
35 ```
36
37 Lower `change-threshold` = more frames kept. Higher `sampling-rate` = more candidates.
 
 
38
39 ## Focus areas
40
41 Limit processing to specific extraction types:
42
43
--- docs/getting-started/configuration.md
+++ docs/getting-started/configuration.md
@@ -30,13 +30,22 @@
30 # Sample rate: frames per second (default: 0.5)
31 planopticon analyze -i video.mp4 -o ./out --sampling-rate 1.0
32
33 # Change threshold: visual difference needed to keep a frame (default: 0.15)
34 planopticon analyze -i video.mp4 -o ./out --change-threshold 0.1
35
36 # Periodic capture: capture a frame every N seconds regardless of change (default: 30)
37 # Useful for slow-evolving content like document scrolling
38 planopticon analyze -i video.mp4 -o ./out --periodic-capture 15
39
40 # Disable periodic capture (rely only on change detection)
41 planopticon analyze -i video.mp4 -o ./out --periodic-capture 0
42 ```
43
44 Lower `change-threshold` = more frames kept. Higher `sampling-rate` = more candidates. Periodic capture catches content that changes too slowly for change detection (e.g., scrolling through a document during a screen share).
45
46 People/webcam frames are automatically filtered out using face detection — no configuration needed.
47
48 ## Focus areas
49
50 Limit processing to specific extraction types:
51
52
--- docs/guide/cloud-sources.md
+++ docs/guide/cloud-sources.md
@@ -1,10 +1,7 @@
11
# Cloud Sources
22
3
-!!! note "Coming soon"
4
- Cloud source integration is under active development.
5
-
63
PlanOpticon can fetch videos directly from cloud storage services.
74
85
## Google Drive
96
107
### Service account auth
118
--- docs/guide/cloud-sources.md
+++ docs/guide/cloud-sources.md
@@ -1,10 +1,7 @@
1 # Cloud Sources
2
3 !!! note "Coming soon"
4 Cloud source integration is under active development.
5
6 PlanOpticon can fetch videos directly from cloud storage services.
7
8 ## Google Drive
9
10 ### Service account auth
11
--- docs/guide/cloud-sources.md
+++ docs/guide/cloud-sources.md
@@ -1,10 +1,7 @@
1 # Cloud Sources
2
 
 
 
3 PlanOpticon can fetch videos directly from cloud storage services.
4
5 ## Google Drive
6
7 ### Service account auth
8
+5 -2
--- docs/index.md
+++ docs/index.md
@@ -7,16 +7,19 @@
77
---
88
99
## Features
1010
1111
- **Multi-provider AI** — Automatically discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
12
+- **Smart frame extraction** — Change detection for transitions + periodic capture (every 30s) for slow-evolving content like document scrolling
13
+- **People frame filtering** — OpenCV face detection removes webcam/video conference frames, keeping only shared content (slides, documents, screen shares)
1214
- **Diagram extraction** — Vision model-based classification detects flowcharts, architecture diagrams, charts, and whiteboards
1315
- **Knowledge graphs** — Extracts entities and relationships, builds and merges knowledge graphs across videos
1416
- **Action item detection** — Finds commitments, tasks, and follow-ups with assignees and deadlines
1517
- **Batch processing** — Process entire folders of videos with merged knowledge graphs and cross-referencing
1618
- **Rich output** — Markdown, HTML, PDF, Mermaid diagrams, SVG/PNG renderings, JSON manifests
1719
- **Cloud sources** — Fetch videos from Google Drive and Dropbox shared folders
20
+- **Checkpoint/resume** — Pipeline resumes from where it left off if interrupted — no wasted work
1821
- **Screengrab fallback** — When extraction isn't perfect, captures frames with captions — something is always better than nothing
1922
2023
## Quick Start
2124
2225
```bash
@@ -54,16 +57,16 @@
5457
```
5558
5659
=== "Binary (no Python needed)"
5760
5861
Download the latest binary for your platform from
59
- [GitHub Releases](https://github.com/conflict-llc/PlanOpticon/releases).
62
+ [GitHub Releases](https://github.com/ConflictHQ/PlanOpticon/releases).
6063
6164
## Requirements
6265
6366
- Python 3.10+
6467
- FFmpeg (for audio extraction)
6568
- At least one API key: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or `GEMINI_API_KEY`
6669
6770
## License
6871
69
-MIT License — Copyright (c) 2025 CONFLICT LLC. All rights reserved.
72
+MIT License — Copyright (c) 2026 CONFLICT LLC. All rights reserved.
7073
--- docs/index.md
+++ docs/index.md
@@ -7,16 +7,19 @@
7 ---
8
9 ## Features
10
11 - **Multi-provider AI** — Automatically discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
 
 
12 - **Diagram extraction** — Vision model-based classification detects flowcharts, architecture diagrams, charts, and whiteboards
13 - **Knowledge graphs** — Extracts entities and relationships, builds and merges knowledge graphs across videos
14 - **Action item detection** — Finds commitments, tasks, and follow-ups with assignees and deadlines
15 - **Batch processing** — Process entire folders of videos with merged knowledge graphs and cross-referencing
16 - **Rich output** — Markdown, HTML, PDF, Mermaid diagrams, SVG/PNG renderings, JSON manifests
17 - **Cloud sources** — Fetch videos from Google Drive and Dropbox shared folders
 
18 - **Screengrab fallback** — When extraction isn't perfect, captures frames with captions — something is always better than nothing
19
20 ## Quick Start
21
22 ```bash
@@ -54,16 +57,16 @@
54 ```
55
56 === "Binary (no Python needed)"
57
58 Download the latest binary for your platform from
59 [GitHub Releases](https://github.com/conflict-llc/PlanOpticon/releases).
60
61 ## Requirements
62
63 - Python 3.10+
64 - FFmpeg (for audio extraction)
65 - At least one API key: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or `GEMINI_API_KEY`
66
67 ## License
68
69 MIT License — Copyright (c) 2025 CONFLICT LLC. All rights reserved.
70
--- docs/index.md
+++ docs/index.md
@@ -7,16 +7,19 @@
7 ---
8
9 ## Features
10
11 - **Multi-provider AI** — Automatically discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
12 - **Smart frame extraction** — Change detection for transitions + periodic capture (every 30s) for slow-evolving content like document scrolling
13 - **People frame filtering** — OpenCV face detection removes webcam/video conference frames, keeping only shared content (slides, documents, screen shares)
14 - **Diagram extraction** — Vision model-based classification detects flowcharts, architecture diagrams, charts, and whiteboards
15 - **Knowledge graphs** — Extracts entities and relationships, builds and merges knowledge graphs across videos
16 - **Action item detection** — Finds commitments, tasks, and follow-ups with assignees and deadlines
17 - **Batch processing** — Process entire folders of videos with merged knowledge graphs and cross-referencing
18 - **Rich output** — Markdown, HTML, PDF, Mermaid diagrams, SVG/PNG renderings, JSON manifests
19 - **Cloud sources** — Fetch videos from Google Drive and Dropbox shared folders
20 - **Checkpoint/resume** — Pipeline resumes from where it left off if interrupted — no wasted work
21 - **Screengrab fallback** — When extraction isn't perfect, captures frames with captions — something is always better than nothing
22
23 ## Quick Start
24
25 ```bash
@@ -54,16 +57,16 @@
57 ```
58
59 === "Binary (no Python needed)"
60
61 Download the latest binary for your platform from
62 [GitHub Releases](https://github.com/ConflictHQ/PlanOpticon/releases).
63
64 ## Requirements
65
66 - Python 3.10+
67 - FFmpeg (for audio extraction)
68 - At least one API key: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or `GEMINI_API_KEY`
69
70 ## License
71
72 MIT License — Copyright (c) 2026 CONFLICT LLC. All rights reserved.
73
+1 -1
--- mkdocs.yml
+++ mkdocs.yml
@@ -88,6 +88,6 @@
8888
extra:
8989
social:
9090
- icon: fontawesome/brands/github
9191
link: https://github.com/conflict-llc/PlanOpticon
9292
93
-copyright: Copyright © 2025 CONFLICT LLC
93
+copyright: Copyright © 2026 CONFLICT LLC
9494
--- mkdocs.yml
+++ mkdocs.yml
@@ -88,6 +88,6 @@
88 extra:
89 social:
90 - icon: fontawesome/brands/github
91 link: https://github.com/conflict-llc/PlanOpticon
92
93 copyright: Copyright © 2025 CONFLICT LLC
94
--- mkdocs.yml
+++ mkdocs.yml
@@ -88,6 +88,6 @@
88 extra:
89 social:
90 - icon: fontawesome/brands/github
91 link: https://github.com/conflict-llc/PlanOpticon
92
93 copyright: Copyright © 2026 CONFLICT LLC
94
--- video_processor/cli/commands.py
+++ video_processor/cli/commands.py
@@ -34,19 +34,22 @@
3434
for handler in root_logger.handlers:
3535
root_logger.removeHandler(handler)
3636
root_logger.addHandler(console_handler)
3737
3838
39
-@click.group()
39
+@click.group(invoke_without_command=True)
4040
@click.option("--verbose", "-v", is_flag=True, help="Enable verbose output")
4141
@click.version_option("0.2.0", prog_name="PlanOpticon")
4242
@click.pass_context
4343
def cli(ctx, verbose):
4444
"""PlanOpticon - Comprehensive Video Analysis & Knowledge Extraction Tool."""
4545
ctx.ensure_object(dict)
4646
ctx.obj["verbose"] = verbose
4747
setup_logging(verbose)
48
+
49
+ if ctx.invoked_subcommand is None:
50
+ _interactive_menu(ctx)
4851
4952
5053
@cli.command()
5154
@click.option("--input", "-i", required=True, type=click.Path(exists=True), help="Input video file path")
5255
@click.option("--output", "-o", required=True, type=click.Path(), help="Output directory")
@@ -450,13 +453,112 @@
450453
click.echo("Dropbox authentication successful.")
451454
else:
452455
click.echo("Dropbox authentication failed.", err=True)
453456
sys.exit(1)
454457
458
+
459
+def _interactive_menu(ctx):
460
+ """Show an interactive menu when planopticon is run with no arguments."""
461
+ click.echo()
462
+ click.echo(" PlanOpticon v0.2.0")
463
+ click.echo(" Comprehensive Video Analysis & Knowledge Extraction")
464
+ click.echo()
465
+ click.echo(" 1. Analyze a video")
466
+ click.echo(" 2. Batch process a folder")
467
+ click.echo(" 3. List available models")
468
+ click.echo(" 4. Authenticate cloud service")
469
+ click.echo(" 5. Clear cache")
470
+ click.echo(" 6. Show help")
471
+ click.echo()
472
+
473
+ choice = click.prompt(" Select an option", type=click.IntRange(1, 6))
474
+
475
+ if choice == 1:
476
+ input_path = click.prompt(" Video file path", type=click.Path(exists=True))
477
+ output_dir = click.prompt(" Output directory", type=click.Path())
478
+ depth = click.prompt(
479
+ " Processing depth",
480
+ type=click.Choice(["basic", "standard", "comprehensive"]),
481
+ default="standard",
482
+ )
483
+ provider = click.prompt(
484
+ " Provider",
485
+ type=click.Choice(["auto", "openai", "anthropic", "gemini"]),
486
+ default="auto",
487
+ )
488
+ ctx.invoke(
489
+ analyze,
490
+ input=input_path,
491
+ output=output_dir,
492
+ depth=depth,
493
+ focus=None,
494
+ use_gpu=False,
495
+ sampling_rate=0.5,
496
+ change_threshold=0.15,
497
+ periodic_capture=30.0,
498
+ title=None,
499
+ provider=provider,
500
+ vision_model=None,
501
+ chat_model=None,
502
+ )
503
+
504
+ elif choice == 2:
505
+ input_dir = click.prompt(" Video directory", type=click.Path(exists=True))
506
+ output_dir = click.prompt(" Output directory", type=click.Path())
507
+ depth = click.prompt(
508
+ " Processing depth",
509
+ type=click.Choice(["basic", "standard", "comprehensive"]),
510
+ default="standard",
511
+ )
512
+ provider = click.prompt(
513
+ " Provider",
514
+ type=click.Choice(["auto", "openai", "anthropic", "gemini"]),
515
+ default="auto",
516
+ )
517
+ ctx.invoke(
518
+ batch,
519
+ input_dir=input_dir,
520
+ output=output_dir,
521
+ depth=depth,
522
+ pattern="*.mp4,*.mkv,*.avi,*.mov,*.webm",
523
+ title="Batch Processing Results",
524
+ provider=provider,
525
+ vision_model=None,
526
+ chat_model=None,
527
+ source="local",
528
+ folder_id=None,
529
+ folder_path=None,
530
+ recursive=True,
531
+ )
532
+
533
+ elif choice == 3:
534
+ ctx.invoke(list_models)
535
+
536
+ elif choice == 4:
537
+ service = click.prompt(
538
+ " Cloud service",
539
+ type=click.Choice(["google", "dropbox"]),
540
+ )
541
+ ctx.invoke(auth, service=service)
542
+
543
+ elif choice == 5:
544
+ cache_dir = click.prompt(" Cache directory path", type=click.Path())
545
+ clear_all = click.confirm(" Clear all entries?", default=True)
546
+ ctx.invoke(
547
+ clear_cache,
548
+ cache_dir=cache_dir,
549
+ older_than=None,
550
+ clear_all=clear_all,
551
+ )
552
+
553
+ elif choice == 6:
554
+ click.echo()
555
+ click.echo(ctx.get_help())
556
+
455557
456558
def main():
457559
"""Entry point for command-line usage."""
458560
cli(obj={})
459561
460562
461563
if __name__ == "__main__":
462564
main()
463565
--- video_processor/cli/commands.py
+++ video_processor/cli/commands.py
@@ -34,19 +34,22 @@
34 for handler in root_logger.handlers:
35 root_logger.removeHandler(handler)
36 root_logger.addHandler(console_handler)
37
38
39 @click.group()
40 @click.option("--verbose", "-v", is_flag=True, help="Enable verbose output")
41 @click.version_option("0.2.0", prog_name="PlanOpticon")
42 @click.pass_context
43 def cli(ctx, verbose):
44 """PlanOpticon - Comprehensive Video Analysis & Knowledge Extraction Tool."""
45 ctx.ensure_object(dict)
46 ctx.obj["verbose"] = verbose
47 setup_logging(verbose)
 
 
 
48
49
50 @cli.command()
51 @click.option("--input", "-i", required=True, type=click.Path(exists=True), help="Input video file path")
52 @click.option("--output", "-o", required=True, type=click.Path(), help="Output directory")
@@ -450,13 +453,112 @@
450 click.echo("Dropbox authentication successful.")
451 else:
452 click.echo("Dropbox authentication failed.", err=True)
453 sys.exit(1)
454
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
455
456 def main():
457 """Entry point for command-line usage."""
458 cli(obj={})
459
460
461 if __name__ == "__main__":
462 main()
463
--- video_processor/cli/commands.py
+++ video_processor/cli/commands.py
@@ -34,19 +34,22 @@
34 for handler in root_logger.handlers:
35 root_logger.removeHandler(handler)
36 root_logger.addHandler(console_handler)
37
38
39 @click.group(invoke_without_command=True)
40 @click.option("--verbose", "-v", is_flag=True, help="Enable verbose output")
41 @click.version_option("0.2.0", prog_name="PlanOpticon")
42 @click.pass_context
43 def cli(ctx, verbose):
44 """PlanOpticon - Comprehensive Video Analysis & Knowledge Extraction Tool."""
45 ctx.ensure_object(dict)
46 ctx.obj["verbose"] = verbose
47 setup_logging(verbose)
48
49 if ctx.invoked_subcommand is None:
50 _interactive_menu(ctx)
51
52
53 @cli.command()
54 @click.option("--input", "-i", required=True, type=click.Path(exists=True), help="Input video file path")
55 @click.option("--output", "-o", required=True, type=click.Path(), help="Output directory")
@@ -450,13 +453,112 @@
453 click.echo("Dropbox authentication successful.")
454 else:
455 click.echo("Dropbox authentication failed.", err=True)
456 sys.exit(1)
457
458
459 def _interactive_menu(ctx):
460 """Show an interactive menu when planopticon is run with no arguments."""
461 click.echo()
462 click.echo(" PlanOpticon v0.2.0")
463 click.echo(" Comprehensive Video Analysis & Knowledge Extraction")
464 click.echo()
465 click.echo(" 1. Analyze a video")
466 click.echo(" 2. Batch process a folder")
467 click.echo(" 3. List available models")
468 click.echo(" 4. Authenticate cloud service")
469 click.echo(" 5. Clear cache")
470 click.echo(" 6. Show help")
471 click.echo()
472
473 choice = click.prompt(" Select an option", type=click.IntRange(1, 6))
474
475 if choice == 1:
476 input_path = click.prompt(" Video file path", type=click.Path(exists=True))
477 output_dir = click.prompt(" Output directory", type=click.Path())
478 depth = click.prompt(
479 " Processing depth",
480 type=click.Choice(["basic", "standard", "comprehensive"]),
481 default="standard",
482 )
483 provider = click.prompt(
484 " Provider",
485 type=click.Choice(["auto", "openai", "anthropic", "gemini"]),
486 default="auto",
487 )
488 ctx.invoke(
489 analyze,
490 input=input_path,
491 output=output_dir,
492 depth=depth,
493 focus=None,
494 use_gpu=False,
495 sampling_rate=0.5,
496 change_threshold=0.15,
497 periodic_capture=30.0,
498 title=None,
499 provider=provider,
500 vision_model=None,
501 chat_model=None,
502 )
503
504 elif choice == 2:
505 input_dir = click.prompt(" Video directory", type=click.Path(exists=True))
506 output_dir = click.prompt(" Output directory", type=click.Path())
507 depth = click.prompt(
508 " Processing depth",
509 type=click.Choice(["basic", "standard", "comprehensive"]),
510 default="standard",
511 )
512 provider = click.prompt(
513 " Provider",
514 type=click.Choice(["auto", "openai", "anthropic", "gemini"]),
515 default="auto",
516 )
517 ctx.invoke(
518 batch,
519 input_dir=input_dir,
520 output=output_dir,
521 depth=depth,
522 pattern="*.mp4,*.mkv,*.avi,*.mov,*.webm",
523 title="Batch Processing Results",
524 provider=provider,
525 vision_model=None,
526 chat_model=None,
527 source="local",
528 folder_id=None,
529 folder_path=None,
530 recursive=True,
531 )
532
533 elif choice == 3:
534 ctx.invoke(list_models)
535
536 elif choice == 4:
537 service = click.prompt(
538 " Cloud service",
539 type=click.Choice(["google", "dropbox"]),
540 )
541 ctx.invoke(auth, service=service)
542
543 elif choice == 5:
544 cache_dir = click.prompt(" Cache directory path", type=click.Path())
545 clear_all = click.confirm(" Clear all entries?", default=True)
546 ctx.invoke(
547 clear_cache,
548 cache_dir=cache_dir,
549 older_than=None,
550 clear_all=clear_all,
551 )
552
553 elif choice == 6:
554 click.echo()
555 click.echo(ctx.get_help())
556
557
558 def main():
559 """Entry point for command-line usage."""
560 cli(obj={})
561
562
563 if __name__ == "__main__":
564 main()
565

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button