Skip to content
@Nessie-org

Nessy org.

🐉 Nessie Graph Explorer

A modular, plugin-driven platform for loading, visualizing, and analyzing graphs in the browser.

📖 Full documentation: nessie-docs

What is Nessie?

Nessie Graph Explorer is an open-source developer tool for graph visualization and analysis. It is built around a plugin system — every piece of functionality (loading data, rendering the UI, filtering, visualizing nodes and edges) is provided by a Python plugin that registers handlers for named actions.

  • Connect any data source — SQLite databases, npm registries, Python AST, CSV files, or your own API
  • Multiple visualizers — swap between rendering styles without reloading
  • Attribute filtering — filter nodes by any attribute with ==, !=, >, >=, <, <= operators
  • Full-text search — search across all node attributes simultaneously
  • Multi-workspace — open multiple graphs side by side in tabs
  • In-browser CLI — create, edit, and delete nodes and edges live from the console panel
  • D3-powered force layout — interactive, draggable, zoom-pannable graphs
  • CLI tooling — npm-based CLI for project setup, plugin management, and server startup

Quick Start

# Install the CLI
npm install -g @nessie-org/cli

# Create a project (scaffolds venv, clones core, installs plugins)
nessie setup my-project

# Start the Flask web server
cd my-project
nessie start flask

Open http://localhost:8000 — click + to load your first graph.


Architecture

┌──────────────────────────────────────────────────────────┐
│              Web Server (Flask or Django)                 │
├──────────────────────────────────────────────────────────┤
│   Datasource    │   Visualizer    │   Manipulation       │  Plugins
│   load_graph    │ visualise_graph │   filter_graph       │
│   Nessie Web    │   nessie-cli    │   ···                │
├──────────────────────────────────────────────────────────┤
│         Platform: PluginManager · WorkspaceManager       │
│                       Context                            │
├──────────────────────────────────────────────────────────┤
│   nessie-api: Graph · Node · Edge · Action · Plugin      │
└──────────────────────────────────────────────────────────┘

Plugins communicate through named actions. The PluginManager discovers all installed plugins via Python entry points at startup — no manual wiring.


Repositories

Core

Repo Description
nessie-api Shared models: Graph, Node, Edge, Plugin, Action, FilterExpression, Context protocol
Nessie Platform runtime: PluginManager, WorkspaceManager, Context implementation

Tooling

Repo Description
@nessie-org/cli npm CLI — project setup, plugin management, server start

Web Servers

Repo Description
flask-web-nessie Flask HTTP server
django-web-nessie Django HTTP server

Plugins

Repo Action Description
nessie-web render Web UI renderer — D3 graph, sidebar, minimap, console, filters
nessie-relationaldb-datasource-plugin load_graph SQLite → Graph (tables = nodes, FK = edges)
nessie-npm-dependencies-plugin load_graph npm dependency tree crawler
nessie-python-datasource-plugin load_graph Python AST → Graph (classes, functions, call edges)
nessie-graph-manipulation-plugin filter_graph Attribute filters + full-text search
nessie-simple-visualizer-plugin visualise_graph Circle-based SVG visualizer
neisse-graph-visualiser-block visualise_graph Block/card SVG visualizer showing all attributes
nessie-cli cli_execute In-browser graph editing CLI (textX grammar)

Building a Plugin

Any Python package that declares a nessie_plugins entry point and handles one or more actions is a Nessie plugin. The minimum viable plugin:

from nessie_api.models import Graph, GraphType, plugin, Action, SetupRequirementType
from nessie_api.protocols import Context

def load_graph(action: Action, context: Context) -> Graph:
    path = action.payload["File Path"]
    # ... build and return a Graph object ...

@plugin("My Datasource")
def my_plugin():
    return {
        "handlers": {"load_graph": load_graph},
        "requires": [],
        "setup_requires": {"File Path": SetupRequirementType.STRING},
    }
# pyproject.toml
[project.entry-points."nessie_plugins"]
my_plugin = "my_package:my_plugin"

License

All Nessie repositories are licensed under Apache 2.0 or MIT.
Copyright © 2026 Nessie-org

Popular repositories Loading

  1. Nessie Nessie Public

    Plugin manager, workspace manager, and Context implementation for Nessie Graph Explorer. Orchestrates plugin discovery, action dispatch, and multi-workspace state management.

    Python

  2. nessie-web nessie-web Public

    The official web UI plugin for Nessie Graph Explorer. Renders the full browser interface — D3 force graph, multi-workspace tabs, filter panel, bird-view minimap, and console — as a single inlined H…

    JavaScript

  3. nessie-api nessie-api Public

    Shared models and contracts for the Nessie Graph Explorer ecosystem — Graph, Node, Edge, Attribute, Plugin, Action, FilterExpression, and the Context protocol.

    Python

  4. nessie-graph-manipulation-plugin nessie-graph-manipulation-plugin Public

    Nessie plugin that handles the `filter_graph` action — applies attribute-based FilterExpression rules and free-text search to return a matching subgraph from any loaded graph.

    Python

  5. nessie-simple-visualizer-plugin nessie-simple-visualizer-plugin Public

    Nessie visualizer plugin that renders graph nodes as labeled SVG circles. Minimal, fast, and compatible with the D3 physics simulation in the Nessie web UI.

    Python

  6. neisse-graph-visualiser-block neisse-graph-visualiser-block Public

    Nessie visualizer plugin that renders graph nodes as attribute blocks (card layout) — each node shows its ID as a header and all key-value attributes as rows inside the block.

    Python

Repositories

Showing 10 of 16 repositories

Top languages

Loading…

Most used topics

Loading…