Skip to content

Latest commit

 

History

History
549 lines (407 loc) · 15.1 KB

File metadata and controls

549 lines (407 loc) · 15.1 KB

FlashRecord Vision Document

Version: 0.3.4 Date: 2025-11-13 Status: Production Ready (Doc Automation Sprint)


Executive Summary

FlashRecord is the fastest, simplest screen capture tool for developers - a Python-first CLI tool that prioritizes automation, scripting, and cross-platform consistency over GUI features.

Our mission: Become the Python ecosystem's go-to tool for screen capture automation, filling the gap left by GUI-centric tools that don't integrate with developer workflows.

Executive Snapshot (Nov 2025)

  • Documentation Automation: scripts/doc_sanity_check.py + scripts/build_docs.py keep Markdown + Sphinx output healthy and CI-ready.
  • Structured Output Tree: All media now lands under output/<date>/<category> for easy archival and cleanup.
  • Environment-first Configuration: FLASHRECORD_* variables override config.json, keeping secrets out of disks.
  • Legacy Compression Archived: v0.3.2-era compression modules moved to .archive, keeping src/ lean.

1. Why Should You Choose FlashRecord?

1.1 Developer-First Design

Problem: Most screen capture tools are built for end-users, not developers.

  • ScreenToGif: 40MB Windows GUI with no CLI
  • ShareX: Windows-only with complex UI
  • Kap: macOS-only GUI
  • ImageMagick: Powerful but complex syntax

FlashRecord Solution: CLI-first with Python-native integration

from flashrecord.screenshot import take_screenshot
from flashrecord.screen_recorder import record_screen_to_gif

# One-line screenshot
screenshot_path = take_screenshot()

# One-line GIF recording
gif_path = record_screen_to_gif(duration=5, fps=10)

1.2 Automation & Scripting

Use Cases FlashRecord Excels At:

  1. Test Automation: Capture screenshots on test failures
  2. Documentation: Auto-generate tutorial GIFs from test runs
  3. CI/CD: Record deployment processes for audit trails
  4. Monitoring: Periodic screen captures for remote systems
  5. Research: Automated data collection from visual interfaces

Example - Pytest Integration:

import pytest
from flashrecord.screenshot import take_screenshot

@pytest.fixture(autouse=True)
def screenshot_on_failure(request):
    yield
    if hasattr(request.node, 'rep_call') and request.node.rep_call.failed:
        take_screenshot(output_dir=f'./failures/{request.node.name}.png')

1.3 Cross-Platform Consistency

Same Command, Same Behavior:

# Windows
flashrecord @sc

# macOS
flashrecord @sc

# Linux
flashrecord @sc

# All produce identical output structure

Platform-Specific Optimization:

  • Windows: PIL ImageGrab (15-30ms)
  • macOS: screencapture command (20-50ms)
  • Linux: gnome-screenshot/scrot fallback (20-50ms)

1.4 Zero Configuration

Install and Go:

pip install flashrecord
flashrecord @sc
# Screenshot saved to output/screenshot_20251026_143022.png

No config files required. No setup wizard. Just works.


2. What Makes FlashRecord Different?

2.1 Competitive Comparison

Feature FlashRecord ScreenToGif ShareX Kap ImageMagick
Platform All Windows Windows macOS All
Interface CLI GUI GUI GUI CLI
Python Integration Native None None None subprocess
Install Size ~2 MB ~40 MB ~15 MB ~50 MB ~30 MB
Automation Excellent Poor Medium Poor Good
Compression CWAM-inspired Basic Advanced Basic Advanced
Dependencies 3 (Pillow, imageio, numpy) 0 .NET None Many
Learning Curve 2 commands Medium Steep Easy Steep

2.2 Unique Selling Points

  1. Python-Native: Only tool you can import flashrecord in scripts
  2. CLI Simplicity: @sc and @sv - that's all you need to remember
  3. Intelligent Compression: 99.5% reduction (25.6 MB → 0.1 MB) with RGB preservation
  4. Production-Ready: Full CI/CD, pytest suite, Sphinx docs
  5. Cross-Platform Parity: Same commands on Windows/macOS/Linux

