Metadata-Version: 2.5
Name: graqle
Version: 0.84.1
Summary: Persistent organisational intelligence for AI agents. Turn codebases, documents, policies and decisions into a knowledge graph so Claude Code, Cursor and Copilot reason over architecture, dependencies and prior lessons — with confidence scores and evidence. 13 LLM backends + custom, fully offline capable.
Project-URL: Homepage, https://graqle.com
Project-URL: Documentation, https://github.com/quantamixsol/graqle#readme
Project-URL: Repository, https://github.com/quantamixsol/graqle
Project-URL: Changelog, https://github.com/quantamixsol/graqle/releases
Project-URL: Bug Tracker, https://github.com/quantamixsol/graqle/issues
Project-URL: Patent Notice, https://quantamixsolutions.com/patents
Author-email: Harish Kumar <harish.kumar@quantamixsolutions.com>
License: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: agent-memory,ai-assistant,ai-coding,ai-governance,architecture,claude-code,cli,code-analysis,code-intelligence,code-quality,code-understanding,codebase-reasoning,context-engineering,copilot,cursor,dependency-analysis,dev-intelligence,development-tools,document-intelligence,governance,governed-autonomy,graph-reasoning,graqle,impact-analysis,institutional-memory,knowledge-graph,mcp,mcp-server,model-agnostic,multi-agent,organisational-intelligence,organizational-intelligence,persistent-memory,rag-alternative,reasoning,refactoring,static-analysis,vscode
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.10
Requires-Dist: cryptography>=42.0
Requires-Dist: fastapi>=0.100
Requires-Dist: jinja2>=3.1
Requires-Dist: jsonschema>=4.0
Requires-Dist: networkx>=3.0
Requires-Dist: numpy>=1.24
Requires-Dist: pydantic-settings>=2.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rfc8785==0.1.4
Requires-Dist: rich>=13.0
Requires-Dist: typer[all]>=0.9
Requires-Dist: uvicorn[standard]>=0.20
Provides-Extra: all
Requires-Dist: anthropic>=0.18; extra == 'all'
Requires-Dist: boto3>=1.28; extra == 'all'
Requires-Dist: fastapi>=0.100; extra == 'all'
Requires-Dist: httpx>=0.25; extra == 'all'
Requires-Dist: jinja2>=3.1; extra == 'all'
Requires-Dist: neo4j>=5.0; extra == 'all'
Requires-Dist: openai>=1.0; extra == 'all'
Requires-Dist: openpyxl>=3.1; extra == 'all'
Requires-Dist: pdfplumber>=0.9; extra == 'all'
Requires-Dist: pillow>=10.0; extra == 'all'
Requires-Dist: playwright>=1.40; extra == 'all'
Requires-Dist: pyjwt[crypto]>=2.8; extra == 'all'
Requires-Dist: pyshacl>=0.25.0; extra == 'all'
Requires-Dist: python-docx>=0.8; extra == 'all'
Requires-Dist: python-pptx>=0.6; extra == 'all'
Requires-Dist: rdflib>=7.0.0; extra == 'all'
Requires-Dist: sentence-transformers<3.0,>=2.2; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.20; extra == 'all'
Provides-Extra: all-gpu
Requires-Dist: anthropic>=0.18; extra == 'all-gpu'
Requires-Dist: boto3>=1.28; extra == 'all-gpu'
Requires-Dist: fastapi>=0.100; extra == 'all-gpu'
Requires-Dist: httpx>=0.25; extra == 'all-gpu'
Requires-Dist: jinja2>=3.1; extra == 'all-gpu'
Requires-Dist: neo4j>=5.0; extra == 'all-gpu'
Requires-Dist: openai>=1.0; extra == 'all-gpu'
Requires-Dist: openpyxl>=3.1; extra == 'all-gpu'
Requires-Dist: pdfplumber>=0.9; extra == 'all-gpu'
Requires-Dist: peft<0.14,>=0.7; extra == 'all-gpu'
Requires-Dist: pillow>=10.0; extra == 'all-gpu'
Requires-Dist: playwright>=1.40; extra == 'all-gpu'
Requires-Dist: pyjwt[crypto]>=2.8; extra == 'all-gpu'
Requires-Dist: pyshacl>=0.25.0; extra == 'all-gpu'
Requires-Dist: python-docx>=0.8; extra == 'all-gpu'
Requires-Dist: python-pptx>=0.6; extra == 'all-gpu'
Requires-Dist: rdflib>=7.0.0; extra == 'all-gpu'
Requires-Dist: sentence-transformers<3.0,>=2.2; extra == 'all-gpu'
Requires-Dist: torch<2.5,>=2.0; extra == 'all-gpu'
Requires-Dist: transformers<4.50,>=4.35; extra == 'all-gpu'
Requires-Dist: uvicorn[standard]>=0.20; extra == 'all-gpu'
Requires-Dist: vllm>=0.3; extra == 'all-gpu'
Provides-Extra: api
Requires-Dist: anthropic>=0.18; extra == 'api'
Requires-Dist: boto3>=1.28; extra == 'api'
Requires-Dist: httpx>=0.25; extra == 'api'
Requires-Dist: neo4j>=5.0; extra == 'api'
Requires-Dist: openai>=1.0; extra == 'api'
Requires-Dist: pyjwt[crypto]>=2.8; extra == 'api'
Requires-Dist: pyshacl>=0.25.0; extra == 'api'
Requires-Dist: rdflib>=7.0.0; extra == 'api'
Provides-Extra: cpu
Requires-Dist: llama-cpp-python>=0.2; extra == 'cpu'
Requires-Dist: sentence-transformers<3.0,>=2.2; extra == 'cpu'
Provides-Extra: dev
Requires-Dist: boto3>=1.28; extra == 'dev'
Requires-Dist: coverage>=7.0; extra == 'dev'
Requires-Dist: httpx>=0.25; extra == 'dev'
Requires-Dist: hypothesis>=6.0; extra == 'dev'
Requires-Dist: import-linter>=2.0; extra == 'dev'
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pyjwt[crypto]>=2.8; extra == 'dev'
Requires-Dist: pyshacl>=0.25.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest-env>=1.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.10; extra == 'dev'
Requires-Dist: pytest-xdist>=3.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: rdflib>=7.0.0; extra == 'dev'
Requires-Dist: requests>=2.28; extra == 'dev'
Requires-Dist: ruff>=0.1; extra == 'dev'
Provides-Extra: docs
Requires-Dist: openpyxl>=3.1; extra == 'docs'
Requires-Dist: pdfplumber>=0.9; extra == 'docs'
Requires-Dist: python-docx>=0.8; extra == 'docs'
Requires-Dist: python-pptx>=0.6; extra == 'docs'
Provides-Extra: embeddings
Requires-Dist: sentence-transformers<3.0,>=2.2; extra == 'embeddings'
Provides-Extra: gpu
Requires-Dist: peft<0.14,>=0.7; extra == 'gpu'
Requires-Dist: sentence-transformers<3.0,>=2.2; extra == 'gpu'
Requires-Dist: torch<2.5,>=2.0; extra == 'gpu'
Requires-Dist: transformers<4.50,>=4.35; extra == 'gpu'
Requires-Dist: vllm>=0.3; extra == 'gpu'
Provides-Extra: lite
Provides-Extra: neo4j
Requires-Dist: neo4j>=5.0; extra == 'neo4j'
Provides-Extra: phantom
Requires-Dist: boto3>=1.28; extra == 'phantom'
Requires-Dist: pillow>=10.0; extra == 'phantom'
Requires-Dist: playwright>=1.40; extra == 'phantom'
Provides-Extra: scorch
Requires-Dist: boto3>=1.28; extra == 'scorch'
Requires-Dist: pillow>=10.0; extra == 'scorch'
Requires-Dist: playwright>=1.40; extra == 'scorch'
Provides-Extra: security
Requires-Dist: cyclonedx-bom>=4.0; extra == 'security'
Requires-Dist: pip-audit>=2.6; extra == 'security'
Requires-Dist: sigstore<4.0,>=3.0; extra == 'security'
Provides-Extra: server
Requires-Dist: fastapi>=0.100; extra == 'server'
Requires-Dist: uvicorn[standard]>=0.20; extra == 'server'
Provides-Extra: studio
Requires-Dist: fastapi>=0.100; extra == 'studio'
Requires-Dist: jinja2>=3.1; extra == 'studio'
Requires-Dist: uvicorn[standard]>=0.20; extra == 'studio'
Provides-Extra: watch
Requires-Dist: watchdog<5.0,>=3.0; extra == 'watch'
Description-Content-Type: text/markdown

