Skip to main content

Own your AI memory. Take it everywhere.

Reason this release was yanked:

Superseded by v1.0.0 — version number reset for public launch

Project description

Cortex — Your Portable AI Identity

Own your AI memory. Take it everywhere.

Cortex extracts your context from every AI platform you use — ChatGPT, Claude, Gemini, Perplexity — and every coding tool — Claude Code, Cursor, Copilot — merges it into a single knowledge graph, and lets you selectively push it back to any platform. Cryptographically signed. Version controlled. Zero external dependencies.

pip install cortex-identity

# Extract from ChatGPT, export to Claude
cortex chatgpt-export.zip --to claude -o ./output

# Visualize your knowledge graph
cortex viz context.json --output graph.html

# Launch the dashboard
cortex dashboard context.json

Nobody else builds user-owned portable AI identity. Mem0, Letta, and built-in AI memories are agent memory — owned by the platform. Cortex is your memory, under your control.


How It Works

Chat Exports (ChatGPT, Claude, Gemini, Perplexity, API logs)
  + Coding Sessions (Claude Code, Cursor, Copilot)
        |
   cortex.extract_memory      Parse exports, extract entities (declarative)
   cortex.coding              Parse coding sessions (behavioral)
        |
   CortexGraph                Nodes (entities) + Edges (relationships)
        |
   UPAI Protocol              Sign, version, control disclosure
        |
   Platform Adapters          Push selective views to Claude, Notion, etc.
        |
   Flywheel                   Auto-extract, auto-sync, dashboard

Nodes are entities, not category items. "Python" is ONE node with tags [technical_expertise, domain_knowledge] — not duplicated across categories. Edges capture typed relationships: Python --applied_in--> Healthcare.


Quick Start

Install

pip install cortex-identity

That's it. Zero dependencies — pure Python stdlib.

Use

# Extract context from a chat export
cortex chatgpt-export.zip --to claude -o ./output

# Or extract to universal JSON first
cortex extract chatgpt-export.zip -o context.json

# Then export to any platform
cortex import context.json --to all -o ./output

Optional Extras

pip install cortex-identity[crypto]   # Ed25519 signatures (PyNaCl)
pip install cortex-identity[fast]     # 10x faster graph layout (numpy)
pip install cortex-identity[full]     # Both
pip install cortex-identity[dev]      # + pytest for running tests

From Source

git clone https://github.com/Junebugg1214/Cortex-AI.git
cd Cortex-AI
pip install -e .

Requirements

  • Python 3.10+ (macOS, Linux, Windows)
  • No external packages required for core functionality

Production Ready

v6.4 has been hardened for cross-platform use: atomic file saves prevent data corruption, paths with spaces are properly quoted, sys.executable ensures Windows compatibility, and all extraction errors surface to stderr for debugging.


The Ten Layers

1. Graph Foundation

Everything is nodes and edges. Nodes have tags (not fixed categories), confidence scores, temporal metadata, and extensible properties. The graph is backward compatible — v4 flat-category JSON converts losslessly.

cortex query context.json --node "Python"
cortex query context.json --neighbors "Python"
cortex stats context.json

2. Temporal Engine

Every extraction snapshots each node's state. Cortex tracks how your identity evolves, detects contradictions ("said X in January, not-X in March"), and computes drift scores across time windows.

cortex timeline context.json --format html
cortex contradictions context.json --severity 0.5
cortex drift context.json --compare previous.json

3. UPAI Protocol (Universal Portable AI Identity)

The breakthrough layer. Three capabilities:

  • Cryptographic signing — SHA-256 integrity (always). Ed25519 signatures (with pynacl). Proves the graph is yours and untampered.
  • Selective disclosure — Policies control what each platform sees. "Professional" shows job/skills. "Technical" shows your tech stack. "Minimal" shows almost nothing.
  • Version control — Git-like commits for your identity. Log, diff, checkout, rollback.
# Initialize identity
cortex identity --init --name "Your Name"

