Skip to content

11bho11/PrivacyGraph

Repository files navigation

Privacy Graph

Select the apps you use. See who they share your data with — rendered as a live graph. Get exact opt-out steps powered by AI.


How it works

  1. Pick services (Google, Meta, TikTok, LinkedIn, ChatGPT, Gemini)
  2. A Neo4j graph renders showing which companies receive your data and how
  3. An AI agent (Kimchi → kimi-k2.5) generates step-by-step opt-out instructions for each service using a Tessl Privacy Skill as its system prompt

The demo moment: LinkedIn and ChatGPT both route through Microsoft — a multi-hop connection most users don't know about.


Prerequisites

  • Python 3.10+
  • Neo4j Aura free account (one instance)
  • Kimchi free account (API key)

Setup

git clone <repo-url>
cd tessl
python -m venv venv

# Windows
venv\Scripts\pip install -r requirements.txt

# Mac/Linux
venv/bin/pip install -r requirements.txt

Copy .env.example to .env and fill in your credentials:

NEO4J_URI=neo4j+s://<instance-id>.databases.neo4j.io
NEO4J_USERNAME=<instance-id>
NEO4J_PASSWORD=<password>
NEO4J_DATABASE=<instance-id>
KIMCHI_API_KEY=<castai-api-key>

Run

Seed the graph first (one-time):

# Windows
venv\Scripts\python seed.py

# Mac/Linux
venv/bin/python seed.py

Start the app:

# Windows
venv\Scripts\python app.py

# Mac/Linux
venv/bin/python app.py

Open http://localhost:5000.


Sponsor integrations

Neo4j

All graph data lives in Neo4j Aura. The seed script loads 13 nodes (6 services, 4 corporate entities, 3 data categories) and 12 relationships via Cypher MERGE statements. On each page load, a Cypher query filters the graph by selected services and returns nodes and edges as JSON for vis.js to render. The connection URI is logged to the console on startup.

Three Neo4j Tessl Skills were used during development to write correct Cypher and driver code:

Skill Used for
neo4j-cypher-skill Writing seed.py MERGE statements and the /api/graph Cypher query
neo4j-driver-python-skill Flask + neo4j driver integration: execute_query, result mapping, database parameter
neo4j-getting-started-skill Aura free instance setup, neo4j+s:// connection string format

Install via: /plugin marketplace add https://github.com/neo4j-contrib/neo4j-skills.git

Kimchi

The /api/action-items endpoint routes through Kimchi using the OpenAI-compatible SDK (base_url=https://llm.kimchi.dev/openai/v1, model kimi-k2.5). The model name is displayed in the action items panel footer so judges can see it doing work in the demo.

Tessl

skills/privacy/SKILL.md is a Tessl Privacy Skill containing verified opt-out navigation paths for all 6 services. Flask reads this file at startup and injects it as the system prompt for every Kimchi call — making it a runtime Tessl integration, not just a dev tool. The action items panel shows a "Powered by Tessl" badge once the skill response loads.


Built with Tessl Skills

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors