Quick Start
1. Install the Nessie CLI
The Nessie CLI is an npm package that handles project scaffolding, plugin management, and server startup.
npm install -g @nessie-org/cliVerify the installation:
nessie help2. Create a New Project
Run nessie setup to scaffold a new Nessie project. This will create the project directory structure, initialize a Python virtual environment, clone the core packages, and let you select which official plugins to install.
You'll be presented with an interactive plugin selector (all enabled by default). Press Enter to accept all, or use arrow keys and space to toggle individual plugins.
The resulting project structure looks like this:
my-graph-project/
├── .nessie/
│ └── meta.json # project metadata
├── .venv/ # Python virtual environment
├── core/
│ ├── nessie-api/ # shared models
│ └── nessie-platform/ # plugin manager & context
├── nessie_plugins/ # official plugins (cloned + installed)
├── my_plugins/ # your custom plugins go here
└── .gitignore
3. Start a Web Server
Nessie ships with both Flask and Django web server implementations. Run nessie start from inside your project directory:
If you don't pass a server name, an interactive selector shows available options. To skip the prompt:
nessie start flaskThe server will start (default port 8000 for Flask). Open http://localhost:8000 in your browser.
4. Load Your First Graph
In the UI, click the + button in the workspace tab bar to open the datasource picker. Select a datasource plugin that matches your data:
| Plugin | Setup Required | What it loads |
|---|---|---|
SQLite Relational DB | Database file path, Is Directed flag | Tables → nodes, FK constraints → edges |
NPM Package Dependencies | Package Name (e.g. express) | npm dependency tree as a directed graph |
Python sourcing plugin | Python file path | Python AST (classes, functions, calls) as a graph |
5. Try the Console
At the bottom of the screen is the console panel. It accepts Nessie CLI commands. Try these after loading a graph:
# Keep only nodes where _table == "employees"
filter `$_table == "employees"`;
# Chain multiple conditions
filter `$_table == "employees" && $salary > 50000`;
# Search all node attributes for a string
search "engineering";
# Create a node
create node --id 1 --property name = Alice --property role = Engineer;
# Create an edge between two nodes
create edge 1 2 --id e1 --property type = manages;
# Edit a node property
edit node --id 1 --ch_prop role = Lead;
# Delete a node
delete node --id 1;