Skip to main content

Linux security orchestrator (CLI-first). Prefer AUR/COPR/deb for Polkit helper; pip is for CLI discovery.

Project description

oysterAV icon

oysterAV

Linux security orchestrator — CLI-first backend with a thin GTK4 GUI.
ClamAV spine, pack adapters, quarantine, scheduling — without reimplementing engines.

GitHub License Python

oysterAV Dashboard

Dashboard — posture cards, security news ticker, recent scans


Why oysterAV?

  • Orchestrator, not engine — wraps ClamAV, rkhunter, Lynis, and friends (ADR-001)
  • CLI owns securityoyst-cli is the source of truth; the GUI is a client (ADR-002)
  • Full or Lite runtime — vendored tools under XDG, or host packages only (ADR-004)
  • Host co-control — on-access blocking stays with ClamAV; oysterAV guides and responds (ADR-008)

Screenshots

Scan Reports
Scan tab Reports tab
Profiles, paths, multi-pack progress History, export, quarantine / resolve actions

Settings
Settings — feeds, scan defaults, services, scheduling, packs

Prerequisites

  • Python ≥ 3.12 and uv
  • GUI: system GTK4 + libadwaita (PyGObject introspection)

Quick start

uv sync --extra all
uv run oyst-cli setup run --confirm --json
uv run oyst-cli status assess --json
uv run oyst-cli scan ~/Downloads --json

setup run can take several minutes on a cold machine (signatures / packs). Soft-failed steps (schedule, rkhunter) are non-fatal — check --json output.

Privileged helper install (install-privileged-helper) needs a root-owned oyst_core prefix (distro package) or sudo uv run oyst-cli install-privileged-helper --dev for a checkout. See docs/cli/reference.md.

./scripts/check.sh --quick   # local validation
./scripts/check.sh --format  # also enforce ruff format

GUI

uv sync --extra gui --extra dev
uv run oysterav

The GUI talks only through OystClient / oyst-cli serve — never runs security tools itself. See ADR-007 and the GUI↔CLI contract.

Architecture

Package Role
oyst_core Packs, orchestrator, quarantine, RPC serve
oyst_cli Full CLI (oyst-cli)
oysterav Thin GTK4 / libadwaita client

Decision log: docs/adr/README.md.

Pack runtime (Full mode, default)

Vendored upstream tools live under ~/.local/share/oysterav/runtime/:

uv run oyst-cli runtime status
uv run oyst-cli runtime install --all
uv run oyst-cli runtime update   # ClamAV CDIFF updates

Lite mode uses host packages only (packaging/lite/README.md):

uv run oyst-cli config set runtime.mode lite

Packs

Tier Packs
Required clamav, freshclam
Recommended rkhunter, chkrootkit, lynis, clamonacc, firewall
Optional maldet, unhide, fail2ban, fangfrisch

Host package examples (Lite / clamd on the host):

# Debian/Ubuntu
sudo apt install clamav clamav-daemon rkhunter chkrootkit lynis

# Arch / CachyOS
sudo pacman -S clamav rkhunter chkrootkit lynis

# Fedora
sudo dnf install clamav clamav-update rkhunter chkrootkit lynis

On-access prevention with the host: operator guide.

Install from GitHub Releases

Prefer a system package so the privileged helper is root-owned under /usr (getting started). Current install path: assets on each GitHub Release.

Channel Status Install
Debian/Ubuntu (.deb) Available Download oysterav_*_amd64.deb, then sudo apt install ./oysterav_*_amd64.deb
Fedora/RHEL (.rpm) Available Download oysterav-*-1.x86_64.rpm, then sudo dnf install ./oysterav-*.rpm
Flatpak (GitHub bundle) Available flatpak install --user ./oysterAV-*-x86_64.flatpakalso install a host .deb/.rpm for Polkit helper elevation
Wheel / uv (dev) Available Download the .whl or clone and uv sync --extra all
AUR (Arch / CachyOS) Pending listing Packaging prepared — see distro submit status
Fedora COPR Pending listing Spec prepared — see distro submit status
Flathub Pending listing Offline manifest prepared — see distro submit status
PyPI (CLI) Pending publish CLI discoverability only; not recommended for the privileged helper

After install, verify freshness against GitHub Releases:

oyst-cli version --check

Full packaging notes: docs/packaging/release.md. Storefront status: docs/packaging/distro-submit.md.

Health / debug

uv run oyst-cli doctor --json
uv run oyst-cli status assess --json
uv run oyst-cli serve --foreground   # RPC for the GUI

Docs

License

GPL-3.0-or-later — GNU General Public License v3 or later.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oysterav-0.2.2.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oysterav-0.2.2-py3-none-any.whl (438.7 kB view details)

Uploaded Python 3

File details

Details for the file oysterav-0.2.2.tar.gz.

File metadata

  • Download URL: oysterav-0.2.2.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for oysterav-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d1d7707842bca1dc74bba5832a957d04305c5dd15275bc6083b2729d4d1c4ba6
MD5 79f6a2fc72da4475647993b990ffce60
BLAKE2b-256 59ceec44df76c31da98cfa9633719e32256f75c641ba22b6b4593b0a6eac36b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for oysterav-0.2.2.tar.gz:

Publisher: publish-pypi.yml on asafelobotomy/oysterAV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oysterav-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: oysterav-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 438.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for oysterav-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eaa6129f1558f8236f444144977280311b4ef7716d09ba6c5ef6d907ebbc2d7d
MD5 e92485faedb734faab76a5e64daafd50
BLAKE2b-256 f87caf2de6742e368b96bbdd3905049538101126c86b8471ab1e50bc932fb782

See more details on using hashes here.

Provenance

The following attestation bundles were made for oysterav-0.2.2-py3-none-any.whl:

Publisher: publish-pypi.yml on asafelobotomy/oysterAV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page