
Research
/Security News
Fake imToken Chrome Extension Steals Seed Phrases via Phishing Redirects
Mixed-script homoglyphs and a lookalike domain mimic imToken’s import flow to capture mnemonics and private keys.
jaal
Advanced tools
Your interactive network visualizing dashboard
Documentation: Here
Jaal is a python based interactive network visualizing tool built using Dash and Visdcc. Along with the basic features, Jaal also provides multiple option to play with the network data such as searching graph, filtering and even coloring nodes and edges in the graph. And all of this within 2 lines of codes :)
Jaal requires following python packages,
Installing Jaal is super easy, just do the following,
pip install jaal
And you are done :)
Note, it's recommended to create a virtual enivornment before installing. This can be easily done using python -m venv myenv and then to activate the env we need,
.\\myvenv\\Scripts\\activate.batsource myvenv/bin/activateAfter installing Jaal, we need to fetch the data and call plot function in Jaal. This can be shown by playing with an included Game of Thrones dataset, as follows,
# import
from jaal import Jaal
from jaal.datasets import load_got
# load the data
edge_df, node_df = load_got()
# init Jaal and run server
Jaal(edge_df, node_df).plot()
Here first we import Jaal main class and the dataset loading function load_got. Later we load the GoT dataset from the datasets included in the package. This gives us two files,
from and to column, which represents the edge relationship between the entitiesid column with unique node names.Note, edge_df is mandatory and node_df is optional. Also we can include additional columns in these files which are automatically considered as edge or node features respectively.
After running the plot, the console will prompt the default localhost address (127.0.0.1:8050) where Jaal is running. Access it to see the following dashboard,
At present, the dashboard consist of following sections,
To display labels over edges, we need to add a label attribute (column) in the edge_df. Also, it has to be in string format.
For example, using the GoT dataset, by adding the following line before the Jaal call, we can display the edge labels.
# add edge labels
edge_df.loc[:, 'label'] = edge_df.loc[:, 'weight'].astype(str)
Currently it is possible to show image within node (with circular shape). For this, we need to put node_image_url column in the node_df with URLs for each node.
By default, Jaal plot undirected edges. This setting can be changed by,
Jaal(edge_df, node_df).plot(directed=True)
By default, id is shown as label. To overwrite this, include a label column with the respective data.
By default, id is shown as tooltip. To overwrite this, include a title column with the respective data.
We can tweak any of the vis.js related network visualization settings. An example is,
# init Jaal and run server
Jaal(edge_df, node_df).plot(vis_opts={'height': '600px', # change height
'interaction':{'hover': True}, # turn on-off the hover
'physics':{'stabilization':{'iterations': 100}}}) # define the convergence iteration of network
For a complete list of settings, visit vis.js website.
We can host Jaal on production level HTTP server using gunicorn by first creating the app file (jaal_app.py),
# import
from jaal import Jaal
from jaal.datasets import load_got
# load the data
edge_df, node_df = load_got()
# create the app and server
app = Jaal(edge_df, node_df).create()
server = app.server
then from the command line, start the server by,
gunicorn jaal_app:server
Note, Jaal.create() takes directed and vis_opts as arguments. (same as Jaal.plot() except the host and port arguments)
If you are facing port related issue, please try the following way to run Jaal. It will try different ports, until an empty one is found.
port=8050
while True:
try:
Jaal(edge_df, node_df).plot(port=port)
except:
port+=1
Please report any bug or feature idea using Jaal issue tracker: https://github.com/imohitmayank/jaal/issues
Any type of collaboration is appreciated. It could be testing, development, documentation and other tasks that is useful to the project. Feel free to connect with me regarding this.
You can connect with me on LinkedIn or mail me at mohitmayank1@gmail.com.
Jaal is licensed under the terms of the MIT License (see the file LICENSE).
FAQs
jaal - your interactive network visualizer dashboard
We found that jaal demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Mixed-script homoglyphs and a lookalike domain mimic imToken’s import flow to capture mnemonics and private keys.

Security News
Latio’s 2026 report recognizes Socket as a Supply Chain Innovator and highlights our work in 0-day malware detection, SCA, and auto-patching.

Company News
Join Socket for live demos, rooftop happy hours, and one-on-one meetings during BSidesSF and RSA 2026 in San Francisco.