2.3 When NOT to Choose FlashRecord

FlashRecord is NOT ideal for:

  • GUI Users: If you prefer clicking buttons, use ScreenToGif
  • Video Editing: GIF format is limited, use OBS/FFmpeg for video
  • Audio Recording: FlashRecord is silent (for now)
  • Advanced Editing: No frame-by-frame editing (use ScreenToGif)
  • Real-Time Streaming: Not designed for live streaming (yet)

Best For:

  • Developers automating screen capture
  • Test engineers documenting failures
  • DevOps creating deployment GIFs
  • Researchers collecting visual data
  • Anyone who prefers CLI over GUI

3. Is FlashRecord's Compression Technology Unique?

3.1 CWAM-Inspired Approach

Based On: "Enhancing Learned Image Compression via Cross Window-based Attention" (arXiv:2410.21144)

What's Different:

  • No ML Models: Pure PIL/NumPy implementation (no TensorFlow/PyTorch)
  • Saliency-Based: Adaptive quality based on variance, edge density, entropy
  • Cross-Window Analysis: Multi-scale feature extraction (16px + 8px tiles)
  • Temporal Coherence: 3-frame window smoothing

Not Unique, But Effective:

  • Other tools use quantization, palette reduction, temporal delta encoding
  • FlashRecord combines multiple techniques: resolution scaling (50%) + temporal subsampling (20%) + saliency preservation
  • Achieves 99.5% compression ratio while maintaining RGB color fidelity

3.2 Compression Modes

# 'high' - 70% resolution, minimal temporal reduction
gif_path = record_screen_to_gif(compression='high')

# 'balanced' - 50% resolution, 20% temporal reduction (default)
gif_path = record_screen_to_gif(compression='balanced')

# 'compact' - 30% resolution, aggressive temporal reduction
gif_path = record_screen_to_gif(compression='compact')

Performance:

Mode        | Resolution  | Temporal   | File Size | Quality
------------|-------------|------------|-----------|--------
high        | 70% (1344x) | 10% (9fps) | 0.3 MB    | Excellent
balanced    | 50% (960x)  | 20% (8fps) | 0.1 MB    | Good
compact     | 30% (576x)  | 40% (6fps) | 0.05 MB   | Fair

3.3 Why PIL/NumPy Only?

Advantage: No ML model overhead

  • No GPU required
  • Fast startup time (<0.5s)
  • Predictable memory usage
  • Easy to understand and modify

Trade-off: Not state-of-the-art

  • ML-based compression (JPEG-XL, WebP 2) can achieve better ratios
  • But requires models, training, GPU acceleration

Our Philosophy: Practical > Optimal

  • 99.5% reduction is "good enough" for developer workflows
  • Simplicity and reliability > bleeding-edge compression

4. Is Continued Development Guaranteed?

4.1 Evidence of Commitment

Version History:

  • v0.1.0 (2025-01-15): Initial release with hcap wrapper
  • v0.2.0 (2025-10-25): Native Pillow implementation
  • v0.3.0 (2025-10-25): CWAM compression + GIF recording
  • v0.3.3 (2025-10-26): Production infrastructure (CI/CD, Sphinx, src/ layout)

Development Velocity: 3 major versions in 3 months

Quality Investment:

  • Full pytest suite with CI/CD
  • Sphinx documentation system
  • Multi-platform testing (Windows/macOS/Linux)
  • Python 3.8-3.12 compatibility
  • Standard src/ layout for PyPI

4.2 Roadmap Commitment

Q1 2025 - Enhanced Formats (v0.4.0)

  • WebP video format (smaller than GIF)
  • MP4 export (H.264 codec)
  • PNG sequence export

Q2 2025 - GUI & Integration (v0.5.0)

  • Gradio web interface
  • VSCode extension
  • Jupyter notebook magic (%%flashrecord)

Q3 2025 - Advanced Features (v0.6.0)

  • Window-specific capture
  • Audio recording integration
  • Real-time streaming (Twitch/YouTube)

