alt-memory

v4.5.4 suspicious
6.0
Medium Risk

Local-first AI memory system — realms, domains, entities, hybrid search, entity graph, MCP

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package shows signs of low maintenance and potentially low effort, raising concerns about its reliability and security. However, there is no direct evidence of malicious intent.

  • Low activity and metadata quality
  • Potential lack of community support
Per-check LLM notes
  • Metadata: The low activity and lack of metadata suggest potential low effort or malicious intent, but no concrete evidence of typosquatting or other malicious activities.

📦 Package Quality Overall: Medium (5.2/10)

✦ High Test Suite 9.0

Test suite present — 6 test file(s) found

  • 6 test file(s) detected (e.g. test_dimension_ops.py)
◈ Medium Documentation 5.0

Some documentation present

  • Detailed PyPI description (35665 chars)
○ Low Contributing Guide 2.0

No contributing guide or governance files found

  • No CONTRIBUTING, CODE_OF_CONDUCT, or governance files found
◈ Medium Type Annotations 5.0

Partial type annotation coverage

  • 647 type-annotated function signatures detected in source
◈ Medium Multiple Contributors 5.0

Limited contributor diversity

  • 1 unique contributor(s) across 31 commits in kilvz/alt-memory
  • Single author but highly active (31 commits)

🔬 Heuristic Checks

Outbound Network Calls score 7.5

Found 5 network call pattern(s)

  • tmp" try: urllib.request.urlretrieve(url, tmp) Path(tmp).rename(dest)
  • .quote(word)}" req = urllib.request.Request(url, headers={"User-Agent": _WIKI_UA}) with
  • nt": _WIKI_UA}) with urllib.request.urlopen(req, timeout=timeout) as resp: data = j
  • try: req = urllib.request.Request(url, data=body, headers=headers, method="POST")
  • thod="POST") with urllib.request.urlopen(req, timeout=HTTP_TIMEOUT_S) as resp:
Code Obfuscation score 4.0

Found 2 obfuscation pattern(s)

  • "{}" try: meta = __import__("json").loads(meta_json) if isinstance(meta_json, str) else meta_js
  • try: m = __import__("json").loads(d[4]) if isinstance(d[4], str) else d[4] exce
Shell / Subprocess Execution score 10.0

Found 6 shell execution pattern(s)

  • try: proc = subprocess.Popen(cmd, stdout=log_f, stderr=log_f, env=child_env, **_detached_
  • ") as log_f: subprocess.run( [_alt_memory_python(), "-m", "alt_memo
  • Memory"): try: subprocess.Popen( ["notify-send", "--app-name", "Alt Memory", "-
  • > str: try: r = subprocess.run( ["git", "-C", str(cwd), *args], c
  • str]: try: n = subprocess.run( ["git", "config", "--global", "user.name"],
  • ).stdout.strip() e = subprocess.run( ["git", "config", "--global", "user.email"],
Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

No author email provided

Suspicious Page Links

All external links appear legitimate

Git Repository History score 2.5

Git history flags: Repository has zero stars and zero forks

  • Repository has zero stars and zero forks
Maintainer History score 4.0

2 maintainer concern(s) found

  • Author "Alt Memory" appears to have only 1 package on PyPI (new or inactive account)
  • Package has no PyPI classifiers (low effort / metadata quality)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with alt-memory
Create a personal knowledge management system using the 'alt-memory' Python package. This system will allow users to store, organize, and retrieve information about their daily activities, projects, and interests in a structured way. The application should leverage the core features of 'alt-memory', such as realms, domains, entities, hybrid search, and entity graph, to provide a rich and intuitive user experience. Here are the steps and features to implement:

1. **Setup and Initialization**: Start by setting up your Python environment and installing the 'alt-memory' package. Initialize a new instance of the 'alt-memory' system to create a local-first storage for your data.
2. **Define Realms and Domains**: Create different realms to categorize your data (e.g., Personal, Professional, Hobby). Within each realm, define multiple domains to further organize your information (e.g., under Personal, you could have domains like 'Daily Routine', 'Health', 'Finance').
3. **Entities Creation**: Allow users to add entities within these domains. Entities can represent various aspects of your life such as tasks, meetings, books read, movies watched, etc. Each entity should have attributes relevant to its type (e.g., task entities might include 'title', 'description', 'priority', 'due_date').
4. **Hybrid Search Functionality**: Implement a search feature that allows users to query across all realms and domains. Users should be able to search by keyword, date range, priority, or any other attribute. Utilize 'alt-memory's hybrid search capabilities to return both exact matches and related suggestions.
5. **Entity Graph Visualization**: Develop a feature that visualizes connections between entities through an entity graph. For example, if a book entity is linked to a movie entity because they share similar themes, the graph should visually represent this relationship.
6. **User Interface**: Design a simple yet effective UI where users can interact with their data. Ensure that adding new entities, editing existing ones, and searching through them is intuitive and straightforward.
7. **Data Privacy and Security**: Since this is a personal knowledge management system, ensure that all data stored locally is secure and private. Use encryption methods provided by 'alt-memory' or other secure storage practices.
8. **Export/Import Data**: Provide functionality for users to export their data to a backup location or import previously exported data into the system.

By completing these steps, you'll have built a powerful personal knowledge management tool that not only stores but also helps you make sense of your daily life data through advanced querying and visualization techniques.

💬 Discussion Feed

Leave a comment

No discussion yet. Be the first to share your thoughts!