‹ Reports
The Dispatch

GitHub Repo Analysis: mediar-ai/screenpipe


Executive Summary

Screenpipe is a 24/7 AI screen and microphone recording tool developed by Mediar AI. It emphasizes openness, security, and data ownership, serving as an alternative to Rewind.ai. The project is actively developed in Rust, integrating with Ollama, and supports multiple operating systems. Its trajectory is positive with active community engagement and frequent updates.

Recent Activity

Team Members and Activities

  1. Louis Beaumont (louis030195)

    • Commits: 109 in the last 14 days.
    • Focus: Pipe configuration, UI enhancements, performance optimizations.
  2. Matthew Diakonov (m13v)

    • Commits: 2 in the last 14 days.
    • Focus: Websocket implementation.
  3. GitHub Actions Bot

    • Commits: 18 in the last 14 days.
    • Focus: Automated Homebrew formula updates.
  4. Bhupesh Gupta (bhupesh-sf)

    • Commits: 3 in the last 14 days.
    • Focus: Documentation website updates.
  5. Kerosina

    • Commits: 8 in the last 14 days.
    • Focus: Async requests and merge conflicts.
  6. Jan (jandremarais)

    • Commits: 1 in the last 14 days.
    • Focus: Rust flag configurations.
  7. Joe Goldin (joegoldin)

    • Commits: 1 in the last 14 days.
    • Focus: Windows compilation fixes.

Patterns and Themes

Risks

Of Note

  1. Open PRs Needing Attention:

    • PRs like #372 require significant testing for cross-platform compatibility.
  2. Code Quality Concerns:

    • Naming conventions need improvement in PR #373 to enhance code clarity.
  3. Community Engagement:

    • Active discussions indicate a collaborative approach but highlight communication gaps needing attention during reviews.

Quantified Reports

Quantify issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 9 2 35 8 1
30 Days 53 51 230 31 1
90 Days 153 110 673 110 1
All Time 161 110 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Rate pull requests



2/5
The pull request introduces a platform-specific hack for macOS without addressing the underlying issue, as indicated by the comment 'DISGUSTING HACK TEMPORARY FOR MACOS'. The changes lack thorough documentation and testing, and the code quality is questionable with numerous commented-out sections. Additionally, the PR has been open for 34 days without progress, suggesting it may be abandoned or low priority. The lack of a corresponding issue further diminishes its significance.
[+] Read More
2/5
The pull request introduces an ffmpeg sidecar for installation, but it is incomplete and lacks integration with the existing system. The comments indicate that the functionality is not fully tested or integrated, and there are several missing elements such as testing instructions, CLI integration, and removal of redundant installation steps. The PR does not address these issues adequately, leading to potential maintenance burdens. The changes are not significant enough to warrant a higher rating, and the lack of thoroughness and clarity results in a score of 2.
[+] Read More
3/5
The pull request introduces MKL-accelerated speech-to-text for Mac, which is a notable feature addition. However, it has several issues that prevent it from being rated higher. The PR initially removed CUDA support, which was later reintroduced after feedback, indicating oversight. The changes also lack comprehensive documentation and testing details. The implementation seems rushed with multiple edits and lacks clarity on why certain decisions were made, such as the choice of Metal over CUDA for macOS. Overall, it's an average PR with room for improvement in clarity and thoroughness.
[+] Read More
3/5
This pull request introduces a new component for natural language input and makes significant changes to the search-chat component, adding functionality for natural language processing. The changes are substantial, with over 700 lines added and 400 removed, indicating a meaningful update. However, the PR is still in draft status and lacks a corresponding issue, which might suggest incomplete work or unclear objectives. Additionally, there are no tests or documentation updates included, which are crucial for ensuring quality and maintainability. Overall, while the changes appear to be valuable, the lack of completeness and supporting materials warrants an average rating.
[+] Read More
3/5
The pull request addresses a specific issue with video rendering on Windows by implementing different encoding strategies and modifying the pre_build.js script. It includes necessary changes to support the H264_MF encoder, which is compatible with the avbuild version of ffmpeg. However, the PR has some flaws, such as potential compatibility issues with ffmpeg versions and incomplete testing as indicated by reviewer comments. The changes are functional but not particularly significant or innovative, warranting an average rating.
[+] Read More
3/5
The pull request introduces a new feature that sends daily Reddit questions via email, which is a moderately significant change. The code is well-organized and includes comprehensive configuration options. However, there are some issues with naming conventions as pointed out in the review comments, and the lack of corresponding issue metadata might indicate insufficient documentation or planning. The changes are substantial but not exemplary, making this an average pull request with room for improvement.
[+] Read More
4/5
The pull request introduces a new event system, including significant changes such as adding a meeting detector and integrating it with the server. It adds multiple new files and modifies existing ones to support the functionality, demonstrating a substantial and well-organized effort. The inclusion of tests for the meeting detector shows thoroughness. However, as a draft, it may still require some refinements or reviews before merging.
[+] Read More

