Skip to content

cisco-open/network-sketcher

image

Network Sketcher

Network Sketcher generates network configuration diagrams in PowerPoint and manages configuration information in Excel. With AI (LLM) integration, it supports network design creation and updates via desktop GUI/CLI (Offline) or web browser (Online).

Since Ver 3.0.0, Network Sketcher provides two editions:

You can use either or both.

Online (Web Service) Offline (GUI + CLI)
Interface Web browser Desktop GUI / Command-line
Key dependencies Python + Flask Python + tkinter
Multi-user Multiple users via browser Single user
Client requires Web browser only Python runtime environment
AI-native design Yes No
Internal data storage No No
External communication Yes No
Tested platforms Windows (Mac OS, Linux untested) Windows, Mac OS, Linux
Folder network-sketcher_online/ network-sketcher_offline/
network-sketcher/
├── network-sketcher_online/    # Online edition — Web service (browser-based)
├── network-sketcher_offline/   # Offline edition — GUI + CLI (standalone desktop app)
├── README.md
├── LICENSE
└── ...


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


Network Sketcher Online

AI-native software: Network Sketcher Online is designed around AI (LLM) interaction — generate AI context, send it to an LLM, and paste the resulting commands back to update your network design, all within the browser.

image

Demo Video (Ver 3.0.1b)

A demo video of approximately 4 minutes, starting with the installation of Network Sketcher. This demo video demonstrates creating a network configuration using LLM from URL information and performing additional editing. No sound, no captions.

NS_Online_Demo_301_2_jp.mp4

What is Network Sketcher Online?

Network Sketcher Online is a browser-based web service added in Ver 3.0.0. It wraps the Network Sketcher CLI and provides an intuitive web UI for diagram generation and AI-driven network design — no python on PCs required.

Online Features

Network Sketcher Online supports two output modes:

  • SVG Mode (default): Diagrams are rendered as SVG in the browser. All diagrams (L1/L2/L3, all areas and per-area) are generated in parallel and displayed as thumbnails without needing to download individual files. Master files are stored in the high-performance .nsm format internally. SVG mode is approximately 30x faster than PPTX mode. For compatibility with the Offline edition, master files can also be downloaded in .xlsx format.

  • PPTX Mode: Diagrams are generated as PowerPoint (.pptx) files, and device files are generated as Excel (.xlsx) files. This is the original output mode and produces the same files as the Offline edition.

  • All uploaded and generated files are automatically deleted from Network Sketcher Online after the session ends — no data is retained on the server.

  • Upload master files via drag-and-drop in a web browser

  • Generate L1/L2/L3 diagrams, device files, and AI context files with selectable outputs

  • In-browser preview for PowerPoint (.pptx) and Excel (.xlsx) files without requiring Office software

  • Copy AI context to clipboard and open LLM with one click

  • Describe desired changes in a prompt field; the AI context + prompt is copied together for LLM interaction

  • Update master files by pasting CLI commands from LLM output (Update Master)

  • Create new master files from scratch via the web UI

  • Parallel processing for faster diagram generation

  • Attribute-based device coloring for L1 and L3 diagrams

  • Session persistence across browser refreshes with automatic cleanup

  • HTTPS enforced with auto-generated self-signed certificates

  • All settings managed via ns_web_config.json

Limitations (Online)

  • Designed for use on internal networks only. Not intended for deployment on the public internet.
  • IPv4 only. IPv6 is not supported.
  • Excel (.xlsx) and PowerPoint (.pptx) files cannot be synced back to the master file. All editing is performed through CLI commands generated by an LLM.
  • In-browser preview for PowerPoint (.pptx) may not render correctly when the browser zoom or display scaling is set to a high value (e.g., 200%).

Requirement (Online)

  • Tested on Windows only. It may work on Mac OS and Linux, but these platforms have not been verified.
  • Other requirements are the same as Network Sketcher Offline.

Installation (Online)

git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher/network-sketcher_online
python3 -m pip install -r requirements_online.txt
cd ..
python3 start_ns_online.py

