Releases: cisco-open/network-sketcher
Release list
V3.1.2n
Release date
- Ver 3.1.2 -- 2026/5/14
- Ver 3.1.2a -- 2026/5/19
- Online (SVG mode): per-area thumbnails are now generated on demand from a new area dropdown, with per-(attribute, area) cache for instant re-display.
- Online: new Device Tables HTML download with six tabs — L1 / L2 / L3 / Attribute / IP Address_Summary / IP Address_List (.nsm-only path).
- Local MCP: new
export_device_table_htmltool;export_diagramgains an optionalareaargument (L1 / L3 require svg, L2 supports area for both formats). - CLI (
nsm_cli.py): new--areaoption forexport l1_diagram/export l3_diagram(svg only,per_area/per_area_tag).
- Ver 3.1.2b -- 2026/5/20
- AI Context (Online + Offline): added new RULE 11.5 — Endpoint device IP assignment clarifying that physical endpoints (servers / PCs / IoT / storage / hypervisor hosts) bind IPs directly to the L1 physical port (no SVI). Wireless APs remain the only endpoint-class device that uses an SVI.
- Cross-references to RULE 11.5 added from RULE 11 / RULE 12 / RULE 15 so the new guidance is reachable from any related context.
- Ver 3.1.2c -- 2026/5/26
- Online (SVG mode): L2 All-Areas (overall) topology diagram is now natively supported — single-click renders every area at once, generated in parallel with the L1 / L3 All-Areas diagrams. The legacy threshold-based "Generate" button has been removed and L2 All-Areas is always produced alongside L1 / L3.
- Online (SVG mode): combined L1/L2/L3 HTML viewer — clicking a thumbnail now opens a tabbed page with L1 Diagram / L2 Diagram / L3 Diagram tabs, each with mouse-wheel zoom and click-and-drag pan.
- Online:
Download Generated (ZIP)now bundles per-layer L1 / L2 / L3 SVG files alongside the combined[L1L2L3_DIAGRAM]*.htmlviewer (lightweight, area-scoped, and legacy modes). - Online: Placement tab — per-area sub-table title
(area) Positionrenamed to(area) Position(L1,L2)to indicate the placement applies to both L1 and L2 diagrams. - Online: toolbar download button label
↓ svg(L1,L2,L3)renamed to↓ html(L1,L2,L3)(matches the actual artifact format). - CLI (
nsm_cli.py): newexport combined_diagramsubcommand — reuses on-disk per-layer SVGs and regenerates only what is missing. - Local MCP:
build_default_outputsupgraded from 5 to 6 artifacts;combined_diagramnow also produces[L1L2L3_DIAGRAM]AllAreas_*.html(tabbed viewer) in addition to the three per-layer SVGs, Device Table HTML, and AI Context. - README: Feature Support Matrix consolidated (21 rows → 15) by merging area / device / waypoint, Layer 1 connection, and Layer 2 / virtual-port rows that share the same support across all four editions.
- Ver 3.1.2d -- 2026/5/26
- Bug fix (Online + Offline + Local MCP):
delete device/delete waypoint/delete areano longer leaves orphan rows in the L2 / L3 tables. The layer sync now builds a valid(Area, Device Name)set fromPOSITION_SHAPEand filters the merge so that entries pointing to deleted devices are dropped. Fixes the blank L3 diagram that could appear after multi-device deletion. - Defensive guard (Online + Offline + Local MCP):
get_l2_broadcast_domains.runnow skips entries whenget_opposite_if()returnsNoneor a short tuple, preventing aTypeErroron orphaned / manually-edited masters. - Performance (Online + Offline + Local MCP):
add area_location/update_area_with_mapskip the L2 / L3 sync when no new areas are added (pure relocation), saving roughly 100-500 ms per call.
- Bug fix (Online + Offline + Local MCP):
- Ver 3.1.2e -- 2026/5/26
- L3 layout (Online + Offline + Local MCP): the All Areas L3 topology diagram now compacts segments via interval-graph lane packing -- two L3 segments whose X ranges do not overlap now share the same row instead of stacking. Lower device rows, the area frame, and the outer outline shrink accordingly. On a representative master the outline height dropped roughly 0.75 inches (lane count 6 -> 4).
- Ver 3.1.2f -- 2026/5/27
- Bug fix (Online + Offline + Local MCP): the All Areas L3 topology diagram now detects residual same-Y segment overlaps that can remain after the lane packing + device shift passes, and automatically re-renders with corrected row assignments (up to 5 retries). Resolves the segment crossings that could still appear on dense masters in 3.1.2e.
- Bug fix (Online + Local MCP, SVG only): the All Areas L3 SVG could render only a single waypoint shape on masters that triggered the new overlap-retry pass. The SVG path now correctly uses the mock Presentation during the retry pass and truncates captured shapes back to the pre-retry baseline before re-rendering, restoring the full diagram.
- Ver 3.1.2g -- 2026/5/27
- L3 layout (Online + Offline + Local MCP): in the All Areas L3 topology diagram, WayPoints in
_wp_-only Area Position rows are now horizontally snapped to their leftmost connected device (center-aligned) instead of being placed at the row's natural left cascade. The snap automatically falls back to the natural position when it would overflow the diagram width. - Bug fix (Online + Offline + Local MCP): the new WayPoint X-snap performs a line-over-device safety check so it cannot re-introduce a previously resolved L3 connector crossing (observed on Sample.figure51 where the WAN-1 line could end up on top of WAN-1R
1after snap). - L3 layout (Online + Offline + Local MCP): widened the visual gap between L3 segment connectors and device edges (
BUFFER0.10" -> 0.20") for better legibility when devices are shifted to avoid line crossings.
- L3 layout (Online + Offline + Local MCP): in the All Areas L3 topology diagram, WayPoints in
- Ver 3.1.2h -- 2026/5/29
- Online: new Command Reference viewer in the CLI Commands box -- a searchable side drawer (Quoting / Show / Add / Delete / Rename) with per-command syntax, description, and one-click Insert (into the command box) / Copy. Commands that the Run action skips (e.g.
export) are excluded from the list. - Online: new Copy Log button next to "View Log" copies the full run log (command + output per line) to the clipboard.
- Bug fix (Online): the Run results now correctly mark a command as failed (red) when the engine reports failure via
[Error]/Error:/ a non-zero exit / known rejection messages. Previously several real failures (e.g.add devicewith a missing direction) were shown as success (green). - Online: restored right-click "Copy text" on device / area / port labels in the combined L1/L2/L3 SVG viewer (this was lost when the tabbed viewer replaced the single-SVG preview).
- Online: Update Master panel layout tidy-up -- the LLM Prompt box is shown above CLI Commands and the vertical padding was reduced.
- Bug fix (Online + Offline + Local MCP): the L1 All Areas diagram folder sizing now matches the Per-Area diagram. A stale-append bug in the folder-width calculation (and an All-Area vs Per-Area root-width mismatch) had made some areas render up to ~2x wider in All Areas than in Per-Area.
- Bug fix (Online + Local MCP): the L2 All Areas diagram no longer lets devices (e.g.
Br0X-Edge-RT/Access-SW) overflow past their area frame -- the up-direction virtual-port offset was being double-counted in the device-width calculation. - Online:
help_msg.jsonhelp tooltips reconciled with current features (master upload accepts.xlsxand.nsm; removed stale entries that no longer have a UI).
- Online: new Command Reference viewer in the CLI Commands box -- a searchable side drawer (Quoting / Show / Add / Delete / Rename) with per-command syntax, description, and one-click Insert (into the command box) / Copy. Commands that the Run action skips (e.g.
- Ver 3.1.2i -- 2026/6/5
- Fixed an issue in the Online edition's Layer 2 overall configuration diagram where devices could sometimes extend beyond the area boundaries.
- Ver 3.1.2j -- 2026/6/8
- Added a configurable rendering quality level (2 or 3, default 3) for the Layer 3 overall configuration diagram in the Online and Local MCP editions, set via
l3_render_qualityinns_web_config.json. Level 2 skips the device-shift / line-avoidance pass for faster rendering. - Fixed errors in the Append Flows and Device Flow table features (both Online and Offline editions) that could occur with master files generated by sna_to_nsm when the flow data omitted optional routing-path columns.
- Added a configurable rendering quality level (2 or 3, default 3) for the Layer 3 overall configuration diagram in the Online and Local MCP editions, set via
- Ver 3.1.2k -- 2026/6/8
- Bug fix (Online + Offline + Local MCP): Areas overlapped in the Layer 3 overall diagram.
- Ver 3.1.2l -- 2026/6/9
- Improved the rendering of the L3 overall configuration diagram.
- Speed up the execution of large numbers of commands in Local MCP.
- Ver 3.1.2m -- 2026/6/10
- Improved the rendering of the L3 overall configuration diagram.
- Ver 3.1.2n -- 2026/7/11
- Bug fix (Online): clicking a diagram preview after running CLI commands showed the diagram from before the commands. The preview, the combined L1/L2/L3 HTML, and the ZIP bundle now resolve the per-layer SVGs against the current master version instead of the oldest one left in the working directory.
- Bug fix (Online): re-uploading a downloaded versioned master (e.g.
[MASTER]<name>_1.nsm) silently rejected every command, because the new version collided with the source filename. Version numbering now advances until a free name is available, and a master name ending in digits (e.g.[MASTER]DC_2024.nsm) keeps its suffix. - Bug fix (Online): a run rejected before execution reported
0 command(s) failed.with no reason shown, and session restore offered the previous master version on the download button. - Bug fix (Online + Offline + Local MCP): corrected the typo
Defalut->Defaultwhen reading the L3 instance attribute in the L3 diagram generator, so VRF instance labels render correctly. Thanks to @fdmazzini (#62).
What's New in Ver 3.1.2
This is a maintenance and feature release focused on the Online edition's draw.io stencil export pipeline and a parser-level fix that affects all three editions.
<img width="1603" height="893" alt="image" src="https://github.com/user-attachments/assets/e78203d2-24dc-48b7-962d-31140e...
V3.1.0a
Release date
- Ver 3.1.0a -- 2026/4/29
What's New in Ver 3.1.0a
5min Demo video of the Local MCP edition.
The AI agent Cursor autonomously creates a network using Network Sketcher's Local MCP functionality. It also simultaneously references best practices from other MCPs.
NS_310_view_2.mp4
Network Sketcher Local MCP (New)
A new third edition, Network Sketcher Local MCP, has been added.
AI-native edition: Network Sketcher Local MCP exposes the engine as a Model Context Protocol (MCP) server, enabling LLM clients such as Cursor and Claude Code to drive network design directly. This is the most direct AI integration of the three editions — no browser, no copy-paste.
- The LLM calls
add device ...and similar commands as Tool invocations (no copy-paste) - Reuses
network-sketcher_online/ns_engine/as a library (no code duplication; no changes to the existing_online/_offlinefolders) stdiotransport (designed for local operation).nsm-exclusive operation for performance (legacy.xlsxmasters can be imported on first use)- Dynamic workspace management: the AI agent calls
suggest_workspace()to discover OS-appropriate candidate directories, proposes one to the user, andset_workspace(path)activates it - Layout rules baked into the server instructions and AI Context (RULE 0 / 0.5 layout, RULE 3.5 multi-transport WAN waypoint design)
- External MCP server cooperation policy — when other MCP servers (documentation/RAG, topology, ticket trackers, etc.) are registered alongside Local MCP, the Local MCP server instructions mandate the AI to consult them before issuing Network Sketcher mutations
Recommended LLM
- Claude Opus 4.7 or later. The Local MCP edition relies heavily on multi-step tool calling, schema interpretation, and adherence to the layout / workflow rules embedded in the server instructions and AI Context. Weaker or older models may struggle with these workflows.
Connection Examples
Cursor and Claude Code use different configuration mechanisms, so the setup steps are split below. Pick the one that matches your client.
For Cursor
Add the following to the MCP configuration file (mcp.json):
{
"mcpServers": {
"network-sketcher": {
"command": "python",
"args": ["<absolute-path>/network-sketcher_local_mcp/ns_mcp_server.py"]
}
}
}For Claude Code
Register the MCP server with the claude CLI. The -- (double dash) separator is required so that the script path is passed to python rather than parsed as a flag of claude mcp add:
# Local scope (default; current project only, stored in ~/.claude.json)
claude mcp add network-sketcher -- python "<absolute-path>/network-sketcher_local_mcp/ns_mcp_server.py"
# User scope (available across all your projects)
claude mcp add --scope user network-sketcher -- python "<absolute-path>/network-sketcher_local_mcp/ns_mcp_server.py"
# Project scope (shared with team via .mcp.json in project root)
claude mcp add --scope project network-sketcher -- python "<absolute-path>/network-sketcher_local_mcp/ns_mcp_server.py"See the Claude Code MCP installation scopes documentation for details on each scope and when to use which.
Diagram Generation Bug Fixes
- L3 diagram — Port-channel interface not rendered: Fixed a long-standing bug where Port-channel L3 interfaces between devices with different port types (e.g.,
TenGigabitEthernettoGigabitEthernet) were not registered as a broadcast group, so the resulting L3 diagram was missing those Po interfaces. Also fixed a related design flaw that could over-mergePort-channel 1instances belonging to different device pairs (ns_def.py/nsm_def.py) - L1 SVG diagram — DC areas rendered too narrow: Fixed
compute_folder_grid()so that header-row F values (column-width directives) are correctly parsed as initial column widths. SVG output now matches PPTX output (nsm_svg_compute.pyandnsm_ddx_svg.py/nsm_ddx_svg_l2.py) - L2 PPTX diagram — content missing (only outer frame drawn): Fixed
nsm_l1_diagram_create.pyandnsm_l2_diagram_create.pywhere a recently-added 3-line block unconditionally preserved<<POSITION_FOLDER>>and broke row compression, so generated PPTX showed only the outer frame and the title was incorrectly rendered as[L1] All Areasfor L2/L3 outputs
AI Context Improvements (Online + Offline + Local MCP)
- New Quoting Rules preamble at the top of every AI Context — clarifies that all string arguments containing spaces must be wrapped in quotes (e.g.,
'GigabitEthernet 0/0') add area_locationnow rejects_AIR_with an explicit error message;_AIR_is a spacer placeholder foradd device_locationonly- Waypoints are renamed via
rename device(clarified in the documentation; no separaterename waypointcommand exists) - RULE 3.5 — Multi-transport WAN waypoint design expanded with a complete worked example for shared physical paths and per-transport (Internet / MPLS / Direct Connect) virtualisation
- The Sample-data AI Context (
Sample_data/No_data_Master_file_with_AI_Context/[AI_Context]no_data.txt) is now regenerated against the latestns_extensions_cmd_list.txt
Documentation
- The root
README.mdnow displays Network Sketcher Local MCP prominently at the top as the AI-native flagship edition, followed by Online and Offline - Three-edition comparison tables (Local MCP / Online / Offline) added across "What is Network Sketcher", Feature Support Matrix, and Installation sections
- Repository directory layout diagram updated to include
network-sketcher_local_mcp/
Read me
>> Read me (GitHub)
Installation
Local MCP
git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher/network-sketcher_local_mcp
python -m pip install -r requirements_mcp.txtThen register Network Sketcher in your MCP host (Cursor / Claude Code / etc.) using the JSON snippet above (or the claude mcp add CLI for Claude Code). The server is launched by the host on demand and waits on stdio.
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.pyOpen the URL shown at startup (default: https://localhost:5443) in your browser.
- To serve on a specific network interface, edit
hostandportinns_web_config.jsonbefore starting the server. - If no SSL certificate exists, a self-signed certificate is auto-generated on first startup.
- If you change the host IP / FQDN, manually delete the certificate files in
Certs/and restart the server.
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.pyLimitations
Local MCP
- Single-user edition designed to run on a local PC.
- Only
stdiotransport is supported (HTTP / SSE not supported). - Diagram generation for large networks may take some time.
- LLM clients cannot directly view binary output (PPTX / SVG); if visual feedback is needed, the user should open the generated SVG directly.
- Verification status: End-to-end verified in Cursor (the primary tested host). Claude Code support follows the published MCP specification but is design-validated only at this release; please report any issues you encounter.
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.
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.
Feature Support Matrix
| Feature Item | Local MCP (LLM-driven CLI) | 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) | ✅ (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 | ✅ | ✅ | ✅ | |
| 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 | ... |
V3.0.1h
Ver 3.0.1h
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
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
Release date
- Ver 3.0.1 -- 2026/4/8
- Ver 3.0.1a -- 2026/4/8 - Fixed a bug in SVG mode where creating the second and subsequent Per Area images would fail.
- Ver 3.0.1b -- 2026/4/9 - Fixed incorrect
rename attribute_bulkcommand documentation (examples had an erroneous leading'before[[causing parse errors); improved LLM quoting guidance for all bulk commands in both Online and Offline editions. - Ver 3.0.1c -- 2026/4/14 - Removed residual debug logging code from nsm_l3_svg_create.py that was writing an unexpected debug-c67278.log file to the project root.
- Ver 3.0.1d -- 2026/4/15 - Fixed multiple rendering issues in L2/L3 PPTX and SVG modes; fixed SVG thumbnail click-to-display issue where clicking a thumbnail immediately after it appeared did not show the image in the SVG viewer tab (race condition between browser image cache and onload handler).
- Ver 3.0.1e -- 2026/4/22 - Added CLI command shorthands for LLM token efficiency:
[]accepted as shorthand for[255, 255, 255](white) inrename attribute_bulk;''accepted as shorthand for'_AIR_'inadd device_location; trailing empty attributes inrename attribute_bulkcan be omitted and are auto-filled. Fixedshow area_locationdocumentation to match actual output (blank spacing is auto-managed and not shown). - Ver 3.0.1f -- 2026/4/22 - Added SVG diagram text right-click copy (inline SVG rendering with context menu and clipboard); fixed XLSX multiple download bug (event listener accumulation); fixed XLSX Master_Data section order; XLSX download now includes version suffix (e.g., _1.xlsx) consistent with .nsm naming.
- Ver 3.0.1g -- 2026/4/23 - Added
_ALL_wildcard and multi-device list support forrename port_info_bulk(applies settings to all ports of a device, or multiple devices at once); fixed L3 AllAreas SVG thumbnail blank issue when using "Create New Master File" followed by CLI commands. - Ver 3.0.1h -- 2026/4/23 - Added port name list support for
add l2_segment_bulkandrename port_info_bulk(specify a list of port names as entry[1] to apply the same Speed/Duplex/Port_Type to multiple ports at once, reducing LLM token usage); addedrename attribute_bulkparser hardening to tolerate extra trailing quotes in LLM-generated commands.
What's New in Ver 3.0.1
SVG Mode (New)
A new SVG Mode has been added to Network Sketcher Online as the default output mode.
- All diagrams (L1/L2/L3, All Areas and Per Area) are generated in parallel and displayed as thumbnails in the browser — no need to download individual files
- Approximately 30x faster than the existing PPTX mode
- Master files are stored internally in the high-performance
.nsmformat (ZIP + Parquet), which significantly reduces I/O overhead for large configurations - For compatibility with the Offline edition, master files can also be downloaded in
.xlsxformat - PPTX mode remains available as an alternative output mode
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
UI Improvements (Online)
- Download Generated (ZIP) button is now visible from the moment a master file is uploaded in SVG mode; grayed out during generation and re-enabled upon completion
- CLI command execution results are now collapsed by default; expandable via "Show results" link
- Master File download options now correctly show
.xlsx/.nsmselectors after CLI command execution - Fixed: AI Context File "Generating..." spinner not clearing after "Create New Master File" in SVG mode
Security Improvements (Online)
- Fixed path traversal vulnerability in the file upload handler (
os.path.basename()now applied) - Replaced
eval()withast.literal_eval()to prevent code injection from malicious master files - Removed excessive debug
print()statements that could expose internal paths in server logs
Other Improvements (Online)
- CLI command parsing now correctly handles
python3(in addition topythonandpython.exe) on Mac OS and Linux - Server Management Scripts (
start_ns_online.py,stop_ns_online.py) descriptions updated for accuracy
What's New in Ver 3.0.0
Network Sketcher Online
Network Sketcher Online — a browser-based web service edition has been added.
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.
- 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
- Multi-user support — multiple users can access simultaneously via browser
- Session persistence across browser refreshes with automatic cleanup
- All uploaded and generated files are automatically deleted after the session ends — no data is retained on the server
- HTTPS enforced with auto-generated self-signed certificates
- All settings managed via
ns_web_config.json
Project Structure Change
Since Ver 3.0.0, Network Sketcher provides two editions:
- Network Sketcher Online — Browser-based web service (new in Ver 3.0.0)
- Network Sketcher Offline — Desktop GUI + CLI (same as Network Sketcher Ver 2.6.3a). Runs independently with the
network-sketcher_offline/folder alone.
network-sketcher/
├── network-sketcher_online/ # Online edition — Web service (browser-based)
├── network-sketcher_offline/ # Offline edition — GUI + CLI (standalone desktop app)
├── README.md
├── LICENSE
└── ...
Comparison: Online vs. Offline
| 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/ |
External Communication
| Source | Target | Protocol |
|---|---|---|
| Client PC | NS Online | HTTPS |
| Client PC | Configured LLM | HTTPS |
Read me
>> Read me (GitHub)
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.pyOpen the URL shown at startup (default: https://localhost:5443) in your browser.
- To serve on a specific network interface, edit the
hostandportsettings inns_web_config.jsonbefore 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 theCerts/folder and restart the server. A new certificate matching the updated settings will be auto-generated. - If the
fqdnsetting inns_web_config.jsonis configured, the auto-generated SSL certificate's Commo...
V2.6.2j
- Video
Full_Version_link(Youtube)
Ver2_6_2_demo2.mp4
- Files
For more detailed information, please refer to the PDF file below.
[English]
Network Sketcher ver2_6_2_en.pdf
[Japanese]
Network Sketcher ver2_6_2_jp.pdf
Release date
- Ver 2.6.2 -- 2026/1/21
- Ver 2.6.2a -- 2026/1/22 -- Modified "add portchannel_bulk" command.
- Ver 2.6.2b -- 2026/1/22 -- Modified "add l1_link_bulk" , "add device_location" command.
- Ver 2.6.2c -- 2026/1/26 -- Improved the drawing quality of Layer 2 configuration diagram.
- Ver 2.6.2d -- 2026/1/27 -- Improved the drawing quality of Layer 3 configuration diagram.
- Ver 2.6.2e -- 2026/1/27 -- Improved CLI Window display position.
- Ver 2.6.2f -- 2026/1/28 -- Improved the drawing quality of [DEVICE] file.
- Ver 2.6.2g -- 2026/1/28 -- added "rename port_info_bulk" command. AI_context_file updates to Beta7.
- Ver 2.6.2h -- 2026/1/29 -- Improved the drawing quality of attribute sheet in [DEVICE] file. A small addition to the AI context file.
- Ver 2.6.2i -- 2026/1/29 -- Fixed special characters failing to print when executing commands.
- Ver 2.6.2j -- 2026/1/29 -- Fixed a bug where IP addresses were deleted when executing vport and l2_segment commands.
New Features
- The GUI for command input was added so that the user did not need to enter the file path, so the number of commands was significantly reduced.
- 5 commands added
- Update AI Context to Beta 6
Performance Measurement Summary
GUI vs. CLI Feature Support Matrix
| Feature Item | GUI | CLI (AI Context) |
|---|---|---|
| Create master file from PowerPoint rough sketch | ✅ | ❌ |
| Convert master files from Visio, Draw.io, NetBox, CML | ✅ | ❌ |
| Area placement | ✅ (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 | ✅ | |
| 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 | ✅ | ❌ |
Read me
User Guide
| Language | Link |
|---|---|
| English | Link |
| Japanese | Link |
Compatibility
- 2.x -> 2.6.2
- In order to use the commands added in Ver 2.6.2 with master files created before Ver 2.6.0, you must first edit “3-1. Add/delete areas, devices, and wirings". Essentially, this is a procedure to reflect the changes, but by synchronizing the exported Layer 1 PerArea configuration diagram with the master file without changing it, the master file will be updated to the version 2.6.2 specifications. The commands added in Ver 2.6.2 are needed to execute the commands on the general-purpose AI (LLM).
V2.6.1e
- Video
[English]
Network.Sketcher.ver2_6_1_en.mp4
[Japanese]
Network.Sketcher.ver2_6_1_jp.mp4
NoLang (no-lang.com) Otologic (https://otologic.jp/) CC BY 4.0
- Files
[English]
Network Sketcher ver2_6_1_jp.pdf
[Japanese]
Network Sketcher ver2_6_1_en.pdf
Release date
- Ver 2.6.1 -- 2025/12/11
- Ver 2.6.1a -- 2025/12/11 -- Fixed the parameters of the drawing logic of the L1L2 configuration diagram.
- Ver 2.6.1b -- 2025/12/23
- Speeding up configuration diagram generation
- Correction of L3 configuration diagram errors
- Changed the creation of L3 configuration diagram to one pattern
- tkinterdnd2-universal is no longer required. For MAC OS, please install tkdnd additionally.
- Update AI Context to Beta 5
- Ver 2.6.1c -- 2025/12/24 -- Fixed segment creation logic rollback
- Ver 2.6.1d -- 2025/12/25
- Layer 3 diagram improvements
- Fixed an issue where some attribute information of Layer 2 interfaces was lost when changing the device layout from the GUI.
- Update AI Context to Beta 5a
- Ver 2.6.1e -- 2025/12/26 -- Fixed a bug where adding or deleting an L2 segment using CLI commands would not synchronize with the Layer 3 interface.
New Features
- Added the ability to create network configurations from scratch using LLM
- 14 commands added
- Update AI Context to Beta 4
- Improved the drawing logic of L1L2 configuration diagram.
Performance Measurement Summary
| 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
GUI vs. CLI Feature Support Matrix
| Feature Item | GUI | CLI (AI Context) |
|---|---|---|
| Create master file from PowerPoint rough sketch | ✅ | ❌ |
| Convert master files from Visio, Draw.io, NetBox, CML | ✅ | ❌ |
| Area placement | ✅ (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 | ✅ | |
| 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 | ✅ | ❌ |
Read me
User Guide
| Language | Link |
|---|---|
| English | Link |
| Japanese | Link |
Compatibility
- 2.x -> 2.6.1
- In order to use the commands added in Ver 2.6.1 with master files created before Ver 2.6.0, you must first edit “3-1. Add/delete areas, devices, and wirings". Essentially, this is a procedure to reflect the changes, but by synchronizing the exported Layer 1 PerArea configuration diagram with the master file without changing it, the master file will be updated to the version 2.6.1 specifications. The commands added in Ver 2.6.1 are needed to execute the commands on the general-purpose AI (LLM).
- Ver2.6.1, but there is a possibility that changing data will result in an error, so it is recommended to use version 2.6.1 or later.
- Areas and waypoints can now be freely placed with the "add area_location" command of the CLI. Meanwhile, you can create a master file from rough sketches using the GUI, as described in 3-1. when you add or delete areas, devices, and connections, the layout of areas and waypoints is automated. Therefore, if you want to maintain the locations of the areas and waypoints specified in the CLI's "add area_location", refer to "3-1. Use the CLI instead of "Add/delete Areas, Devices, and Connections".
V2.6.0f
- Video
Convert.data.from.other.systems.into.master.files_jp.mp4
Convert.data.from.other.systems.into.master.files_en.mp4
- Files
Convert data from other systems into master files_jp.pdf
Convert data from other systems into master files_en.pdf
- Release date
- Ver 2.6.0 -- 2025/11/6
- Ver 2.6.0a -- 2025/11/7 Added documents
- Ver 2.6.0b -- 2025/11/8 Bug fixed #54 - File path concatenation error causes 'No such file or directory'
- Ver 2.6.0c -- 2025/11/9 Fixed a bug that caused an error when starting Network Sketcher on Ubuntu. The idlelib module, which was only used during debugging, has been removed from the code. Thank you very much for providing the problem.(https://zenn.dev/tanns_169/articles/e79f9a5bdf8715)
- Ver 2.6.0d -- 2025/11/7 Fixed a bug where some objects were not converted when converting SVG exported from drawio to a master file.
- Ver 2.6.0e -- 2025/11/17 When creating a master file from a NetBox CSV file, a process has been added to recognize disconnected groups, improving the display quality of the configuration diagram.
- Ver 2.6.0f -- 2025/11/18
1. We have fixed the issue where unnecessary lines were included and the position was shifted when generating a master file from an SVG file exported from drawio.
2. File name changed. network_sketcher_dev.py -> ns_dev.py, network_sketcher_cli.py -> ns_cli.py
New Features
Add below topic
1-5. Examples of general-purpose AI (LLM) usage (config creation, config reflection, analysis, etc.)
A-1. How to convert PPT diagrams to other formats(Visio, draw.io and Excel)
Read me
User Guide
| Language | Link |
|---|---|
| English | Link |
| Japanese | Link |
Compatibility
- 2.x -> 2.6.x
- Master files of Ver2.x can be used with Ver2.6.0 and later
- Flow information is automatically added to the master file when the flow file is reflected in the master file.
V2.5.5
Network Sketcher AI Guide_Beta3_JP.pdf
Network.Sketcher.AI.Guide_Beta3_JP.mp4
Network Sketcher AI Guide_Beta3_EN.pdf
Network.Sketcher.AI.Guide_Beta3_EN.mp4
- Release date
- Ver 2.5.5 -- 2025/10/23
New Features
- Export AI Context (Beta 3)
Support for generating commands to change data in master files has been added.
Supports sub- interfaces
Supports VRF (Virtual Router)
Automatically input the file path to the creation command
Changes to attributes, VPNs, and flows are not supported. Changing the wiring or adding or removing devices is not supported. Network Sketcher itself does not provide AI functionality, but rather utilizes general-purpose LLMs such as Chat GPT and Gemini. Always make a backup of the master file before executing a command that changes the master file.
- Add the following CLI Add/Delete/rename commands:
add vport_l1if_direct_bound
add vport_l2_direct_bound
delete vport_l1if_direct_bound
delete vport_l2_direct_bound
rename area
rename l3_instance
- Other bug fixes
Corrected the phenomenon that the interface position on the Layer 2 configuration diagram is shifted
Read me
User Guide
| Language | Link |
|---|---|
| English | Link |
| Japanese | Link |
Compatibility
- 2.x -> 2.5.5
- Master files of Ver2.x can be used with Ver2.5.0 and later
- Flow information is automatically added to the master file when the flow file is reflected in the master file.
Others
V2.5.4a
jp_70506fbc-1598-4950-8660-9dbb96bc10a0.mp4
en_8c67aca1-723b-46c6-9a40-1a349c17b920.mp4
NoLang (no-lang.com)
Otologic (https://otologic.jp/) CC BY 4.0
Network Sketcher AI Guide_JP.pdf
Network Sketcher AI Guide_EN.pdf
- Release date
- Ver 2.5.4 -- 2025/10/9
- Ver 2.5.4a -- 2025/10/16 - Fixed a bug in the exe file created by pyinstaller.
New Features
-
Export AI Context (Beta 2)
Support for generating commands to change data in master files has been added. Changes to areas, L3 instances, VPNs, and flows are not supported. Network Sketcher itself does not provide AI functionality, but rather utilizes general-purpose LLMs such as Chat GPT and Gemini. Always make a backup of the master file before executing a command that changes the master file. -
Add the following CLI Add/Delete/rename commands:
add portchannel
delete portchannel
rename device
rename port
Read me
User Guide
| Language | Link |
|---|---|
| English | Link |
| Japanese | Link |
Compatibility
- 2.x -> 2.5.4
- Master files of Ver2.x can be used with Ver2.5.0 and later
- Flow information is automatically added to the master file when the flow file is reflected in the master file.
Others
V2.5.3a
f5b9c3b9-1c70-4597-aa35-bd2a5ae23fcb.mp4
NoLang (no-lang.com)
Otologic (https://otologic.jp/) CC BY 4.0
- Release date
- Ver 2.5.3a -- 2025/9/16 -- Bug fixed [ns-bug-022]
- Ver 2.5.3 -- 2025/9/11
New Features
Add the following CLI Add/Delete commands:
add ip_address
add l2_segment
add virtual_port
delete ip_address
delete l2_segment
delete virtual_port
Read me
User Guide
| Language | Link |
|---|---|
| English | Link |
| Japanese | Link |
Compatibility
- 2.x -> 2.5.3
- Master files of Ver2.x can be used with Ver2.5.0 and later
- Flow information is automatically added to the master file when the flow file is reflected in the master file.
Others
V2.5.2
0bec057e-c5e7-4c09-8663-bad312ab58df.mp4
NoLang (no-lang.com)
Otologic (https://otologic.jp) CC BY 4.0
- Release date
- Ver 2.5.2 -- 2025/6/9
New Features
Read me
User Guide
| Language | Link |
|---|---|
| English | Link |
| Japanese | Link |
Compatibility
- 2.x -> 2.5.2
- Master files of Ver2.x can be used with Ver2.5.0 and later
- Flow information is automatically added to the master file when the flow file is reflected in the master file.

