Skip to main content

FolkTech Sentinel

Local security monitor that watches your machine for unauthorized screen capture, data exfiltration, and suspicious app behavior. No cloud dependency — everything runs locally.

What It Does

  • Process Monitor — Detects apps using screen capture APIs, video recording, or running with dangerous permissions
  • Network Monitor — Tracks outbound connections from watched apps, resolves where data is going (IP → hostname → organization)
  • TCC Monitor (macOS) — Watches for privacy permission changes (Screen Recording, Camera, Microphone, Accessibility)

Alert Levels

Level Meaning Notification
RED Active threat — screen capture detected, unknown destination receiving data macOS banner + sound + log
YELLOW Suspicious — known telemetry/analytics, new permission granted macOS banner + sound + log
GREEN Informational — normal traffic, scan complete Log file only

Setup

macOS

cd ~/Developer/sentinel
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Windows

cd C:\path\to\sentinel
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

Linux

cd /path/to/sentinel
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Commands

Run Continuously (Daemon Mode)

Scans every 5 seconds. Alerts pop up in real time. Press Ctrl+C to stop.

python sentinel.py

Saves baseline automatically on shutdown.

One-Time Scan

Run all monitors once and exit. Good for a quick check.

python sentinel.py --scan

Full Report

Shows current privacy permissions and all active network connections from watched apps.

python sentinel.py --report

Establish Baseline

Snapshots current network connections as "normal." Future scans flag anything new.

python sentinel.py --baseline

Run this once when you're confident your system is clean.


Log Files

Logs are written to sentinel/logs/ with one file per day:

logs/sentinel-2026-03-29.log

Format:

2026-03-29 14:51:30 | [RED] [process] Screen capture detected: Comet Helper (PID 896) — Pattern matched: 'video_capture.mojom'

Configuration

Edit config.py to customize:

  • SCAN_INTERVAL — How often to scan (default: 5 seconds)
  • WATCHED_APPS — Which apps to monitor network connections for
  • SCREEN_CAPTURE_PATTERNS — Process patterns that indicate screen capture
  • KNOWN_TELEMETRY — Known analytics services (flagged YELLOW instead of RED)
  • KNOWN_FIRST_PARTY — Expected API endpoints (flagged GREEN)

Adding a watched app

Open config.py and add to the WATCHED_APPS list:

WATCHED_APPS = [
    "claude",
    "Comet",        # Perplexity
    "ChatGPT",
    "YourNewApp",   # ← add here
]

Marking a destination as safe

Add to KNOWN_FIRST_PARTY in config.py:

KNOWN_FIRST_PARTY = {
    "anthropic": "Anthropic API",
    "github.com": "GitHub",   # ← add here
}

Cross-Platform Notes

Feature macOS Windows Linux
Process Monitor Full support Full support (psutil) Full support (psutil)
Network Monitor Full support Full support (psutil) Full support (psutil)
TCC Monitor Full support N/A (no TCC on Windows) N/A (no TCC on Linux)
WHOIS Lookups Built-in whois Needs whois installed Needs whois installed
Notifications macOS banners (osascript) Needs adaptation (win10toast or plyer) Needs adaptation (notify-send)
Reverse DNS Full support Full support Full support

Windows/Linux Adaptations Needed

  1. Notifications — Replace osascript in alerts.py:
    • Windows: use plyer or win10toast package
    • Linux: use notify-send command
  2. TCC Monitor — Only works on macOS. On Windows/Linux, the TCC monitor will simply skip (no crash).
  3. WHOIS — Install whois command or use Python ipwhois package.

  1. Run python sentinel.py --report to see what's on your machine right now
  2. Review the permissions list — revoke anything you don't recognize
  3. Run python sentinel.py --baseline to establish what's normal
  4. Run python sentinel.py in a dedicated terminal to monitor continuously

Built by FolkTech AI

Metadata

Release files for folktech-sentinel 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for folktech-sentinel 1.0.0
File Size Uploaded Provenance Actions
folktech_sentinel-1.0.0.tar.gz 18.8 kB With provenance Details for folktech_sentinel-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for folktech-sentinel 1.0.0
File Interpreter ABI Platform Actions
folktech_sentinel-1.0.0-py3-none-any.whl Python 3 none any Details for folktech_sentinel-1.0.0-py3-none-any.whl

Total release size: 41.7 kB

Release files / folktech_sentinel-1.0.0.tar.gz

Download URL folktech_sentinel-1.0.0.tar.gz
Size 18.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a2d1252250c35935d7427817beb54f4ad58669e591fcb41d08ba8564a07e50f3
BLAKE2b-256 checksum
How to use checksums
01c0b0766795b76075f44bb5c9587414cb74e4bb18d1fd71fcf24e7b6e989484
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 29, 2026.

Transparency log

Release files / folktech_sentinel-1.0.0-py3-none-any.whl

Download URL folktech_sentinel-1.0.0-py3-none-any.whl
Size 22.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56fd8794296040acadbf2e270fb76a001dc40caf372e132387281ef8fd964f52
BLAKE2b-256 checksum
How to use checksums
3a9ea6ed75b97cb29e61517b99c785b2624a9593089e12f709f9a6e26ca936a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 29, 2026.

Transparency log

Security for folktech-sentinel 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for folktech_sentinel-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page