# GraQle — give your AI a memory of how your organisation actually works

**Turn policies, decisions, documents and codebases into a persistent knowledge graph, so your AI agents reason over what your organisation already knows instead of rebuilding a partial picture every session.**

```bash
pip install graqle
```

Models change. Tools change. Your institutional knowledge should not.

**Works with your stack today** — 13 LLM backends plus any custom HTTP endpoint (Anthropic, OpenAI, Bedrock, Ollama, Gemini, Groq, DeepSeek, Together, Mistral, OpenRouter, Fireworks, Cohere, llama.cpp), fully offline with Ollama or llama.cpp, and inside Claude Code, Cursor, VS Code + Copilot or Windsurf via **85 MCP tools**. Local-first: no telemetry, and your source never leaves your machine.

---

## 60-second proof — no code required

Works on a folder with no code in it at all.

```bash
# 1. Turn organisational documents into a typed graph
graq scan docs ./policies
# → 3 files → 12 nodes: 3 Document + 9 Section, linked by SECTION_OF

# 2. Teach it a rule that lives in nobody's file
graq learn knowledge "vendor DPA must be signed before any data access" --domain policy
# → auto-links the rule to the vendor-onboarding doc AND its "Due diligence" section

# 3. Ask across the whole body of knowledge
graq run "what approval is needed for a large refund?"
# → answer + confidence + evidence trail + the sections consulted

# 4. Audit what the organisation has taught it
graq learned
```