Q4 2025 - Enterprise (v1.0.0)

  • Team collaboration
  • Encrypted storage
  • REST API server mode
  • Docker containerization

4.3 Why Development Will Continue

1. Active Production Use

  • FlashRecord is used daily in Flamehaven AI development workflows
  • Real-world testing in production environments
  • Continuous feedback from actual users (ourselves)

2. Clear Architecture

  • Standard src/ layout (maintainable)
  • Comprehensive tests (safe refactoring)
  • Full CI/CD (automated quality)
  • PyPI-ready structure (easy distribution)

3. Community Need

  • No Python-native cross-platform screen recorder exists
  • GitHub discussions show demand for CLI automation tools
  • Developer workflows increasingly require screen capture automation

4. Low Maintenance Burden

  • Pure Python (no C extensions)
  • Minimal dependencies (Pillow, imageio, numpy)
  • Cross-platform by design
  • Well-documented codebase

5. What is FlashRecord's Core Vision?

5.1 Mission Statement

"Be the fastest, simplest screen capture tool for developers"

Fastest:

  • CLI commands execute in <100ms
  • No GUI startup overhead
  • Direct Python import (zero subprocess latency)

Simplest:

  • Two commands: @sc and @sv
  • Zero configuration required
  • Intuitive Python API

For Developers:

  • Automation-first design
  • Scriptable and testable
  • Cross-platform consistency

5.2 Core Principles

1. CLI Over GUI

  • CLI enables automation, GUI does not
  • CLI is scriptable, GUI is not
  • CLI is fast, GUI is slow to start

2. Python-Native Integration

  • Not a wrapper around external tools
  • Importable as Python module
  • No subprocess overhead

3. Cross-Platform Consistency

  • Same commands everywhere
  • Same output structure
  • Same behavior

4. Zero Configuration

  • Sensible defaults
  • Works out of the box
  • Optional customization

5. Production Quality

  • Full test coverage
  • CI/CD automation
  • Comprehensive documentation

5.3 What FlashRecord Will NEVER Be

Will Never:

  • ❌ GUI-first tool (use ScreenToGif instead)
  • ❌ Video editor (use Premiere/DaVinci Resolve)
  • ❌ Screen recorder with audio (use OBS)
  • ❌ Real-time streaming platform (use OBS/Streamlabs)
  • ❌ Cloud-only SaaS (local-first always)

Will Always:

  • ✓ CLI-first with Python integration
  • ✓ Cross-platform (Windows/macOS/Linux)
  • ✓ Zero-configuration simplicity
  • ✓ Automation-friendly design
  • ✓ Production-ready quality

5.4 Success Metrics

By v1.0.0 (Q4 2025):

  • 1,000+ PyPI downloads per month
  • 100+ GitHub stars
  • 10+ external contributors
  • 5+ integration examples (pytest, VSCode, Jupyter, CI/CD, Gradio)
  • Featured in Awesome Python lists

By v2.0.0 (2026):

  • 10,000+ PyPI downloads per month
  • 1,000+ GitHub stars
  • Community-driven roadmap
  • Enterprise adoption (Docker, Kubernetes, cloud-native)

6. Target Audience

6.1 Primary Users

1. Test Engineers

  • Automated screenshot on test failures
  • Documentation GIFs for bug reports
  • Visual regression testing

2. DevOps Engineers

  • Deployment process recording
  • Audit trail generation
  • Monitoring dashboards

3. Python Developers

  • Script automation
  • Tutorial creation
  • Research data collection

4. AI/ML Researchers

  • Visual data collection
  • Model behavior documentation
  • Experiment tracking

6.2 Secondary Users

1. Technical Writers

  • CLI-based tutorial GIFs
  • Documentation screenshots
  • Reproducible examples

2. Open Source Maintainers

  • Issue reproduction
  • Release demos
  • Contribution guides

3. Educators

  • Coding tutorial GIFs
  • Lecture capture
  • Assignment examples

7. Why FlashRecord Matters

7.1 The Gap in the Market