# Commit a version
cortex commit context.json -m "Added June ChatGPT export"

# View history
cortex log

# Compare versions
cortex identity --show

# Push to Claude with professional disclosure policy
cortex sync context.json --to claude --policy professional -o ./output

Built-in disclosure policies:

Policy What's Shared Min Confidence
full Everything 0.0
professional Identity, work, skills, priorities 0.6
technical Tech stack, domain knowledge, priorities 0.5
minimal Identity, communication preferences only 0.8

4. Smart Edges

Automatic relationship discovery:

  • Pattern rulestechnical_expertise + active_priorities = used_in edge
  • Co-occurrence — entities appearing together in messages get linked (PMI for large datasets, frequency thresholds for small)
  • Centrality — identifies your most important nodes (degree centrality, PageRank for 200+ nodes)
  • Graph-aware dedup — merges near-duplicates using 70% text similarity + 30% neighbor overlap

5. Query + Intelligence

Structured queries and proactive analysis:

# Find by category, confidence, relationships
cortex query context.json --category technical_expertise
cortex query context.json --strongest 10
cortex query context.json --isolated

# Shortest path between two nodes
cortex query context.json --path "Python" "Mayo Clinic"

# Connected components
cortex query context.json --components

# Gap analysis — what's missing from your graph?
cortex gaps context.json

# Weekly digest — what changed?
cortex digest context.json --previous last_week.json

6. Visualization + Flywheel

See your graph, keep it alive:

# Interactive HTML visualization (zoom, pan, hover, click)
cortex viz context.json --output graph.html

# Static SVG for documents
cortex viz context.json --output graph.svg --format svg

# Live dashboard with stats, gaps, components
cortex dashboard context.json --port 8420

# Auto-extract new exports dropped into a folder
cortex watch ~/exports/ --graph context.json

# Scheduled sync to platforms
cortex sync-schedule --config sync_config.json

7. Coding Tool Extraction

Extract identity from what you actually do, not just what you say. Coding sessions reveal your real tech stack, tools, and workflow through behavior:

# Auto-discover and extract from Claude Code sessions
cortex extract-coding --discover -o coding_context.json

# Filter by project name
cortex extract-coding --discover --project chatbot-memory

# Merge coding extraction with chatbot extraction
cortex extract-coding --discover --merge context.json -o context.json

# Enrich with project files (README, manifests, license)
cortex extract-coding --discover --enrich --stats

