<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: aymenki</title>
    <description>The latest articles on DEV Community by aymenki (@aymenki).</description>
    <link>https://dev.to/aymenki</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4202226%2Ff09800a2-84e6-435e-ab01-b5c62c187bf7.png</url>
      <title>DEV Community: aymenki</title>
      <link>https://dev.to/aymenki</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aymenki"/>
    <language>en</language>
    <item>
      <title>I built Nmap Studio: a local browser UI for the Nmap suite</title>
      <dc:creator>aymenki</dc:creator>
      <pubDate>Fri, 23 Oct 2026 09:47:15 +0000</pubDate>
      <link>https://dev.to/aymenki/i-built-nmap-studio-a-local-browser-ui-for-the-nmap-suite-18a2</link>
      <guid>https://dev.to/aymenki/i-built-nmap-studio-a-local-browser-ui-for-the-nmap-suite-18a2</guid>
      <description>&lt;p&gt;I kept finding myself switching between the Nmap manual, terminal commands, and saved scan notes. I wanted one place where I could build a command, run it, and understand the result without hiding what Nmap is doing.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Nmap Studio&lt;/strong&gt;, a local browser interface for Nmap and the other tools that come with it.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/aymenki/nmap-studio" rel="noopener noreferrer"&gt;https://github.com/aymenki/nmap-studio&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;The interface currently supports &lt;strong&gt;Nmap, Ncat, Nping, and Ndiff&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can configure common scan options with normal form controls, watch output while a command is running, cancel a job, send input to Ncat, save scan profiles, and review recent output. There is also an XML report viewer and a searchable catalog of 612 NSE scripts.&lt;/p&gt;

&lt;p&gt;I did not try to replace every command-line option with a button. Less common options can still be added through the advanced argument editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running it
&lt;/h2&gt;

&lt;p&gt;You need Python 3.10 or newer and the official Nmap tools installed on your PATH. There are no extra Python packages to install.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python server.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;On Windows, you can also run &lt;code&gt;start.cmd&lt;/code&gt;. The interface opens at &lt;code&gt;http://127.0.0.1:8765&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A note about security
&lt;/h2&gt;

&lt;p&gt;This tool can launch real network commands, so I built it for local use. The server listens only on loopback, checks Host and Origin on requests that change state, uses a per-session token, and does not enable CORS. Commands are started as argument lists without passing them through a shell.&lt;/p&gt;

&lt;p&gt;It still runs with your user account's permissions. Keep the runner local, and only scan systems you own or are allowed to test.&lt;/p&gt;

&lt;p&gt;Nmap Studio is an independent project and is not affiliated with or endorsed by the Nmap project.&lt;/p&gt;

&lt;h2&gt;
  
  
  I would like your feedback
&lt;/h2&gt;

&lt;p&gt;This is the first public version, so I am especially interested in feedback about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;whether the scan builder is easy to understand&lt;/li&gt;
&lt;li&gt;anything missing from the Nmap, Ncat, Nping, or Ndiff workflows&lt;/li&gt;
&lt;li&gt;security issues in the local runner&lt;/li&gt;
&lt;li&gt;problems on Linux or macOS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try it, please tell me what felt confusing or open an issue on GitHub.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>opensource</category>
      <category>python</category>
      <category>nmap</category>
    </item>
  </channel>
</rss>