Problem: GUI-centric screen capture tools dominate the market

  • ScreenToGif: 40 million downloads, Windows-only GUI
  • ShareX: 20 million downloads, Windows-only GUI
  • Kap: macOS-only GUI

Gap: No Python-native, cross-platform, CLI-first screen recorder exists

Impact: Developers resort to:

  1. Subprocess wrappers around ScreenToGif (platform-locked)
  2. Complex ImageMagick commands (steep learning curve)
  3. GUI tools in automation (unreliable, slow)
  4. Custom solutions (reinventing the wheel)

7.2 FlashRecord's Solution

Single Python Package:

pip install flashrecord

Two Commands:

flashrecord @sc  # Screenshot
flashrecord @sv  # GIF recording

Direct Import:

from flashrecord import take_screenshot, record_screen_to_gif

Result: Developer workflows simplified, automation unlocked, cross-platform consistency achieved.


8. Competitive Advantages

8.1 Technical Advantages

  1. Python-Native: Only screen recorder importable as Python module
  2. Cross-Platform: Same behavior on Windows/macOS/Linux
  3. Zero Configuration: Works out of the box
  4. Intelligent Compression: 99.5% reduction with RGB preservation
  5. Production-Ready: Full CI/CD, tests, docs

8.2 User Experience Advantages

  1. CLI Simplicity: @sc and @sv - that's it
  2. Fast Execution: <100ms command overhead
  3. Predictable Output: Consistent file naming and structure
  4. No Bloat: 2 MB install vs 40 MB competitors
  5. No Setup: pip install and go

8.3 Developer Experience Advantages

  1. Scriptable: Full Python API
  2. Testable: Import in tests, no subprocess mocking
  3. Documented: Sphinx docs + inline docstrings
  4. Extensible: Clean architecture for plugins
  5. Community-Friendly: MIT license, GitHub-hosted

9. Long-Term Vision (2026-2030)

9.1 FlashRecord 2.0 (2026)

Goals:

  • Industry-standard Python screen recorder
  • 10,000+ monthly PyPI downloads
  • VSCode/PyCharm/Jupyter integrations
  • Enterprise features (encryption, collaboration)

9.2 FlashRecord 3.0 (2027-2028)

Goals:

  • Real-time streaming capabilities
  • Cloud-native deployment (Kubernetes)
  • Multi-user collaboration
  • Advanced ML-based compression

9.3 FlashRecord Ecosystem (2029-2030)

Goals:

  • FlashRecord SDK for third-party integrations
  • Plugin marketplace
  • Community-driven roadmap
  • Educational partnerships

10. Call to Action

10.1 For Users

Try FlashRecord:

pip install flashrecord  # Coming soon to PyPI
flashrecord @sc          # Take your first screenshot

Star on GitHub:

https://github.com/Flamehaven/flashrecord

10.2 For Contributors

Contribute:

git clone https://github.com/Flamehaven/flashrecord.git
cd flashrecord
poetry install --with dev
poetry run pytest tests/ -v

Areas Needing Help:

  • Cross-platform testing (Linux distros)
  • Documentation improvements
  • Tutorial creation
  • Bug reports and feature requests

10.3 For Enterprises

Enterprise Features (v1.0.0+):

  • Encrypted storage (AES-256)
  • Team collaboration (shared output)
  • REST API server mode
  • Docker/Kubernetes deployment
  • Compliance audit logs

Contact: GitHub Issues for enterprise inquiries


Conclusion

FlashRecord is not just another screen capture tool. It's the first Python-native, cross-platform, CLI-first screen recorder designed for developers who prioritize automation, scripting, and simplicity.

Our Promise:

  • ✓ Continued development (roadmap through 2025)
  • ✓ Production quality (CI/CD, tests, docs)
  • ✓ Cross-platform consistency (Windows/macOS/Linux)
  • ✓ Python-first integration (import flashrecord)
  • ✓ Zero-configuration simplicity (@sc, @sv)

Join us in building the developer-friendly screen capture tool the Python ecosystem deserves.


Version: 0.3.3 Date: 2025-10-26 Author: Flamehaven - AI Development Framework License: MIT GitHub: https://github.com/Flamehaven/flashrecord