TWSNMP FK

August 3, 2026 · View on GitHub

日本語版はこちら

Go Report Card GitHub Go version GitHub release (latest by date) GitHub License GitHub Repo stars 【Built with】 Go Wails Svelte

TWSNMP FK is a next-generation Network Management System. It combines the performance of Go, the simplicity of Svelte, and the seamless desktop experience of Wails to provide a lightweight yet powerful observability tool.

TWSNMP FK


Ultra lightweight SNMP manager. To keep maps and event logs, etc. always visible. It is designed to be used in Windows kiosk mode. Of course, it can also be used as a normal application.

Document

English

Status

The following functions will work

  • Network map
  • Node list
  • Polling (PING/TCP/HTTP/NTP/DNS/SNMP/gNMI)
  • Event log
  • Syslog reception
  • SNMP TRAP reception
  • ARP monitoring
  • MIB browser
  • PING Confirmation
  • Panel Display
  • Host resource MIB display
  • Wake On LAN support
  • HTML e-mail notification, periodic report
  • AI Analysis
  • NetFlow/IPFIX
  • sFlow
  • gNMI
  • PKI (CA and CRL/OCSP/ACME/SCEP server)
  • SSH Server
  • TCP Log server
  • OpenTelemetry collector
  • MCP Server
  • MQTT Server and Polling

Build

The following environment is used for development

  • go 1.24 or higher
  • wails 2.9.3 or higher
  • nsis
  • go-task

You can build it with the following command.

task

Run

Double-click from the built executable file to drive it as a normal application.

Special Notes for Linux Environments

In Linux environments, running the application as a normal user will result in permission errors during startup (e.g., socket: operation not permitted when setting up ICMP Ping, or errors when binding to privileged ports under 1024 like 514 for Syslog or 162 for Trap).

To resolve this securely, do not run the application directly with sudo (which will break connection to the X11/Wayland display server, preventing the GUI from launching). Instead, grant the executable the required Capabilities to bind to privileged ports and use raw sockets, and then run it as a normal user.

Additionally, modern Linux distributions (like Ubuntu) do not have the arp command installed by default. You must install the net-tools package to use the ARP monitoring feature.

  1. Grant Capabilities:
    sudo setcap 'cap_net_bind_service,cap_net_raw+ep' ./twsnmpfk
    
  2. Install ARP Monitoring Tools (net-tools):
    sudo apt-get update && sudo apt-get install -y net-tools
    
  3. Run as a normal user:
    ./twsnmpfk
    

This allows the application to perform ping monitoring, ARP monitoring, and receive syslog/traps while properly displaying the GUI interface under your user session.

It can also be started from the command line by specifying the following parameters:

Usage of twsnmpfk:
 -caCert string
    	CA Cert path
  -clientCert string
    	Client cert path
  -clientKey string
    	Client key path
  -datastore string
    	Path to data store directory
  -kiosk
    	Kisok mode(frameless and full screen)
  -lang string
    	Language(en|jp)
  -lock string
    	Disable edit map and lock page(map or loc)
  -maxDispLog int
    	Max log size to diplay (default 10000)
  -mcpCert string
    	MCP server cert path
  -mcpKey string
    	MCP server key path
  -mqttCert string
    	MQTT server cert path
  -mqttFrom string
    	MQTT client IP
  -mqttKey string
    	MQTT server key path
  -mqttTCPPort int
    	MQTT server TCP port (default 1883)
  -mqttUsers string
    	MQTT user and password
  -mqttWSPort int
    	MQTT server WebSock port (default 1884)
  -netflowPort int
    	Netflow port (default 2055)
  -notifyOAuth2Port int
    	OAuth2 redirect port (default 8180)
  -otelCA string
    	OpenTelementry CA cert path
  -otelCert string
    	OpenTelemetry server cert path
  -otelGRPCPort int
    	OpenTelemetry server gRPC port (default 4317)
  -otelHTTPPort int
    	OpenTelemetry server HTTP port (default 4318)
  -otelKey string
    	OpenTelemetry server key path
  -ping string
    	ping mode icmp or udp
  -sFlowPort int
    	sFlow port (default 6343)
  -sshdPort int
    	SSH server port (default 2022)
  -syslogPort int
    	Syslog port (default 514)
  -tcpdPort int
    	tcp server port (default 8086)
  -trapPort int
    	SNMP TRAP port (default 162)

