Metadata-Version: 2.4
Name: mitre-graphex
Version: 1.18.1
Summary: Visual programming tool for environment automation.
Home-page: https://github.com/mitre/GraphEx
Author: The MITRE Corporation
License: Apache-2.0
Project-URL: Documentation, https://github.com/mitre/GraphEx/blob/main/docs/markdown/index.md
Project-URL: Source, https://github.com/mitre/GraphEx
Project-URL: Issues, https://github.com/mitre/GraphEx/issues
Project-URL: Changelog, https://github.com/mitre/GraphEx/blob/main/docs/markdown/other/changelog.md
Keywords: automation,visual-programming,flask,network,graph
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Framework :: Flask
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography==46.0.3
Requires-Dist: cffi==2.0.0
Requires-Dist: pycparser==2.23
Requires-Dist: flask-socketio==5.5.1
Requires-Dist: bidict==0.23.1
Requires-Dist: blinker==1.9.0
Requires-Dist: click==8.3.1
Requires-Dist: flask==3.1.2
Requires-Dist: h11==0.16.0
Requires-Dist: itsdangerous==2.2.0
Requires-Dist: Jinja2==3.1.6
Requires-Dist: MarkupSafe==3.0.3
Requires-Dist: python-engineio==4.12.3
Requires-Dist: python-socketio==5.15.0
Requires-Dist: simple-websocket===1.1.0
Requires-Dist: Werkzeug==3.1.3
Requires-Dist: wsproto==1.3.2
Requires-Dist: gitPython==3.1.45
Requires-Dist: gitdb==4.0.12
Requires-Dist: smmap==5.0.2
Requires-Dist: matplotlib==3.10.7
Requires-Dist: contourpy==1.3.2
Requires-Dist: cycler==0.12.1
Requires-Dist: fonttools==4.60.1
Requires-Dist: kiwisolver==1.4.9
Requires-Dist: packaging==25.0
Requires-Dist: pillow==12.0.0
Requires-Dist: pyparsing==3.2.5
Requires-Dist: six==1.17.0
Requires-Dist: networkx==3.4.2
Requires-Dist: numpy==2.2.6
Requires-Dist: ping3==4.0.4
Requires-Dist: pyopenssl==25.3.0
Requires-Dist: python-dateutil==2.8.2
Requires-Dist: pyyaml==6.0.3
Requires-Dist: requests==2.32.5
Requires-Dist: certifi==2025.11.12
Requires-Dist: charset-normalizer==3.4.4
Requires-Dist: idna==3.11
Requires-Dist: urllib3==2.5.0
Requires-Dist: setuptools==80.9.0
Requires-Dist: service_identity==24.2.0
Requires-Dist: attrs==25.4.0
Requires-Dist: pyasn1==0.6.1
Requires-Dist: pyasn1_modules==0.4.2
Requires-Dist: typeguard==4.4.4
Requires-Dist: typing_extensions==4.15.0
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

©2025 The MITRE Corporation. ALL RIGHTS RESERVED.
The author's affiliation with The MITRE Corporation is provided for identification purposes only, and is not intended to convey or imply MITRE's concurrence with, or support for, the positions, opinions, or viewpoints expressed by the author.'©2025 The MITRE Corporation. ALL RIGHTS RESERVED.
This software was produced for the U. S. Government and is subject to the Rights in Noncommercial Computer Software and Noncommercial Computer Software Documentation Clause 252.227-7014 (FEB 2014)

# About Graphex

Graphex is a visual programming (language) application that allows you to build and execute 'graphs'. Each graph contains 'nodes' that perform different operations in the order created by the user. A fully connected graph is equivalent to a python script (or program).

You do not need any programming knowledge to use Graphex. It was designed to allow anyone to write computer programs (visually) without writing lines of code.

![The Graphex UI](docs/markdown/images/GraphexUI.png)

# Installation

GraphEx is available in pip via pypi and is recommended to be installed in a virtual environment (venv):
```
python3 -m pip install mitre-graphex
```

GraphEx has a built in help menu:
```
python3 -m graphex -h
```

![The top level help menu for graphex](docs/markdown/images/HelpTerminal.png)

You can quickly serve the UI with built-in graph execution via:
```
python3 -m graphex serve
```

Then navigate to https://localhost:8080 to get started creating executable graphs!

# Documentation

For documentation on Graphex usage please read the offical documentation located at: [docs/markdown/index.md](docs/markdown/index.md). <br />

This documentation can also be reached from inside the Graphex UI itself by navigating to 'Help' -> 'Documentation (Tutorial)' on the menu bar. <br />

# Plugins

GraphEx is intended to extended via its built-in plugin system. Plugins enable python3 developers to add custom, encapsulated functionality to GraphEx via nodes and datatypes.

For example, most GraphEx users at the time of this writing experience GraphEx alongside these plugins:
- [GraphEx-ESXi-Utilities](https://github.com/mitre/GraphEx-ESXi-Utilities)
- [GraphEx-Web-Automation-Plugin](https://github.com/mitre/GraphEx-Web-Automation-Plugin)

These plugins add hundreds of nodes for configuring and controlling ESXi and its virtual machines, handling SSH and WinRM connections, running/executing and monitoring ansible playbooks and automating browser interaction via playwright. No coding experience is needed to leverage these automation tools! Simply pip install the plugins alongside the core mitre-graphex package:

```
python3 -m pip install graphex-esxi-utils graphex-webautomation-plugin
```

[Then serve GraphEx](docs/markdown/setup/running.md) and drag the added nodes into your graph to start using them!:

<br/>


![Available subcategories and nodes in the sidebar for the graphex_esxi_utils plugin](https://github.com/mitre/GraphEx-ESXi-Utilities/blob/main/graphex_esxi_utils/docs/markdown/images/vm_categories.png)

