Inspiration

I was frustrated that modern operating systems still treat files as static, isolated objects in hierarchical folders. I wanted to transform the file system into a living knowledge graph—where relationships between documents are visible, and finding information feels like an organic conversation rather than a rigid keyword search. We drew inspiration from how the human brain connects concepts, aiming to build a "Second Brain" that lives on your desktop.

What it does

GraphFS is an intelligent, agentic file management system that replaces the traditional folder view with an interactive 3D Knowledge Graph.

Semantic Search with Reasoning: Instead of just matching keywords, it understands intent (e.g., "Find eco-friendly projects") and provides an AI-generated reasoning snippet explaining why a file matches. Interactive Visualization: Users can fly through their data in a force-directed graph, exploring connections between files, entities, and communities.

Context-Aware RAG Chat: A persistent sidebar assistant that "sees" what you're looking at and answers questions based on your specific document context.

Agentic Actions: It goes beyond retrieval to execution. You can give natural language commands like "Email the project lead," and it will identify the person from the documents and open a pre-filled Gmail draft instantly.

How I built it

I built a hybrid desktop-cloud architecture:

Frontend: We used Electron and React (Vite) for the desktop experience, leveraging react-force-graph for the high-performance 3D visualization and TailwindCSS for the glassmorphic UI.

Backend: A FastAPI server manages the ingestion pipeline and API.

Database: I used Neo4j as our graph database to store both structural relationships (File-Entity-Community) and vector embeddings.

AI Core: Google Gemini 2.0 Flash powers the entire system—generating embeddings for search, providing reasoning snippets, and driving the conversational agent. We used LlamaIndex for efficient document chunking and node parsing.

Challenges I ran into

Bridging Vector & Graph: Combining vector similarity search with graph traversal was tricky. We had to tune the queries to ensuring we retrieved not just semantically similar chunks, but also the surrounding graph context (related entities) to give the AI enough background.

Visualizing at Scale: Rendering thousands of nodes in 3D without crashing the browser required careful optimization of the force-directed graph algorithm and implementing an "Ambient Mode" to reduce load when idle. Agentic Reliability: Getting the "email" tool to fire reliably without false positives required fine-tuning the system instructions and tool definitions in the Gemini 2.0 API.

Accomplishments that we're proud of

The "Magic" Factor: We're incredibly proud of the "one-shot" email action. Seeing the system correctly identify "him" as "Marcus Weber" from a previous document context and opening a drafted email feels truly magical. UI/UX Polish: We managed to create a clean, futuristic interface that balances the complexity of a graph database with the simplicity needed for a consumer app.

Real-time Reasoning: Achieving sub-second latency for search results that also include generated reasoning explanations.

What I learned

GraphRAG is powerful: Traditional RAG is good, but GraphRAG (retrieval augmented generation with graph structures) provides significantly better context for complex queries where relationships matter more than just keyword overlap. Multimodal is the future: The user experience is vastly improved when visual cues (the graph) match the textual interaction (the chat).

What's next for GraFS Global Community Search: Expanding the search to query across high-level "clusters" or communities of documents, not just individual files. Local LLM Support: Adding support for local models for users with privacy constraints. Deeper OS Integration: Allowing direct file manipulation (move, rename, delete) through the graph interface.

Built With

  • electron
  • fastapi-high-performance-api-server-neo4j-graph-database-with-vector-search-capabilities-google-gemini-2.0-flash-embeddings
  • llama
  • reasoning-generation
  • typescript
Share this project:

Updates