ParametersDescription
dataStoreDatstore Pass
kioskKiosk mode (frameless, full screen)
lock disable edit map and show fixed page
Maxdisplog Maximum number of logs (default 10000)
ping Ping operation mode (ICMP or UDP)
syslogPort Syslog receiving port (default 514)
trapPort SNMP TRAP Reception port (Default 162)
sshdPort SSH server port (Default 162)
sshdPort SSH Server Receive Port (Default 2022)
netflowPort NetFlow/IPFIX receive port (default 2055)
sFlowPort sFlow receiving port (default 6343)
tcpdPort TCP log receiving port (default 8086)
otelCAOpenTelementry CA cert path
otelCertOpenTelemetry server cert path
otelGRPCPortOpenTelemetry server gRPC port (default 4317)
otelHTTPPortOpenTelemetry server HTTP port (default 4318)
otelKeyOpenTelemetry server key path
mqttTCPPortMQTT server TCP port (default 1883)
mqttWSPortMQTT server Websock port (default 1884)
mqttCertMQTT server cert path
mqttKeyMQTT server key path
mqttFromMQTT server Client
mqttUsersMQTT server User ID and password list
mcpCertMCP server cert path
mcpKeyMCP server key path
notifyOAuth2PortOAuth2 redirect port (default 8180)

History

v2.2.0

AI Explanation for All Reports

  • Tab-based AI Explanation Across All Reports: Added an [AI Explain] button to the footer (left of Close button) across all 12 report screens (Node, IPAM/Address, ARP, Event Log, Syslog, Trap, NetFlow, sFlow, sFlow Counter, MQTT, Polling, Network). Sends current tab data (system resources, storage, processes, traffic flows, log statistics, etc.) to AI (LLM) for automated health diagnostics, risk evaluation, anomaly detection, and actionable remediation advice (excluding basic info tab).

AI Explanation for Address Management

  • Address Management AI Explanation: Added an [AI Explain] button to the Address Management screen. Summarizes normal address counts and sends detailed entries of abnormal/changed addresses (duplicate/169.254 APIPA, IP changes, MAC changes) to AI (LLM) for detailed per-entry diagnosis, root-cause analysis, security/operational risk evaluation, and recommended action steps.

AI Explanation for Certificate Management

  • Certificate Management AI Explanation: Added an [AI Explain] button to the Certificate Management (Cert) screen. Sends all monitored server certificate data (including normal entries, target host, port, Subject, Issuer, expiration dates, remaining days, TLS verification status, and error messages) to AI (LLM) for overall status summarization, complete certificate breakdown, risk evaluation of expired or near-expiring certificates (within 30 days), and step-by-step actionable remediation advice (CSR generation, CA renewal, web server/proxy binding, and automated renewal setup like Certbot).

AI-Assisted Polling Creation for Log Views

  • AI-Assisted Polling Generation: Added AI-assisted polling creation dialog (AIPollingAssistDialog) to log/flow views (Syslog, SNMP Trap, MQTT, NetFlow, sFlow). Automatically generates monitoring parameters, filter conditions, Grok extraction patterns, and JavaScript scripts based on selected log entry content.

Polling Node Selection Enhancements

  • Mandatory Node Selection: Required selecting a target node when registering new polling items.
  • Target Node Modification: Enabled changing the assigned target node when editing existing polling configurations.

Conditional AI Feature Display

  • AI Feature Control: AI-related action buttons and menu items (such as AI Diagnosis, AI Root Cause Analysis, AI Address Explanation, AI Certificate Explanation, AI Polling Assist, and AI Explain) across Map, Node List, Address Management, Certificate Management, Event Log, MIB Browser, Syslog, Trap, MQTT, NetFlow, and sFlow are now displayed only when AI integration is enabled.

UI & Layout Optimizations

  • Navigation Header & Spacing: Improved top navigation header bar layout, component spacing, and vertical scrolling paddings across all main view components.
  • MQTT Table Enhancements: Fixed table scrolling behavior and row detail expansion after table reloading.

v2.1.0

Expanded Map Image & Data Exporting

  • Diverse Export Formats: Export maps into Images (PNG, SVG, PDF), Diagramming formats (Draw.io XML/SVG), and Structured Data (JSON, CSV, Excel XLSX) directly from the map toolbar/menu.

Enhanced AI (LLM) Integration

  • Node AI Diagnosis: Perform comprehensive multi-angle AI diagnoses of node status, related event logs, and responses via the map context menu or node list (supports copy and export).
  • Event Log AI Investigation: AI-driven analysis of root causes and suggested remediation steps for selected event logs.
  • Polling AI Assist: Prompt-assisted AI generation of monitoring methods, parameters, and JavaScript scripts in the polling editor.

Extended AI Polling (Anomaly Detection) Algorithms

  • Additional Scoring Algorithms: Added "Hotelling's T2" and "k-NN" (k-Nearest Neighbors) anomaly detection algorithms alongside Isolation Forest.

Enhanced MQTT Monitoring & Visualization

  • Formatted Latest Payload View: View and format (JSON, TEXT, HEX) the latest received payload of any MQTT topic.
  • MQTT Topic Reports: Graphical report functionality visualizing topic message frequency and payload data volume over time.

UI/UX & Navigation Polish

  • Shift-Key Range Selection: Unified Shift-click range selection (multi+shift) across all multi-select data tables.
  • Graph & Menu Layout Optimization: Upgraded to ECharts v6 with optimized grid padding, legend positioning, and enhanced context menu styling.

v2.0.0 (2026/06/27)

Major Frontend Stack Upgrade & Svelte 5 Migration

  • Svelte 5 Migration: Upgraded the frontend framework from Svelte 4 to Svelte 5. All components have been migrated to the new reactivity system, using the Svelte 5 $props() and $bindable() syntax.
  • Technology Stack Upgrades: Upgraded major development and runtime dependencies, including Vite 8, Flowbite Svelte v1, Tailwind CSS, and PostCSS.
  • Flowbite Svelte Compatibility: Refactored component properties to align with Flowbite Svelte APIs (e.g. migrating deprecated ulClass to classes in NavUl, and updating Spinner size properties).

DataTables DOM Isolation

  • DOM Isolation: Wrapped all data table elements (<table>) within container <div> blocks inside Svelte slots and Flowbite <TabItem> components. This prevents DataTables' internal DOM injection from deleting or breaking sibling elements (such as ECharts containers).

Layout, Styling & UI Polish

  • System Page Layout: Re-balanced chart and table heights to optimize screen space and ensure action/settings buttons remain visible.
  • OpenTelemetry Report Layout: Resized charts, widened table columns to prevent timestamp line-wrapping, and formatted metric values to 3 decimal places for better readability.
  • Server Control Modal: Re-balanced sizes and margins of status display badges (ACME, SCEP, etc.) for a cleaner design.
  • AI Log Explanation Popup: Optimized code block text styling in markdown overlays, ensuring text is white with no shadow.
  • Responsive Configurations: Adjusted checkbox spacing in various settings views to improve layout responsiveness.

Help Document Redesign

  • Simplified Help Files: Rewrote all English and Japanese help documentation files to use a simplified, table-free, HTML-tag-free manual style with unified button and action labels.

Security & Go Backend Enhancements

  • Vulnerability Mitigations: Upgraded frontend package versions, including esbuild to 0.28.1, to mitigate known vulnerabilities (GHSA-gv7w-rqvm-qjhr).
  • Wails Log Routing: Added a JS log output function to the Go backend (LogFromJS), routing JavaScript logs and errors directly to the Wails terminal output for easier debugging.

v1.35.0 (2026/06/11)

Custom SNMP Port Configuration

  • Custom Port Settings: Added a custom SNMP Port field to both Node and Network configuration dialogs. SNMP operations, including polling and reporting, will now respect the customized port (defaults to 161 if set to 0).

MQTT Feature Enhancements

  • Enhanced Polling Node Selection: Enhanced the node selection logic when creating MQTT polling items from MQTT statistics. It prioritizes (1) Matching remote IP address, (2) Localhost/TWSNMP broker node, (3) Falling back to the first available node.
  • Topic Operations: Added "Copy Topic" and "Create Polling" options directly into the MQTT statistics list view.
  • Auto-Cleanup of Statistics: Added automatic cleanup of old MQTT statistics based on the configured log retention days.

Security & Compliance Remediations

  • Dependency Upgrades: Upgraded go.opentelemetry.io/otel/sdk to v1.43.0 (CVE-2026-39883), go.opentelemetry.io/otel to v1.41.0 (CVE-2026-29181), and go-jose to v4.1.4 (GO-2026-4945) to patch known vulnerabilities.
  • GoSec & CodeQL Security Fixes: Fixed several code scanning security alerts (G112, G122, G204, G306, G401, G402, G505) covering file permissions, command variables, timeouts, weak hashes, TLS, and loop pointers.
  • SSHd Logging & Refactoring: Resolved integer conversion warnings in the SSH server module (logger/sshd) and cleaned up verbosity/sensitive logs.

UI/UX and Translation Polish

  • Wails Local Schema: Introduced a local VS Code schema for wails.json to resolve trust-related warning messages in editors.
  • Localization Corrections: Corrected multiple typos, spelling mistakes, and translation inconsistencies across Japanese and English locales.

v1.34.0 (2026/05/26)

Official Linux Support and Enhancements

  • CI Auto-Build & Release Pipeline: Added a GitHub Actions workflow (build-linux.yml) to automatically build and package the Linux version (.tar.gz).
  • Ubuntu 24.04 Compatibility in CI: Upgraded WebKit2Gtk to 4.1 to ensure compatibility and smooth building on Ubuntu 24.04 in CI.
  • Linux Capability and Execution Instructions: Added step-by-step instructions to the README and web docs on running twsnmpfk as a standard user with proper Linux Capabilities (setcap for cap_net_bind_service and cap_net_raw) rather than sudo.
  • ARP Monitoring Dependency: Documented that net-tools is required for Linux ARP monitoring.

Cleanup of Deprecated Features

  • Removal of Unsupported SNMPv1: Completely removed SNMPv1 options and controls from map, node, and network configuration UIs.
  • Import & Help Docs Synchronization: Refactored the v4 map import logic to align with the SNMPv1 deprecation, and updated corresponding English and Japanese help files (editnetwork.md, editnode.md, mapconf.md).

UI Improvements and Bug Fixes

  • Long URL Menu Layout Fix: Resolved a layout bug in the node right-click menu where extremely long URLs would squash the associated menu icons.
  • Network Report VPanel Port Wrap: Enhanced the virtual panel (VPanel) under Network/Node reports by introducing customizable Port Wrap and zoom settings.

Security and Maintenance

  • Vulnerability Mitigations: Audited and upgraded Go modules and frontend NPM dependencies to patch known security vulnerabilities.
  • Framework Updates: Bumped Wails framework to v2.12.0 and upgraded TypeScript to 5.5.x.

Documentation and Presentation Slide Updates

  • Marp Presentation Theme Fix: Resolved the "graph_paper" theme error in Marp by introducing a local graph_paper.css file and registering it in VS Code settings. Regrew and updated the distributable PDF slide manuals.
  • Custom Website Headers: Added a custom head snippet (head-custom.html) to the Jekyll-based web docs for easier customization of theme settings, analytics, and OGP metadata.

v1.33.0 (2026/03/17)

SNMPv3 Security Enhancements

  • Enhanced Security Modes: Added support for SHA256/AES128 and SHA512/AES256 authentication and encryption modes, providing stronger security for SNMP monitoring.

Map and UI Improvements

  • Node IP Display: Added an option to display node IP addresses directly on the map for easier identification.
  • Group Drawing Items: Introduced new "group" (frame/background) drawing items to better organize nodes and areas on the map.
  • VPanel Enhancements: Added zoom control and port wrap control for the virtual panel (VPanel) in both node and network reports.
  • Clean Map Style: Removed the background rectangle for unselected nodes to provide a cleaner and less cluttered map interface.

Drawing Item Enhancements

  • Opacity Support: Added support for setting the opacity (transparency) of drawing items.
  • Background Image UI: Improved the user interface for background image settings, making it more intuitive to customize map backgrounds.

Security and Maintenance

  • Vulnerability Fixes: Updated Go and npm dependencies to address the latest security concerns.

v1.32.0 (2026/02/27)

AI (LLM) Integration Features

  • MIB Browser Enhancements: Added natural language MIB search and AI-powered MIB object explanation.
  • Log Analysis Support: Integrated AI explanations for NetFlow, Syslog, and SNMP Trap logs.
  • Periodic Report Summarization: Added an AI-driven summary feature for periodic reports to quickly grasp network status.
  • Multi-Provider Support: Supports multiple LLM providers including Gemini (Google AI), OpenAI, Anthropic (Claude), and Ollama (local LLM).

Map and Display Improvements

  • SVG Format Support: Added support for SVG node images on maps, ensuring high quality at any scale.
  • Node Display Adjustments: Optimized icon sizing and layout based on node selection status.
  • Component Refactoring: Reusable "Neko" animation component for consistent UI across MIB Browser and other views.

Security and Maintenance

  • Vulnerability Fixes: Updated Go and npm dependencies to address security concerns.
  • Documentation Update: Separated README into English and Japanese versions for better maintainability.
  • Bug Fixes: Resolved translation issues in LLM settings and fixed minor UI typos.