Step 2 is the one that compounds — and the one prompt engineering cannot replace, because it needs a persistent typed graph as the substrate. GraQle worked out where that rule belonged on its own.

### The same graph, for code

```bash
graq scan repo .                                    # functions, classes, imports, calls
graq run "what breaks if I change the payment module?"
graq impact payments.py                             # blast radius
```

Software architecture is the deepest-mapped domain today — a wedge, not the boundary.

---

## Why this matters now

Agents are getting far more capable and still start from zero every session. Models are becoming cheaper and interchangeable, which makes the intelligence layer above them — not the model itself — the thing worth owning.

GraQle sits above the model:

- **Relationships, not files.** Assistants see documents and files. GraQle sees how a policy, a decision and the code implementing it relate.
- **Memory that compounds.** Policies, decisions and lessons become durable graph nodes, not chat history.
- **Model independence.** Switch providers or IDEs without rebuilding the intelligence layer.

---

## What you get

| Capability | Command |
|:---|:---|
| Blast radius before a change | `graq impact payments.py` |
| Cross-file security audit | `graq run "find every auth bypass risk"` |
| Architecture Q&A for onboarding | `graq run "how does checkout work end to end?"` |
| Persistent lessons | `graq learn knowledge "..."` |
| Audit what the graph has been taught | `graq learned` |
| Documents, policies, ADRs into the graph | `graq scan docs ./docs` |
| Pre-change safety check | `graq preflight "refactor the auth layer"` |
| CI/CD governance gate | `graq predict "..." --fail-below-threshold` |

---

## Beyond code

```bash
pip install "graqle[docs]"          # PDF / DOCX / PPTX / XLSX parsers

graq scan docs ./docs               # architecture docs, runbooks, specs
graq learn doc ./policies/          # policies, ADRs, decision records
```

Documents become Document and Section nodes, linked by `SECTION_OF` — and to any code that implements them. Markdown, text, RST and AsciiDoc work with the base install; the richer formats need the `[docs]` extra and are reported — never silently skipped — when it's missing.

---

## Configuring your stack

Switching backend is one line — the graph is the constant, the model is a swappable input:

```yaml
# graqle.yaml
model:
  backend: ollama          # or: anthropic, openai, bedrock, gemini, groq...
  model: llama3
```

```bash
graq init    # detects your IDE and wires the MCP tools
```

---

## Trusted answers

Every result carries `confidence`, `graph_health`, `active_nodes` and evidence pointers. Below the confidence floor, GraQle refuses rather than guesses. With no LLM configured it labels output as a placeholder and attaches no confidence score.

---

## Governed autonomy

When agents move from reading to writing, `graq gate-install` routes write/edit/bash operations through governance gates: plans required for risky changes, secret scanning on commits, full audit trail. For deployed systems, `GovernedRuntime.attest()` records what your AI decided, anchored to the public Sigstore Rekor transparency log — verifiable by any third party.

Optional compliance surfaces for regulated deployments cover the EU AI Act, SOX/COSO, ISO/IEC 42001 and GDPR claim limits; compliance frameworks are authorable as data.

→ [Full documentation on GitHub](https://github.com/quantamixsol/graqle)

---

## Pricing

| | Free | Pro ($19/mo) | Team ($29/dev/mo) |
|:--|:--:|:--:|:--:|
| CLI + SDK + 85 MCP tools | Unlimited | Unlimited | Unlimited |
| 13 LLM backends + custom | ✅ | ✅ | ✅ |
| Graph nodes | 1,000 | 25,000 | Unlimited |
| Cloud sync | 1 project | 3 projects | Unlimited |
| Shared team graphs + lessons | — | — | ✅ |

[**graqle.com →**](https://graqle.com)

---

*Built by Quantamix Solutions B.V. · Patent pending EP26167849.4 · Local by default · Your code never leaves your machine*

<!-- mcp-name: io.github.quantamixsol/graqle -->