Open the URL shown at startup (default: https://localhost:5443) in your browser.

  • To serve on a specific network interface, edit the host and port settings in ns_web_config.json before starting the server.
  • If no SSL certificate exists, a self-signed certificate is auto-generated on first startup.
  • If you change the host IP address or other settings in ns_web_config.json, manually delete the SSL certificate files in the Certs/ folder and restart the server. A new certificate matching the updated settings will be auto-generated.
  • If the fqdn setting in ns_web_config.json is configured, the auto-generated SSL certificate's Common Name (CN) will use the specified FQDN.

User Guide (Online)

Click the ? icons on the web page to view contextual help for each section and feature. For features not covered in this User Guide, please refer to the User Guide (Offline).

NS_Online_User_Guide_301_en.mp4
NS_Online_User_Guide_301_jp.mp4

NS_Online_User_Guide_301_en.pdf

NS_Online_User_Guide_301_jp.pdf

Server Management Scripts

Script Description
python3 start_ns_online.py Start ns_web_start.py as a background process. Any already-running instance (including those started manually) is stopped first. Output is logged to logs/server.log.
python3 stop_ns_online.py Stop all running ns_web_start.py processes, including those started outside of this script.

Both scripts work on Windows, Mac OS, and Linux.

External Communication

Source Target Protocol
Client PC NS Online HTTPS
Client PC Configured LLM HTTPS

Third-Party Libraries (Online)

Network Sketcher Online includes the following third-party JavaScript libraries for in-browser file preview. These are bundled in network-sketcher_online/static/ and require no additional installation.

Library Version License Purpose
PptxViewJS 1.1.0 MIT PowerPoint (.pptx) in-browser preview
Chart.js 4.4.8 MIT Chart rendering (PptxViewJS dependency)
JSZip 3.10.1 MIT or GPLv3 ZIP / Office file parsing
SheetJS (xlsx) 1.15.0 Apache-2.0 Excel (.xlsx) in-browser preview

Performance Measurement Summary (Online)

Ver: 3.0.1 (SVG Mode) 64 NW devices
112 Connections
256 NW devices
480 Connections
1024 NW devices
1984 Connections
4096 NW devices
8064 Connections
Master file creation *1 4s 4s 26s 8m 12s
Creation of all configuration diagrams, device tables, and AI Context files 3s 7s 58s 15m 42s

*1 Reflect only L1 information in the no_data master file. Connect adjacent devices. Measure command execution time.
Test environment: Intel Core Ultra 7 (1.70 GHz), 32.0 GB RAM, Windows 11 Enterprise



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


Network Sketcher Offline

Overview

1-1.Overview.mp4

NoLang (no-lang.com) Otologic (https://otologic.jp) CC BY 4.0

Demo video of basic usage

demo_video_NS2.0_free2.mp4

AI(LLM) utilization demo video

Full_Version_link(Youtube)

Ver2_6_2_demo2.mp4

Concept

Network Sketcher generates network configuration diagrams in PowerPoint and manages configuration information in Excel. Additionally, exporting a AI ​​context can be used to generate config files using LLM.

  • Automatic generation of each configuration document by metadatization of network configuration information
  • Automated synchronization between documents
  • Minimize maintenance and training load by automatic generation of common formats
  • Facilitate automatic analysis, AI utilization, and inter-system collaboration by metadatization of configuration information.
  • Template support for equipment configuration image

image

New Features (Offline)

image
  • Ver 2.6.0

Network Sketcher Ver 2.6.0 now supports master file conversion from Visio, draw.io, NetBox, and CML data to Network Sketcher.

image Although Network Sketcher now supports multiple formats, it is not intended to replace the main drawing tool, but rather aims for mutually beneficial development.

Limitations (Offline)

  • IPv4 only. IPv6 is not supported.
  • A DEVICE file contains multiple sheets, but only one sheet should be updated at a time. Simultaneous synchronization of multiple sheet updates is not supported.
  • Do not use Network Sketcher on master files in your One Drive folder.
  • Deleting Layer 1 links using the GUI cannot identify individual interfaces and will delete more Layer 2 data than intended. Use the CLI command (delete l1_link) to delete Layer 1 links.

Requirement (Offline)

  • Network Sketcher supports cross-platform. Works with Windows, Mac OS, and Linux.
    • MAC OS may not display well in Dark mode.
  • Python ver 3.x
  • Software that can edit .pptx and .xlsx files
    • Microsoft Powerpoint and Excel are the best
    • Google Slides and Spreadsheets import/export functionality is available. Excel functions display will show an error, but it works fine.
    • Libre Office and Softmaker office cannot be used.

Installation (Offline)

git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher/network-sketcher_offline
python3 -m pip install -r requirements_offline.txt
python3 network_sketcher.py

or

#Download via browser
https://github.com/cisco-open/network-sketcher/archive/refs/heads/main.zip

#Unzip the ZIP file and execute the following in the prompt of the folder
cd network-sketcher_offline
python3 -m pip install -r requirements_offline.txt
python3 network_sketcher.py

Installation Supplement (Offline)

  • Alternative to "python -m pip install -r requirements_offline.txt"
python3 -m pip install tkinterdnd2
python3 -m pip install "openpyxl>=3.1.3,<=3.1.5"
python3 -m pip install python-pptx
python3 -m pip install ipaddress
python3 -m pip install numpy
python3 -m pip install pyyaml
python3 -m pip install ciscoconfparse
python3 -m pip install networkx
python3 -m pip install svg.path
  • Mac OS requires the following additional installation.
brew install tcl-tk
brew install tkdnd
  • Ubuntu requires the following additional installation.
    GUI drag and drop doesn't work on Ubuntu, you need to compile tkdnd from source or use "Browse" and "Submit".
sudo apt-get install python3-tk

User Guide (Offline)

Language Link
English Link
Japanese Link

How to create the exe file for Windows using pyinstaller

pyinstaller.exe [file path]/network-sketcher_offline/network_sketcher.py --onefile --collect-data tkinterdnd2 --additional-hooks-dir  [file path] --clean --add-data "./ns_extensions_cmd_list.txt;." --add-data "./ns_logo.png;."

Performance Measurement Summary (Offline)

Ver: 2.6.1b 64 NW devices
112 Connections
(~500 endpoints)
256 NW devices
480 Connections
(~3000 endpoints)
1024 NW devices
1984 Connections
(~10000 endpoints)
Master file creation *1 51s 2m45s 25m45s
Layer 1 diagram generation (All Areas with tags) 6s 29s 6m30s
Layer 2 diagram generation 13s 51s 6m53s
Layer 3 diagram generation (All Areas) 10s 56s 14m23s
Device file export 19s 1m4s 5m14s

*1 Reflect only L1 information in the no_data master file. Connect adjacent devices. Measure command execution time.
Test environment: Intel Core Ultra 7 (1.70 GHz), 32.0 GB RAM, Windows 11 Enterprise


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


Appendix

Feature Support Matrix

Feature Item Online Edition Offline Edition (GUI) Offline Edition (CLI)
Create master file from PowerPoint rough sketch
Convert master files from Visio, Draw.io, NetBox, CML
Area placement ✅ (user-specified) ✅ (automatic) ✅ (user-specified)
Create / delete / modify areas
Place / create / delete / modify devices
Place / create / delete / modify waypoints
Add Layer 1 connections
Delete Layer 1 connections ⚠️ (port cannot be specified)
Change Layer 1 port names
Change Layer 1 connection details (e.g., duplex)
Change Layer 2 segments (VLAN)
Add / delete virtual ports (SVI, loopback, port-channel)
Change IP addresses / Layer 3 instances (VRF)
Change attributes
Add / delete VPNs
Flow management
Export various reports
Export empty master files (no data)
Export AI context files
Export device files
Generate L1/L2/L3 topology diagrams

SAMPLE

- Supports various connections

image

Download : Sample.figure5.zip

- Wi-Fi office

Created by using AI context and giving AI (LLM) multiple command generation instructions. image

Download : Sample Office.zip


Otologic (https://otologic.jp) CC BY 4.0

Author

  • Yusuke Ogawa - Architect, Cisco | CCIE#17583

License

SPDX-License-Identifier: Apache-2.0

Copyright 2023 Cisco Systems, Inc. and its affiliates

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

Network Sketcher generates network configuration diagrams in PowerPoint and manages configuration information in Excel. With AI (LLM) integration, it supports network design creation and updates via desktop GUI/CLI (Offline) or web browser (Online).

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages