-
Notifications
You must be signed in to change notification settings - Fork 3
Security and Privacy
Official Windows binaries are currently unsigned. Microsoft SmartScreen and heuristic antivirus products may warn about uncommon unsigned executables. A warning should be investigated, not automatically ignored.
Older VirusTotal behavior reports have described parts of ani-cli-rs as obfuscated. Expected implementation behaviors that can contribute to heuristic classifications include:
- decoding provider-prefixed Base64URL metadata and parsing provider HTML/JSON;
- resolving temporary media URLs;
- binding a temporary loopback-only HLS compatibility relay;
- launching mpv, VLC, Syncplay, aria2c, yt-dlp, or FFmpeg;
- an installer modifying the current user's
PATH.
The application does not require administrator privileges.
Every release package must have a matching .sha256 asset. The install scripts verify it automatically.
PowerShell using built-in .NET hashing:
$path = ".\ani-cli-rs-VERSION-x86_64-pc-windows-msvc.zip"
$stream = [System.IO.File]::OpenRead($path)
try {
$sha = [System.Security.Cryptography.SHA256]::Create()
try { ([BitConverter]::ToString($sha.ComputeHash($stream))).Replace("-", "") }
finally { $sha.Dispose() }
} finally { $stream.Dispose() }Linux:
sha256sum ani-cli-rs-VERSION-x86_64-unknown-linux-musl.tar.gz
cat ani-cli-rs-VERSION-x86_64-unknown-linux-musl.tar.gz.sha256A matching hash proves the file is byte-for-byte identical to the published release asset. It does not independently prove the publisher or source is trustworthy.
Users who prefer not to trust a prebuilt binary can inspect a release tag and run:
cargo build --release --lockedReproducible byte-for-byte output is not promised across compiler versions, linkers, operating systems, or build paths.
Depending on the command, ani-cli-rs contacts:
- Anikoto API, AniList, Anikoto.cz, and its optional mapper endpoint;
- third-party media/provider hosts returned for the selected episode;
- AnimeSchedule for
--nextep-countdown; - GitHub Releases for update checks and installation.
Third-party services see ordinary network metadata such as public IP address, TLS/client characteristics, user agent, and requested resource. Their privacy policies are outside this project's control.
Routine scraper logs redact complete signed URLs, but users should still inspect logs. Never publish:
- cookies or authorization headers;
- complete temporary media query strings;
- active provider tokens;
- decrypted raw episode payloads;
- personal home/build paths;
- private network or account identifiers.
Do not open a public issue for command execution, credential exposure, path escapes, release replacement, or similar security impact. Use GitHub's private advisory form:
https://github.com/vorlie/ani-cli-rs/security/advisories/new
Provider outages, expired URLs, ordinary antivirus heuristics, and playback failures belong in public bug reports.
The plugin system is a roadmap, not a shipped feature. The proposed design uses external executables rather than Rust .dll/.so loading. Such plugins would be trusted native code running as the current user; no plugin should be installed or executed merely because it appears in the current directory.