apprise

v1.11.0 safe
4.0
Medium Risk

Push Notifications that work with just about every platform!

🤖 AI Analysis

Final verdict: SAFE

The package appears to be legitimate with minor concerns. It has typical network and obfuscation practices without any signs of malicious activities.

  • network calls are expected for its functionality
  • base64 decoding is used but does not indicate malicious behavior
Per-check LLM notes
  • Network: Network calls are typical for packages that require internet access to send notifications or retrieve data.
  • Shell: No shell execution patterns detected.
  • Obfuscation: The use of base64 decoding might indicate an attempt to obfuscate code, but it is also common in legitimate scenarios like handling encoded strings.
  • Credentials: No clear evidence of credential harvesting was found.
  • Metadata: The presence of a non-secure link to a camera stream and an author with minimal activity suggests potential risks, but lacks clear indicators of malicious intent.

📦 Package Quality Overall: Medium (6.4/10)

◈ Medium Test Suite 6.0

Partial test coverage signals detected

  • Test runner config found: pyproject.toml
◈ Medium Documentation 7.0

Some documentation present

  • Documentation URL: "Documentation" -> https://appriseit.com
  • Detailed PyPI description (57256 chars)
○ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
◈ Medium Type Annotations 5.0

Partial type annotation coverage

  • 89 type-annotated function signatures detected in source
✦ High Multiple Contributors 10.0

Active multi-contributor project

  • 6 unique contributor(s) across 100 commits in caronc/apprise
  • Active community — 5 or more distinct contributors

🔬 Heuristic Checks

Outbound Network Calls score 9.0

Found 6 network call pattern(s)

  • try: self.sock = socket.create_connection( (APRS_LOCALES[self.locale], self.notify_por
  • request with requests.get( url, headers=header
  • our request with requests.post( url, headers=headers,
  • try: r = requests.post( notify_url, data=pa
  • try: r = requests.post( url, data=payload,
  • try: r = requests.post( self.notify_url, da
Code Obfuscation score 4.0

Found 2 obfuscation pattern(s)

  • bytes value = base64.b64decode(value) except binascii.Error: l
  • module = __import__( module_pyname, globals(), locals(),
Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: gmail.com>

Suspicious Page Links score 2.0

Found 1 suspicious link(s) on the package page

  • Non-HTTPS external link: http://admin:password@hikvision-cam01/ISAPI/Streaming/channels/101/picture?cache
Git Repository History

Repository caronc/apprise appears legitimate

Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with apprise
Create a versatile notification system using Python's 'apprise' package. Your task is to develop a simple command-line tool that allows users to send notifications to various services such as email, SMS, Telegram, Discord, and more, all from a single interface. The tool should accept input from the user via command-line arguments for the service type, recipient address, and message content. Additionally, include an option for users to specify custom configurations for different notification services if needed. The application should also support sending multiple notifications at once to different services and allow for scheduling notifications to be sent at a later time. Implement error handling to manage invalid inputs and service failures gracefully. As part of the development process, ensure your application includes a README file detailing setup instructions, usage examples, and any additional configuration steps required for each supported service. Use 'apprise' effectively to leverage its broad compatibility with different notification platforms, making your tool highly useful for personal and professional notification needs.