No description
Find a file
Vasilije 7850c56ca8
Feature/windows compatibility fixes (#1464)
# **Pull Request: Windows Compatibility and Error Handling
Improvements**

## Description
This PR addresses multiple Windows compatibility issues and improves
error handling across the cognee CLI and frontend, making the
application fully functional on Windows systems. The changes include:

- **Windows Process Termination**: Fixed crashes when terminating
spawned processes by using `taskkill` instead of Unix-specific `killpg`
functions
- **npm Detection**: Resolved npm command failures on Windows by adding
`shell=True` for PowerShell script execution
- **Frontend SSR**: Fixed "window is not defined" errors by implementing
dynamic imports for the graph visualization component
- **Cloud API**: Improved error handling for local installations by
returning graceful responses instead of raising exceptions
- **Connection Retry**: Added retry mechanism for frontend health checks
with better error messages
- **String Formatting**: Fixed mixed f-string formatting that caused
placeholder issues
- **CLI Entry Point**: Added `cognee` command alongside `cognee-cli` for
better user experience

These changes ensure cognee works seamlessly on Windows while
maintaining backward compatibility and improving overall robustness.

## Type of Change
- [x] Bug fix (non-breaking change that fixes an issue)
- [x] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Performance improvement
- [ ] Other (please specify):

## Screenshots/Videos (if applicable)
<!-- Add screenshots or videos to help explain your changes -->

## Pre-submission Checklist
- [x] **I have tested my changes thoroughly before submitting this PR**
- [x] **This PR contains minimal changes necessary to address the
issue/feature**
- [x] My code follows the project's coding standards and style
guidelines
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have added necessary documentation (if applicable)
- [x] All new and existing tests pass
- [x] I have searched existing PRs to ensure this change hasn't been
submitted already
- [x] I have linked any relevant issues in the description
- [x] My commits have clear and descriptive messages

## DCO Affirmation
I affirm that all code in every commit of this pull request conforms to
the terms of the Topoteretes Developer Certificate of Origin.

---

## 🔧 **Technical Details**

### **Files Modified:**
-  **Windows Process Termination**: `cognee/cli/_cognee.py`,
`cognee/tests/test_cognee_server_start.py`
-  **npm Detection**: `cognee/api/v1/ui/ui.py`
-  **Frontend SSR**:
`cognee-frontend/src/app/(graph)/GraphVisualization.tsx`
-  **Cloud API**: `cognee/api/v1/cloud/routers/get_checks_router.py`
-  **Connection Retry**: `cognee-frontend/src/utils/fetch.ts`
-  **String Formatting**:
`cognee/infrastructure/llm/prompts/read_query_prompt.py`
-  **CLI Entry Point**: `pyproject.toml`

### **Key Changes:**
1. **Process Termination**: Added Windows-compatible `taskkill` commands
alongside Unix `killpg`
2. **npm Commands**: Added `shell=True` for Windows PowerShell script
execution
3. **Dynamic Imports**: Implemented `ssr: false` for graph visualization
component
4. **Graceful Errors**: Return JSON responses instead of raising
exceptions for local mode
5. **Retry Logic**: Added 5-retry mechanism with 1-second delays for
health checks
6. **String Formatting**: Fixed mixed f-string and old-style formatting
issues
7. **CLI Commands**: Added `cognee` entry point alongside `cognee-cli`

### **Testing Results:**
-  All existing tests pass
-  Windows process termination works correctly
-  npm detection and commands work on Windows
-  Frontend loads without SSR errors
-  Cloud API returns graceful responses for local mode
-  Frontend connection retries work properly
-  Code formatting and linting checks pass

This PR makes cognee fully functional on Windows while improving error
handling and user experience across all platforms.
2025-09-29 20:51:27 +02:00
.github docs: Multi user authorization example (#1466) 2025-09-29 20:15:50 +02:00
alembic chore: Update MCP version 2025-09-11 23:41:24 +02:00
assets chore: update cognee ui on readme 2025-09-11 11:05:18 +02:00
bin Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
cognee Merge branch 'dev' into feature/windows-compatibility-fixes 2025-09-29 20:51:17 +02:00
cognee-frontend Merge branch 'dev' into feature/windows-compatibility-fixes 2025-09-29 20:51:17 +02:00
cognee-mcp Merge branch 'dev' into merge-main-vol6 2025-09-28 15:29:23 +02:00
cognee-starter-kit improve structure, readability 2025-09-04 16:20:36 +02:00
deployment Fix/add async lock to all vector databases (#1244) 2025-08-14 15:57:34 +02:00
distributed chore(deps): bump the pip group across 2 directories with 1 update 2025-08-27 21:49:40 +00:00
evals renamed max tokens 2025-08-17 12:39:51 +02:00
examples docs: Multi user authorization example (#1466) 2025-09-29 20:15:50 +02:00
licenses Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
logs feat: Add logging to file [COG-1715] (#672) 2025-03-28 16:13:56 +01:00
notebooks feat: add new tutorial notebook 2025-09-24 16:14:28 +02:00
tools Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
.dockerignore Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
.env.template Aws session token support - MSR97 (#1364) 2025-09-28 15:28:27 +02:00
.gitattributes Merge dev with main (#921) 2025-06-07 07:48:47 -07:00
.gitguardian.yml fix: Mcp improvements (#1114) 2025-07-24 21:52:16 +02:00
.gitignore feat: add welcome tutorial notebook for new users (#1425) 2025-09-18 18:07:05 +02:00
.pre-commit-config.yaml Feat: log pipeline status and pass it through pipeline [COG-1214] (#501) 2025-02-11 16:41:40 +01:00
.pylintrc fix: enable sqlalchemy adapter 2024-08-04 22:23:28 +02:00
alembic.ini fix: Logger suppresion and database logs (#1041) 2025-07-03 20:08:27 +02:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2024-12-13 11:30:16 +01:00
CONTRIBUTING.md Merge main vol 4 (#1200) 2025-08-05 12:48:24 +02:00
CONTRIBUTORS.md Merge with main (#892) 2025-05-30 23:13:04 +02:00
DCO.md Create DCO.md 2024-12-13 11:28:44 +01:00
docker-compose.yml Merge main vol 4 (#1200) 2025-08-05 12:48:24 +02:00
Dockerfile Fix/add async lock to all vector databases (#1244) 2025-08-14 15:57:34 +02:00
entrypoint.sh Regen lock files (#1153) 2025-07-25 11:45:28 -04:00
LICENSE Update LICENSE 2024-03-30 11:57:07 +01:00
mypy.ini fix: Remove weaviate (#1139) 2025-07-23 19:34:35 +02:00
NOTICE.md add NOTICE file, reference CoC in contribution guidelines, add licenses folder for external licenses 2024-12-06 13:27:55 +00:00
poetry.lock Merge branch 'main' into merge-main-vol6 2025-09-27 00:06:33 +02:00
pyproject.toml Merge branch 'dev' into feature/windows-compatibility-fixes 2025-09-29 20:51:17 +02:00
README.md fix: Update README.md to change the URL issue of hosted solution 2025-09-27 12:11:31 +05:30
SECURITY.md Merge main vol 2 (#967) 2025-06-11 09:28:41 -04:00
uv.lock Merge branch 'main' into merge-main-vol6 2025-09-27 00:06:33 +02:00

Cognee Logo

cognee - Memory for AI Agents in 6 lines of code

Demo . Learn more · Join Discord · Join r/AIMemory . Docs . cognee community repo

GitHub forks GitHub stars GitHub commits Github tag Downloads License Contributors Sponsor

cognee - Memory for AI Agents  in 5 lines of code | Product Hunt topoteretes%2Fcognee | Trendshift

Build dynamic memory for Agents and replace RAG using scalable, modular ECL (Extract, Cognify, Load) pipelines.

🌐 Available Languages : Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文

Why cognee?

Get Started

Get started quickly with a Google Colab notebook , Deepnote notebook or starter repo

About cognee

Self-hosted package:

  • Interconnects any kind of documents: past conversations, files, images, and audio transcriptions
  • Replaces RAG systems with a memory layer based on graphs and vectors
  • Reduces developer effort and cost, while increasing quality and precision
  • Provides Pythonic data pipelines that manage data ingestion from 30+ data sources
  • Is highly customizable with custom tasks, pipelines, and a set of built-in search endpoints

Hosted platform:

Self-Hosted (Open Source)

📦 Installation

You can install Cognee using either pip, poetry, uv or any other python package manager.

Cognee supports Python 3.10 to 3.12

With uv

uv pip install cognee

Detailed instructions can be found in our docs

💻 Basic Usage

Setup

import os
os.environ["LLM_API_KEY"] = "YOUR OPENAI_API_KEY"

You can also set the variables by creating .env file, using our template. To use different LLM providers, for more info check out our documentation

Simple example

Python

This script will run the default pipeline:

import cognee
import asyncio


async def main():
    # Add text to cognee
    await cognee.add("Cognee turns documents into AI memory.")

    # Generate the knowledge graph
    await cognee.cognify()

    # Add memory algorithms to the graph
    await cognee.memify()

    # Query the knowledge graph
    results = await cognee.search("What does cognee do?")

    # Display the results
    for result in results:
        print(result)


if __name__ == '__main__':
    asyncio.run(main())

Example output:

  Cognee turns documents into AI memory.

Via CLI

Let's get the basics covered

cognee-cli add "Cognee turns documents into AI memory."

cognee-cli cognify

cognee-cli search "What does cognee do?"
cognee-cli delete --all

or run

cognee-cli -ui

Hosted Platform

Get up and running in minutes with automatic updates, analytics, and enterprise security.

  1. Sign up on cogwit
  2. Add your API key to local UI and sync your data to Cogwit

Demos

  1. Cogwit Beta demo:

Cogwit Beta

  1. Simple GraphRAG demo

Simple GraphRAG demo

  1. cognee with Ollama

cognee with local models

Contributing

Your contributions are at the core of making this a true open source project. Any contributions you make are greatly appreciated. See CONTRIBUTING.md for more information.

Code of Conduct

We are committed to making open source an enjoyable and respectful experience for our community. See CODE_OF_CONDUCT for more information.

Citation

We now have a paper you can cite:

@misc{markovic2025optimizinginterfaceknowledgegraphs,
      title={Optimizing the Interface Between Knowledge Graphs and LLMs for Complex Reasoning}, 
      author={Vasilije Markovic and Lazar Obradovic and Laszlo Hajdu and Jovan Pavlovic},
      year={2025},
      eprint={2505.24478},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2505.24478}, 
}