Codync
免费开源的 1:1 Grok Bot 与 Muse 替代方案。可在 iPhone、Mac 或 Linux 桌面上将 Claude 代码、Codex、Cursor 以及 40 多个编码代理作为持久机器人使用。支持群组聊天、线程、应用。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Port Network Studio — browser-based, offline-capable network diagram studio: Visio-style editing, 350+ shapes + 200k online icons, auto-routing, shape data, IP/VLAN planning, CCTV/PoE/SPOF analysis, Visio & draw.io export
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A browser-based, offline-capable network diagram studio — Visio-style editing with the network data and analysis built in.
Live app: https://zephyrsai.github.io/network-studio/ · Offline single file: dist/port-network-studio.html
Port Network Studio grew out of Port — Network Architecture Studio v2, a single-file HTML tool for drawing layered network architectures with precise, manually controlled connector paths. v3 keeps that model (pages → devices, connection points, zones, manual right-angle paths, line jumps, print-ready sheets — and it opens v1/v2 drawings unchanged) and turns it into a full network-diagramming application.
No installation, no account, no server: everything runs in the browser, and drawings never leave the machine unless you export or share them.
| Area | What you get |
|---|---|
| Shapes | 350+ built-in: 106 original vendor-neutral network/IT/OT/CCTV icons, 217 extended icons (Carbon, Tabler, Material Design), 17 rack-mount faceplates, racks, 14 parametric basic shapes. Four display styles: symbol, card, tile, circle. |
| More shapes | Icons tab searches 200,000+ open-source icons online (Iconify: Carbon, Material, Fluent, Phosphor, Tabler, SVG Logos, Simple Icons…). Import shapes takes SVG files/folders, vendor icon ZIPs (Cisco, AWS, Azure, GCP, Fortinet, Hikvision… — use the packs you are licensed for), draw.io libraries, PNG/JPG, and .portpack.json. Imported SVGs are sanitised; single-colour icons become recolourable. |
| Connectors | Visio-style dynamic connectors that auto-route around devices and labels and re-route as you move things; links fan out cleanly from switches; manual right-angle / free / straight / curved paths with draggable sections and bends; line jumps (arc/gap); start/end markers; link types (1G, 10G, 40/100G, stack/LAG, WAN/MPLS, Internet, VPN, wireless, HA, management, serial, fieldbus, power, logical) with interface names at each end. Drag from a point or the quick-connect arrows, click an arrow to add a connected copy, drop a device onto a link to insert it inline. |
| Containers | Network zones (plain / header / tab / outline) that carry their members, with subnet, VLAN, gateway and security level. Racks with U numbering; rack equipment snaps into U slots, vertical 0U PDUs into the side panels and a fan tray onto the roof. |
| Shape data | Hostname, IP, management IP, VLAN, model, vendor, serial, OS, location, status, owner, power, PoE budget/draw, stream bitrate, retention, storage, unit price, notes + custom fields. Data graphics: colour devices by status / VLAN / category / any field, show fields under names, {{field}} text, status marks (planned = dashed, to remove = ✕). |
| Network tools | IP plan with subnet maths and next-free-IP, auto-assign IPs to a zone, VLAN registry, auto-numbering (SW-{n:02}), bulk data edit, generate interface points (Gi1/0/1…48). |
| Analysis | Design check in a side panel, by category — connection integrity (unattached lines, dangling ends and the device they stop at, self-connections, reused ports, broken links), labels & data (free text that isn't attached to its device or link, empty {{field}} labels, duplicate names, hostnames, IPs, serial numbers and cable IDs, labels that disagree with the data), readability (overlapping labels or links, hidden or too-small text, links drawn through devices, content off the page) and network design (subnets, PoE, racks, utilisation). Click a finding to go to it, fix it in one click, or accept it as intentional; F8 steps through them, single points of failure (articulation points & bridges), path trace with alternative-route count, camera stream traffic with per-link utilisation, PoE budget, CCTV storage sizing, highlight-by-data filter. |
| Reports | Device inventory, cable schedule, BOM (with prices), IP plan, rack elevations, PoE budget, CCTV storage, VLAN table — download CSV, copy for Excel, or drop as an editable table on a page. |
| Import | Visio drawings (.vsdx) as editable pages and stencils (.vssx) as shape packs. CSV / NetBox exports (devices + cables, auto-zones by site), diagram-as-text, Cisco CDP / LLDP show … neighbors [detail] output → auto-laid-out topology. |
| Layout | Auto-layout: top-down by tier, left-right, grid, hub-and-spoke, ring, organic — zone-aware (each zone laid out as a cluster). Fit page to drawing. |
| Pages & print | Multiple pages, background pages with border + title block (fields: doc, page, sheet n of m, date), layers (visible / locked / print), page hyperlinks for drill-down, print/PDF fit / actual size / tiled across sheets, presentation mode. |
| Export | Visio .vsdx (shapes, glued connectors, Shape Data, layers, hyperlinks; opens again in Port with its zones, devices and links), draw.io, SVG, PNG (2×/4×/transparent), copy page as image, PDF via print, native JSON, share link (drawing compressed into the URL hash). |
| Persistence | Drawings auto-save to IndexedDB in your browser — including on GitHub Pages — with a My drawings manager (open / duplicate / download / delete, backup & restore all), optional persistent storage request, plus a quick localStorage recovery copy. Shape packs and your symbol library persist too. |
| Workspace layout | View ▸ Layout or the buttons at the right of the tab row: hide the title bar, collapse the ribbon (tabs pop it open as an overlay; double-click a tab or Ctrl+F1 to pin it), hide the shapes panel / inspector (Ctrl+Alt+←/→), hide the status bar, or Focus mode (Ctrl+.) for canvas-only editing. Choices are remembered; View ▸ Layout ▸ Reset layout (or opening the app with ?reset) restores the default, and the app resets itself if a layout ever leaves the canvas without room. |
| Review | Review mode locks the layout (click selects, drag pans) while you pin comments to a device, a link, an area or a point, with replies and open / resolved / accepted status. A checklist for connectivity, labels, device data, readability and design shows the findings still open in each. Changes since the previous review (or the last issued revision) are listed and highlighted, and the review report puts comments, flagged errors and unresolved items in one HTML / PDF / CSV document with the pages and their pins. |
| Productivity | Ribbon UI, universal search in the title bar (Ctrl+K or /) — every command, setting, shape, page, device, IP and comment, showing where each tool lives in the ribbon, find & replace across text and data, format painter, smart guides, snapping, rulers, overview map (appears once you zoom in), explorer tree, dark mode, smooth trackpad pinch-zoom (Chrome, Edge, Firefox and Safari gestures), scrolling that stops just past the drawing, full keyboard shortcuts (press ?). |
The drawing is kept consistent automatically after every edit:
{{fields}} in labels, title blocks and tables update live from shape data and document properties.Enterprise campus (with rack elevations) · Data-centre leaf-spine · SD-WAN branches · CCTV / video surveillance · OT / SCADA Purdue model · Hybrid cloud · Small office.
Drag a template onto the page from the left panel's Templates tab. A dashed footprint shows where it lands and how big it is.
Open a card's Pages & blocks to drag just one page, or just one zone with everything inside it (e.g. the DMZ from the campus). All pages as new pages adds every page after the current one.
+ Add…, Insert ▸ Template or File ▸ Add template to this drawing opens the options:
A live preview shows what will be added and what will change.
Merging is network-aware. Layers merge by name, custom fields by key, and embedded shapes come along. Only the VLANs the copied items use are added. Clashing subnets move to the next free one in the same private block; nested subnets move with their parent, and device IPs and gateways follow. Devices whose address is already taken get the next free host address. Clashing hostnames get -2, and a name prefix also prefixes hostnames. The page grows to fit, the legend updates, and links re-route around what was there. One Ctrl+Z undoes it.
My templates: save this page, the selection or the whole drawing as a template, from Insert ▸ Save as template, File ▸ Save as template…, the right-click menu or the Templates tab. You can rename, describe or duplicate one (✎), and download or import it as .json. To update one, open it (Open on its card), edit, then Save as template — it offers to replace that template. Templates live in this browser and are included in File ▸ My drawings ▸ Back up all and its restore. My drawings lists the other drawings saved in this browser, ready to drop in. Dropping a drawing file on the canvas asks whether to add it or open it.
Add drawing devices to a rack. Select devices on any page, then right-click ▸ Add to rack…. Each one becomes a proper rack unit (firewall, switch, router, server, storage, NVR, UPS…) with a height you choose. Units go into an existing rack or a new one (on a "Racks" page or beside the drawing), filled from the top or bottom, never overlapping. Linked units show the device's live name and data ({{asset}}, {{asset.ip}}), and the inventory's Rack / U column shows where each device is mounted.
Height in U. Right-click a unit ▸ Height (1U–10U), or use the inspector. It keeps its top U if there's room, otherwise its bottom U, otherwise the nearest free run, and it never overlaps another unit. Units snap to free U slots when dragged or dropped in.
Move and lock to a U. Move to U… refuses taken slots and names what's in the way. Lock in this U (or Lock all equipment on the rack) keeps units where they are when dragged; moving the rack still carries them.
Views. Right-click a rack ▸ Views:
They sit side by side with the front view; whatever stands to the right of the rack moves along to make room.
Accessories: cable managers (1U/2U), vented cable tray, shelf, drawer, KVM console, LCD monitor, KVM switch, patch and fibre panels, PDU, transfer switch (ATS), fan tray, blanking panels (1U/2U) and brush panel. Add them from the rack's right-click menu or inspector; they go in the next free U.
Vertical (0U) PDUs on the side panels. Drag a PDU 0U (vertical) onto a rack: it hangs in the nearer side channel at full height and is named PDU A (left) or PDU B (right). The first one gives the rack 0U side channels; the cabinet widens outwards, so units, ports and links stay where they are. Right-click a PDU ▸ Length (full, ¾, ½ or any U), Move to the other side or Move to U…. Left and right are as seen from the front; the rear view mirrors them and the top view shows them at the rear corners. They take no U and count in Space & power.
Roof fan tray. Drag a onto the top of a rack: it sits on the roof (the rack grows upwards; the floor line stays) with 1–6 fans (right-click ▸ ). Turn the side channels or roof on and off from the rack's right-click ▸ or the inspector.
On the first visit, a short tour spotlights one area at a time (ribbon, shapes panel, page, inspector, status bar, layout buttons) and dims the rest. It has Back / Next (or ← →), and Skip at any time (or Esc). It shows once; replay it from View ▸ Help ▸ Tour. Areas hidden at the moment, such as the side panels on a phone, are left out.
Open or drop a Visio file anywhere (File ▸ Import Visio drawing or stencil…, File ▸ Open, or onto the canvas or the shapes panel).
.vssx, .vssm) become a shape pack: one shape per master, drawn from the master's own geometry. Hidden masters and connectors are skipped. Importing the same stencil again replaces its pack..vsdx, .vsdm, .vstx) open as a new drawing, or their pages are added to the one you have.
.vsd, .vss) can't be read in a browser, so save them as .vsdx / .vssx from Visio first. EMF/WMF pictures, common in older vendor stencils, can't be drawn by browsers and show as marked placeholders. Visio themes, gradients, shadows and formulas that refer to other shapes fall back to the stored values.fw, nvr, ap, plc…Enter or F2. Data: right panel ▸ Data tab.Esc clears highlights, F8 steps through findings.C) and click or drag on the drawing. Review report exports everything.Ctrl+K or /..json.Browser storage is per site and per browser profile. On GitHub Pages every project under zephyrsai.github.io shares one origin, so data is kept under its own database name (port-network-studio). Clearing site data removes stored drawings — use Back up all in My drawings or save files for anything important. Make storage persistent asks the browser not to evict the data under storage pressure.
Nothing is uploaded. The only network calls are the optional online icon search/picks (to api.iconify.design) and, on GitHub Pages, loading the app files. Share links carry the drawing in the URL hash, which browsers never send to servers.
Plain HTML + vanilla JavaScript, no framework, no build required to run — open index.html from any static server.
index.html app shell
css/app.css UI (light + dark)
js/core.js document model, geometry, v1/v2 migration, IPv4 helpers
js/stencils.js built-in icon library
js/packs/extended.js curated open-licensed icons (generated by tools/build-packs.mjs)
js/shapes.js basic shapes, racks, link types, themes, catalogue
js/router.js orthogonal obstacle-avoiding connector router
js/layout.js hierarchical / grid / radial / ring / force layouts
js/connectors.js connector geometry, dynamic glue, side spreading, fan nesting, jumps
js/render.js scene / overlay / rulers / overview rendering
js/analysis.js SPOF, paths, traffic, PoE, racks, IP plan, design checks, reports
js/io.js files, SVG/PNG, draw.io, Visio export, share links, print
js/vsdx.js dependency-free .vsdx writer (+ ZIP writer)
js/visio.js Visio import: .vssx stencils → shape packs, .vsdx drawings → pages (geometry, inheritance, glue, data)
js/packs.js shape packs, SVG sanitiser, importers, Iconify search, IndexedDB store
js/builder.js auto-layout glue, CSV / NetBox / text / CDP / LLDP importers
js/templates.js starter drawings
js/merge.js add a template / drawing / page / zone block to a drawing (ids, layers, VLANs, subnets, hostnames)
js/tplpanel.js Templates tab: drag and drop, add options, My templates, My drawings
js/scale.js zone-aware scaling engine
js/revisions.js revision log, change tracking, clouds / deltas, revision tables
js/quick.js right-click quick configure, legend restyle, Scale dialog, revisions UI
js/inventory.js inventory builder and per-device fields on the drawing
js/select.js window / lasso / Alt-click / Tab selection, select by type
js/ports.js arrange connection points (pure)
js/tour.js first-run spotlight tour
js/racks.js rack engine: U slots, heights, moves, locks, device mapping, power / heat / depth (pure)
js/rackui.js add to rack, unit and rack commands, views, accessories, 0U PDUs and roof fan tray, space & power, Excel import preview
js/racksheet.js a rack as an Excel / CSV table and back: export, matching, import plan, apply (pure)
js/xlsx.js dependency-free .xlsx writer and reader (drop-down lists, frozen header, text columns)
js/app.js, actions.js, inspector.js, panels.js, workspace.js, main.js editor UI
tests/ node:test suites (router, layout, vsdx, visio, core/importers, merge, scale, revisions, ports, racks, rack sheets, xlsx)
tools/ build.mjs (cache-busting + single-file build), build-packs.mjs, stencil preview
npm test # node --test tests/*.test.js
npm run build # stamp asset versions in index.html + build dist/port-network-studio.html
npm run packs # refresh js/packs/extended.js from the Iconify API
Third-party icon licences: see NOTICE.md.
Plan or update a rack in Excel. Right-click a rack ▸ Spreadsheet ▸ Export to Excel (or Data ▸ Rack to Excel): one row per U, highest first, the 0U PDUs and the roof tray, with drop-down lists for the equipment and a Row ID that ties each row to its unit. Fill in free rows, swap or move units, change names, models or serial numbers, then drop the file back on the rack (or Spreadsheet ▸ Import…, Data ▸ Rack from Excel). A preview shows every addition, move and change — conflicts get a choice, units missing from the sheet are only removed if you tick it — and the import is one undo step. CSV works too; Export to Excel without a rack gives a blank rack to plan from scratch.
Space & power (rack right-click or inspector) shows:
It also lists warnings. Devices without a Power draw use typical values, which are flagged. It can be inserted as a table.