# Extract from a specific session file
cortex extract-coding ~/.claude/projects/*/session.jsonl

What it extracts:

Signal How Example
Languages File extensions Editing .py files -> Python
Frameworks Config files package.json -> Node.js
CLI tools Bash commands Running pytest -> Pytest
Projects Working directory /home/user/myapp -> myapp
Patterns Tool sequence Uses plan mode before coding

Project enrichment (--enrich): Reads README, package manifests (package.json, pyproject.toml, Cargo.toml), and LICENSE files from project directories to extract project descriptions, metadata, and domain knowledge. Detects CI/CD and Docker presence.

Currently supports Claude Code (JSONL transcripts). Cursor and Copilot parsers planned.

8. Auto-Inject Context

Every new Claude Code session automatically gets your Cortex identity injected. Install once, context flows forever:

# Install the hook (one-time setup)
cortex context-hook install context.json

# Preview what gets injected
cortex context-hook test

# Export compact context manually
cortex context-export context.json --policy technical

The hook loads your graph, applies disclosure filtering, and injects a compact markdown summary (~300-800 chars) as a system message. Your AI always knows your tech stack, projects, and preferences.

9. Cross-Platform Context Writer

Write persistent Cortex identity to every AI coding tool with non-destructive section markers that preserve your existing rules:

# Write to all 6 platforms at once
cortex context-write graph.json --platforms all --project ~/myproject

# Write to specific platforms
cortex context-write graph.json --platforms cursor copilot windsurf

# Preview without writing
cortex context-write graph.json --platforms all --dry-run

# Auto-refresh when your graph updates
cortex context-write graph.json --platforms all --watch

Supported platforms:

Platform Config File Scope
Claude Code ~/.claude/MEMORY.md Global
Claude Code (project) {project}/.claude/MEMORY.md Project
Cursor {project}/.cursor/rules/cortex.mdc Project
GitHub Copilot {project}/.github/copilot-instructions.md Project
Windsurf {project}/.windsurfrules Project
Gemini CLI {project}/GEMINI.md Project

Uses <!-- CORTEX:START --> / <!-- CORTEX:END --> markers — your hand-written rules are never overwritten.

10. Continuous Extraction

Watch Claude Code sessions in real-time. Auto-extract behavioral signals as you code, merge into your graph, and optionally chain to cross-platform context refresh:

# Watch and auto-update graph
cortex extract-coding --watch -o coding_context.json

# Watch + auto-refresh context to all platforms
cortex extract-coding --watch -o ctx.json \
    --context-refresh claude-code cursor copilot

# Watch specific project only
cortex extract-coding --watch --project chatbot-memory -o ctx.json

# Custom interval and debounce
cortex extract-coding --watch --interval 15 --settle 10 -o ctx.json

How it works: Polls ~/.claude/projects/ for *.jsonl changes (mtime + size), debounces active writes (5s settle), extracts via the coding pipeline, and incrementally merges nodes by label (max confidence, sum mentions, union tags). Graph updates trigger an optional on_update callback for cross-platform refresh.


Supported Platforms

Input (Extract From)

Platform File Type Auto-Detected
ChatGPT .zip with conversations.json Yes
Claude .json with messages array Yes
Claude Memories .json array with text field Yes
Gemini / AI Studio .json with conversations/turns Yes
Perplexity .json with threads Yes
API Logs .json with requests array Yes
JSONL .jsonl (one message per line) Yes
Claude Code .jsonl session transcripts Yes
Plain Text .txt, .md Yes

Output (Export To)

Format Output Use Case
Claude Preferences claude_preferences.txt Settings > Profile
Claude Memories claude_memories.json memory_user_edits
System Prompt system_prompt.txt Any LLM API
Notion Page notion_page.md Notion import
Notion Database notion_database.json Notion DB rows
Google Docs google_docs.html Google Docs paste
Summary summary.md Human overview
Full JSON full_export.json Lossless backup

Extraction Categories

Cortex extracts entities into 17 tag categories:

Category Examples
Identity Name, credentials (MD, PhD)
Professional Context Role, title, company
Business Context Company, products, metrics
Active Priorities Current projects, goals
Relationships Partners, clients, collaborators
Technical Expertise Languages, frameworks, tools
Domain Knowledge Healthcare, finance, AI/ML
Market Context Competitors, industry trends
Metrics Revenue, users, timelines
Constraints Budget, timeline, team size
Values Principles, beliefs
Negations What you explicitly avoid
User Preferences Style and tool preferences
Communication Preferences Response style preferences
Correction History Self-corrections
Mentions Catch-all for other entities

Key Features

PII Redaction

Strip sensitive data before extraction:

cortex chatgpt-export.zip --to claude --redact

# With custom patterns
cortex chatgpt-export.zip --to claude --redact --redact-patterns custom.json

Redacts: emails, phones, SSNs, credit cards, API keys, IP addresses, street addresses.

Incremental Merge

Combine new exports without losing existing data:

cortex extract export1.json -o context.json
cortex extract export2.json --merge context.json -o context.json

Conflict Detection

Automatically flags contradictions:

Input: "I use Python daily" + "I don't use Python anymore"
Result: negation_conflict detected, resolution: prefer_negation (more recent)

Typed Relationships

Input: "We partner with Mayo Clinic. Dr. Smith is my mentor."
Result: Mayo Clinic (partner), Dr. Smith (mentor)

Supported types: partner, mentor, advisor, investor, client, competitor


Architecture

cortex-identity/                    # pip install cortex-identity
├── pyproject.toml                  # Package metadata + entry points
├── cortex/
│   ├── cli.py                  # CLI entry point (23 subcommands)
│   ├── extract_memory.py       # Extraction engine (~1400 LOC)
│   ├── import_memory.py        # Import/export engine (~1000 LOC)
│   ├── graph.py                # Node, Edge, CortexGraph (schema 6.0)
│   ├── compat.py               # v4 <-> v5 conversion
│   ├── temporal.py             # Snapshots, drift scoring
│   ├── contradictions.py       # Contradiction detection
│   ├── timeline.py             # Timeline views
│   ├── upai/
│   │   ├── identity.py         # UPAI identity, DID, Ed25519/HMAC signing
│   │   ├── disclosure.py       # Selective disclosure policies
│   │   └── versioning.py       # Git-like version control
│   ├── adapters.py             # Claude/SystemPrompt/Notion/GDocs adapters
│   ├── edge_extraction.py      # Pattern-based + proximity edge discovery
│   ├── cooccurrence.py         # PMI / frequency co-occurrence
│   ├── dedup.py                # Graph-aware deduplication
│   ├── centrality.py           # Degree centrality + PageRank
│   ├── query.py                # QueryEngine + graph algorithms
│   ├── intelligence.py         # Gap analysis + weekly digest
│   ├── coding.py               # Coding session behavioral extraction
│   ├── hooks.py                # Auto-inject context into Claude Code
│   ├── context.py              # Cross-platform context writer (6 platforms)
│   ├── continuous.py           # Real-time session watcher
│   ├── _hook.py                # cortex-hook entry point
│   ├── __main__.py             # python -m cortex support
│   ├── viz/                    # Visualization
│   ├── dashboard/              # Local web dashboard
│   └── sync/                   # File watcher + scheduled sync
├── migrate.py                  # Backward-compat stub → cortex.cli
├── cortex-hook.py              # Backward-compat stub → cortex._hook
└── tests/                      # 618 tests across 21 files

CLI Reference

Extract & Import

cortex <export> --to <platform> -o ./output    # One-step migrate
cortex extract <export> -o context.json         # Extract only
cortex import context.json --to <platform>      # Import only
cortex extract new.json --merge old.json -o merged.json  # Merge contexts

Query & Intelligence

cortex query <graph> --node <label>             # Find node
cortex query <graph> --neighbors <label>        # Find neighbors
cortex query <graph> --category <tag>           # Filter by tag
cortex query <graph> --path <from> <to>         # Shortest path
cortex query <graph> --strongest <n>            # Top N nodes
cortex query <graph> --weakest <n>              # Bottom N nodes
cortex query <graph> --isolated                 # Unconnected nodes
cortex query <graph> --components               # Connected clusters
cortex gaps <graph>                             # Gap analysis
cortex digest <graph> --previous <old>          # Weekly digest
cortex stats <graph>                            # Graph statistics

Identity & Sync

cortex identity --init --name <name>             # Create identity
cortex commit <graph> -m <message>               # Version commit
cortex log                                       # Version history
cortex identity --show                           # Show identity
cortex sync <graph> --to <platform> --policy <name>  # Push to platform

Visualization & Flywheel

cortex viz <graph> --output graph.html          # Interactive HTML
cortex viz <graph> --output graph.svg --format svg  # Static SVG
cortex dashboard <graph> --port 8420            # Web dashboard
cortex watch <dir> --graph <graph>              # Auto-extract
cortex sync-schedule --config <config.json>     # Scheduled sync

Coding Tool Extraction

cortex extract-coding <session.jsonl>           # From specific file
cortex extract-coding --discover                # Auto-find sessions
cortex extract-coding --discover -p <project>   # Filter by project
cortex extract-coding --discover -m <context>   # Merge with existing
cortex extract-coding --discover --stats        # Show session stats
cortex extract-coding --discover --enrich       # Enrich with project files
cortex extract-coding --watch -o ctx.json       # Watch mode (continuous)
cortex extract-coding --watch --context-refresh claude-code cursor  # Watch + auto-refresh

Context Hook (Auto-Inject)

cortex context-hook install <graph> --policy technical  # Install hook
cortex context-hook uninstall                   # Remove hook
cortex context-hook test                        # Preview injection
cortex context-hook status                      # Check status
cortex context-export <graph> --policy technical  # One-shot export

Cross-Platform Context Writer

cortex context-write <graph> --platforms all --project <dir>  # All platforms
cortex context-write <graph> --platforms cursor copilot       # Specific platforms
cortex context-write <graph> --platforms all --dry-run        # Preview
cortex context-write <graph> --platforms all --watch          # Auto-refresh
cortex context-write <graph> --platforms all --policy professional  # Policy override

Temporal Analysis

cortex timeline <graph> --format html           # Timeline view
cortex contradictions <graph> --severity 0.5    # Find conflicts
cortex drift <graph> --window 90                # Identity drift

Competitive Landscape

Capability Cortex Mem0 Letta ChatGPT Memory Claude Memory
Knowledge Graph Yes Partial No No No
Portability (UPAI) Yes No No No No
User-Owned Yes No No No No
Temporal Tracking Yes No No No No
Coding Tool Extraction Yes No No No No
Auto-Inject Context Yes No No No No
Cross-Platform Context Yes (6) No No No No
Continuous Extraction Yes No No No No
Zero-Dep / Local-First Yes No No N/A N/A

Version History

Version Milestone
v6.4 pip packaging + continuous extraction + production hardeningpip install cortex-identity with cortex CLI entry point; real-time session watching with debounce, incremental graph merge, cross-platform auto-refresh; hardened for production (atomic saves, path quoting, Windows compat, error visibility); 35 sys.path hacks eliminated
v6.3 Cross-platform context writer — persistent context files for Claude Code, Cursor, Copilot, Windsurf, Gemini CLI with non-destructive section markers
v6.2 Auto-inject context — SessionStart hook for Claude Code, compact context generation, install/uninstall CLI
v6.1 Coding tool extraction — behavioral extraction from Claude Code sessions, project enrichment
v6.0 Visualization, dashboard, file monitor, sync scheduler
v5.4 Query engine, gap analysis, weekly digest
v5.3 Smart edge extraction, co-occurrence, centrality, dedup
v5.2 UPAI Protocol — cryptographic signing, selective disclosure, version control
v5.1 Temporal snapshots, contradiction engine, drift scoring
v5.0 Graph foundation — category-agnostic nodes, edges, v4 roundtrip
v4.3 PII redaction
v4.2 Typed relationships, conflict detection, incremental merge
v4.1 Negation detection, preferences/constraints, Gemini/Perplexity support
v4.0 Semantic dedup, time decay, Notion/Google Docs export

License

MIT License - See LICENSE

Author

Created by @Junebugg1214

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cortex_identity-6.4.0.tar.gz (174.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cortex_identity-6.4.0-py3-none-any.whl (128.3 kB view details)

Uploaded Python 3

File details

Details for the file cortex_identity-6.4.0.tar.gz.

File metadata

  • Download URL: cortex_identity-6.4.0.tar.gz
  • Upload date:
  • Size: 174.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for cortex_identity-6.4.0.tar.gz
Algorithm Hash digest
SHA256 f96354145e3e479be12e2cf7e36b8d1370e88b7fc2bc2ab05729f0b16b6ff690
MD5 6505b210b3c8aaa8029ec2b0ee958a43
BLAKE2b-256 0957b658577770b74f04b5c81ebf74ccd5de9f47925744326b353de501aea991

See more details on using hashes here.

File details

Details for the file cortex_identity-6.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cortex_identity-6.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b24a3a1f3df156cc88e3074a8046db70dcf72d6f3a58059bc2e55a942656b301
MD5 bd40b6de5c988ce134553bf9ad442411
BLAKE2b-256 7275309f8a16a2dee80a5b22a2b7201ffafce5a45a8bcf866f0bc43193c82237

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page