Quantify commits



Quantified Commit Activity Over 14 Days

Developer Avatar Branches PRs Commits Files Changes
Louis Beaumont 3 16/13/2 109 154 22229
Bhupesh Gupta 1 1/1/0 3 39 18261
GitHub 1 0/0/0 40 1 1280
kerosina 1 2/2/0 8 5 179
GitHub Actions Bot 7 0/0/0 18 1 90
Matthew Diakonov 1 2/1/0 2 4 41
Jan 1 1/1/0 1 1 18
Joe Goldin 1 1/1/0 1 1 2
MH (mhioi) 0 1/0/1 0 0 0
None (aybanda) 0 1/0/1 0 0 0
tribhuwan (tribhuwan-kumar) 0 1/0/0 0 0 0
David Anyatonwu (onyedikachi-david) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Quantify risks



Project Risk Ratings

Risk Level (1-5) Rationale
Delivery 4 The project faces significant delivery risks due to a backlog of unresolved issues, with 51 open issues including critical errors like 'Access Denied' (#370) and segmentation faults (#367, #366). The reliance on external dependencies such as Cuda 12 (#348) and ffmpeg versions in PR #372 further complicates delivery timelines. The presence of draft PRs (#347, #346) and ongoing feature development without clear milestones exacerbates these risks.
Velocity 3 Velocity is moderate but inconsistent, with high commit activity from a few developers, notably Louis Beaumont (109 commits), indicating potential team dependency risks. The backlog of unresolved issues and the draft status of key PRs suggest possible slowdowns. Automated CI/CD processes help maintain some velocity, but the uneven workload distribution could hinder progress.
Dependency 4 Dependency risks are high due to reliance on pre-release software versions (e.g., Tauri 2.0.0-rc.10) and external libraries like ffmpeg, which have shown compatibility issues in PR #372. The ongoing updates in 'Cargo.toml' files indicate frequent adjustments that could lead to instability if not managed carefully.
Team 3 The team shows signs of dependency on key individuals like Louis Beaumont, which could pose risks if these contributors become unavailable. Communication gaps in reviews (PR #373) and uneven commit contributions suggest potential collaboration challenges. However, community engagement and bounties for contributions may mitigate some team-related risks.
Code Quality 4 Code quality is at risk due to inconsistent adherence to naming conventions (PR #373) and the introduction of substantial new code without thorough review (e.g., Reddit pipe in PR #373). The presence of critical bugs like segmentation faults (#367, #366) indicates underlying quality issues that need addressing.
Technical Debt 4 Technical debt is accumulating with recurring issues like memory leaks (#278) and process termination problems (#368). The oversight in CUDA support removal (PR #328) and the complexity indicated by 148 branches suggest growing maintenance challenges.
Test Coverage 3 Test coverage appears insufficient, as evidenced by persistent errors across multiple issues and incomplete implementations like FFmpeg sidecar installation (PR #231). The lack of automated tests for certain functionalities could lead to regressions.
Error Handling 3 Error handling is moderate but needs improvement. Issues like 'Access Denied' (#370) and segmentation faults indicate gaps in error reporting and resolution mechanisms. While logging libraries are integrated, unresolved compatibility with Sentry suggests incomplete error monitoring.

Detailed Reports

Report On: Fetch issues



GitHub Issues Analysis

Recent Activity Analysis

Recent GitHub issue activity for the Screenpipe project shows a high level of engagement with 51 open issues and numerous recent updates. The issues cover a range of topics from technical bugs to feature requests and enhancements.

Several issues exhibit notable anomalies or complications:

  • Permission and Access Errors: Issues like #370 and #369 highlight recurring permission errors on Windows, particularly related to audio handling and monitor ID mismatches. These suggest underlying compatibility or configuration challenges that need addressing to ensure smooth operation across different environments.

  • Segmentation Faults: Multiple issues (#367, #366) report segmentation faults on different operating systems, indicating potential memory management or compatibility issues with specific hardware or OS configurations.

  • Process Termination: Issue #368 describes a problem where the Screenpipe process doesn't terminate correctly on Windows, which could lead to resource leaks or conflicts during updates.

  • Memory Leaks: Several closed issues (#278, #236) were related to memory leaks, particularly on macOS. These have been addressed but highlight ongoing challenges in managing resource usage effectively.

  • Audio Device Compatibility: Issues like #352 and #277 point to challenges with audio device compatibility, especially concerning sample rates and multi-channel configurations.

Themes among the issues include cross-platform compatibility, resource management, and user experience improvements. The project is actively engaging with contributors through bounties to resolve these challenges.

Issue Details

Most Recently Created and Updated Issues

  1. #370: Repeated "Access Denied (0x80070005)" Errors

    • Priority: High
    • Status: Open
    • Created: 1 day ago
    • Updated: Recently
  2. #369: Vision Module in "Stale" Mode Due to Mismatched Monitor IDs

    • Priority: High
    • Status: Open
    • Created: 1 day ago
    • Updated: Recently
  3. #368: Screenpipe Process Doesn't Terminate When Closing the App

    • Priority: Medium
    • Status: Open
    • Created: 1 day ago
    • Updated: Recently
  4. #367: Segmentation Fault After Building Screenpipe on Debian 12

    • Priority: Medium
    • Status: Open
    • Created: 1 day ago
    • Updated: Recently
  5. #366: Segmentation Fault When Running Screenpipe on macOS

    • Priority: Medium
    • Status: Open
    • Created: 1 day ago
    • Updated: Recently

These issues are critical as they impact core functionality and user experience across multiple platforms. The project's active approach to resolving these through community contributions and bounties is a positive sign of its commitment to improving stability and usability.

Report On: Fetch pull requests



Analysis of Pull Requests for mediar-ai/screenpipe

Open Pull Requests

#373: Reddit Pipe

  • Created: 1 day ago by Matthew Diakonov
  • Issues: Naming conventions need improvement (e.g., openaiApiKey should be camelCase).
  • Comments: Some confusion in review comments, indicating potential communication gaps.
  • Files Added: New TypeScript examples for Reddit integration.
  • Status: Needs attention to naming conventions and possibly more detailed feedback.

#372: Fix Video Rendering Issue in Windows

  • Created: 1 day ago by tribhuwan
  • Issues: Compatibility with ffmpeg versions and encoders; ongoing discussion about resolving crashes.
  • Comments: Active discussion on ffmpeg installation methods and encoder compatibility.
  • Status: Requires further testing and validation of proposed fixes.

#347: v0 Event System

  • Created: 9 days ago by Louis Beaumont
  • Status: Draft; no significant issues noted, but still in development phase.

#346: v2 Search

  • Created: 10 days ago by Louis Beaumont
  • Status: Draft; experimental phase with new search functionalities.

#328: MKL-Accelerated Speech-to-Text for Mac

  • Created: 14 days ago by David Anyatonwu
  • Issues: Oversight in removing CUDA support; needs adjustments to benchmarks and build configurations.
  • Comments: Active feedback loop with suggestions for improvements.
  • Status: Requires further refinement and testing across platforms.

#231: FFmpeg Sidecar Installation

  • Created: 32 days ago by Mubashir Shariq
  • Issues: Incomplete implementation; lacks integration and testing instructions.
  • Comments: Needs comprehensive testing across different OS environments.
  • Status: Significant work required before merging.

#220: xcap -> scap Transition

  • Created: 34 days ago by Louis Beaumont
  • Status: Work in progress; specific to macOS only.

Recently Closed Pull Requests

#363: WebSocket JSON Output with Coordinates

  • Merged Successfully

  • Notable for enhancing WebSocket functionality with JSON output.

#360, #359, #358, #357, #356, #355: Homebrew Formula Updates

  • Automated updates for different architectures.
  • Merged successfully without issues.

#354, #353: Homebrew Formula Updates (Not Merged)

  • Closed without merging; likely due to redundancy or errors.

#345: Vercel SDK and Ollama Example

  • Closed without merging; first-time contributor with potential code quality issues.

#335: Fix for Broken Linux App Builds

  • Successfully merged; addressed C binding conflicts causing build failures on Linux.

Notable Observations

  1. Open PRs Needing Attention:

    • PRs like #372 and #231 require significant testing and validation to ensure cross-platform compatibility and proper integration.
    • Naming conventions and code clarity are recurring issues, as seen in PR #373.
  2. Closed PRs Without Merging:

    • Some PRs were closed without merging due to incomplete implementations or redundant updates (#354, #353).
  3. Successful Integrations:

    • Recent merges have focused on enhancing functionality (e.g., WebSocket improvements) and maintaining compatibility through Homebrew updates.
  4. Community Engagement:

    • Active discussions in comments indicate a collaborative approach to problem-solving, though some communication gaps exist that need addressing for smoother reviews.

Overall, the project is actively evolving with a focus on improving functionality and cross-platform support. However, attention to detail in naming conventions, testing procedures, and clearer communication during reviews could enhance the development process.

Report On: Fetch Files For Assessment



File Analysis

screenpipe-app-tauri/src-tauri/Cargo.toml

  • Structure & Organization: The file is well-organized, following the typical structure of a Cargo.toml file with sections for package metadata, dependencies, and features.
  • Dependencies: A wide range of dependencies are specified, including Tauri plugins, HTTP clients, logging, and system information libraries. Some dependencies are pinned to specific versions or release candidates, which might indicate reliance on specific features or stability concerns.
  • Features: Custom features are defined but some are commented out, suggesting potential future use or experimentation.
  • Comments: There are several commented-out sections for platform-specific dependencies, indicating cross-platform considerations.
  • Potential Issues: The sentry-tauri dependency is commented as broken, which could be a concern if error tracking is needed.

screenpipe-core/src/llama.rs

  • Structure & Organization: The file is modular with a clear separation of concerns. It uses Rust's module system effectively.
  • Functionality: Implements a text generation feature using various Llama models. It includes configuration structures and a main function to handle text streaming.
  • Error Handling: Uses anyhow for error handling, which is suitable for complex operations like model loading and inference.
  • Code Quality: The code is clean with descriptive variable names and comments explaining key parts. Default configurations are provided using the Default trait.
  • Potential Issues: The use of unsafe code for memory mapping could pose risks if not handled carefully.

screenpipe-server/src/bin/screenpipe-server.rs

  • Structure & Organization: This file is lengthy and handles multiple responsibilities such as command-line parsing, server setup, logging, device management, and more.
  • Functionality: Central to the server's functionality with comprehensive setup logic for audio devices, monitors, and resource monitoring.
  • Concurrency: Makes extensive use of async/await and Tokio for concurrent operations, which is appropriate given the server context.
  • Logging & Debugging: Extensive logging setup with both file and console outputs. Environment-based log level adjustments are supported.
  • Potential Issues: The file's length and complexity could make it difficult to maintain. Consider refactoring into smaller modules or functions.

examples/typescript/pipe-llama32-sync-user-conversation-to-notion/pipe.ts

  • Structure & Organization: The script is organized into functions that handle JSON extraction from LLM responses, conversation summarization, and integration with Notion.
  • Functionality: Demonstrates a practical use case by integrating AI-generated summaries into Notion databases.
  • Error Handling: Includes error handling for JSON parsing and HTTP requests but could benefit from more granular error messages.
  • Code Quality: Generally clean with clear function separation. However, inline comments could enhance understanding of complex logic.
  • Potential Issues: Relies on external APIs (AI model and Notion), which could introduce latency or failure points if not robustly handled.

screenpipe-core/src/google.rs

  • Structure & Organization: Similar to llama.rs, this file encapsulates functionality within a module for Google-related text generation models.
  • Functionality: Provides text generation capabilities using different model versions. Includes configuration structures and a main function for execution.
  • Error Handling: Uses anyhow effectively for managing errors across various operations like API interactions and model loading.
  • Code Quality: Well-organized with clear naming conventions. Uses enums to manage model types effectively.
  • Potential Issues: Contains hardcoded API tokens which should be managed securely to prevent unauthorized access.

Overall, the codebase reflects active development with attention to modularity and cross-platform support. However, some areas could benefit from improved security practices (e.g., API token management) and maintainability enhancements (e.g., reducing complexity in large files).

Report On: Fetch commits



Development Team and Recent Activity

Team Members and Activities

Louis Beaumont (louis030195)

  • Commits: 109 in the last 14 days.
  • Activities:
    • Worked extensively on various features and bug fixes across multiple files.
    • Focused on improving pipe configuration, UI enhancements, and performance optimizations.
    • Implemented new features like embedded LLM, meeting summaries, and improved audio handling.
    • Collaborated on multiple branches including main, fix-[#199](https://github.com/mediar-ai/screenpipe/issues/199), manual-silero-vad-implementation.
    • Engaged in documentation updates and version bumps.

Matthew Diakonov (m13v)

  • Commits: 2 in the last 14 days.
  • Activities:
    • Worked on websocket implementation and JSON output with coordinates.
    • Collaborated with Louis Beaumont on the websocket branch.

GitHub Actions Bot (github-actions[bot])

  • Commits: 18 in the last 14 days.
  • Activities:
    • Automated updates for Homebrew formulas across various branches.

Bhupesh Gupta (bhupesh-sf)

  • Commits: 3 in the last 14 days.
  • Activities:
    • Contributed to documentation website using Nextra.

Kerosina

  • Commits: 8 in the last 14 days.
  • Activities:
    • Addressed issues related to async requests and merge conflicts.

Jan (jandremarais)

  • Commits: 1 in the last 14 days.
  • Activities:
    • Added Rust flag configurations.

Joe Goldin (joegoldin)

  • Commits: 1 in the last 14 days.
  • Activities:
    • Fixed Windows compilation issues with new VAD library.

Patterns and Themes

  • Active Development: The project is under active development with frequent commits, indicating ongoing improvements and feature additions.

  • Collaboration: Team members are collaborating across multiple branches, focusing on both feature development and bug fixes.

  • Automation: Use of GitHub Actions for automating updates and ensuring consistency across platforms.

  • Documentation Updates: Continuous efforts to improve documentation, making it easier for users to understand and contribute to the project.

Conclusions

The development team is actively engaged in enhancing the Screenpipe project, focusing on performance optimizations, new features, and cross-platform compatibility. The use of automation tools like GitHub Actions streamlines maintenance tasks, while collaboration among team members ensures a steady flow of improvements. The project maintains a strong community presence with regular updates and documentation enhancements.