Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Run-AppLens.sh text eol=lf
19 changes: 19 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Linux CI

on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read

jobs:
scan:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Test inventory, diagnostics, and redaction
run: python3 -B -m unittest discover -s tests/linux -v
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ TestResults/
*.user
*.suo
desktop.ini
__pycache__/

# Local report exports
/AppLens-*.md
Expand Down
12 changes: 8 additions & 4 deletions AppLens.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
#!/usr/bin/env python3
"""
AppLens app inventory scanner for macOS and Linux.

Read-only. Writes a categorized plain-text report to the user's Desktop when
available, or to the home directory when no Desktop folder exists.
Local AppLens scanner. Linux emits redacted JSON and supports opt-in diagnostics.
macOS retains its plain-text inventory.
"""

from __future__ import annotations
Expand Down Expand Up @@ -304,6 +302,12 @@ def build_report() -> str:


def main() -> int:
if platform.system() == "Linux":
sys.dont_write_bytecode = True
from applens_linux import main as linux_main

return linux_main(TOOL_CHECKS, is_runtime)

report = build_report()
path = output_path(f"AppLens_Results_{socket.gethostname()}.txt")
path.write_text(report, encoding="utf-8")
Expand Down
5 changes: 4 additions & 1 deletion PRIVACY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
Installed scans PC specifications and installed applications locally. It collects
OS/device details, CPU/GPU names, memory/disk readings, app identities and locations,
computer name, and Windows username. Optional workflow notes are user-supplied.
Running diagnostics also collects local process and startup names, system status,
and hardware and runtime readings.
There are no accounts, telemetry, automatic uploads, or background monitoring.

Reports contain the full capture, notes, and action history, including rows hidden
by filters. Known computer/user identifiers and profile paths are redacted by
default, with explicit raw-detail opt-in. App names and notes may still be sensitive.
default, with explicit raw-detail opt-in. App names, diagnostic readings, and
notes may still be sensitive.

Download report saves a readable file to the chosen location. Send report reviews
a frozen file before handing it to Windows sharing; the user selects the app and
Expand Down
Loading
Loading