https://github.com/real-fruit-snacks/nmap-command-builder
Toggle scan type, ports, detection, timing, and output — the nmap command assembles live, every flag explained, with privilege notes and a copy button.
https://github.com/real-fruit-snacks/nmap-command-builder
client-side dark-mode developer-tools network-scanning nmap no-build offline pentesting security static-site terminal-workbench
Last synced: 11 days ago
JSON representation
Toggle scan type, ports, detection, timing, and output — the nmap command assembles live, every flag explained, with privilege notes and a copy button.
- Host: GitHub
- URL: https://github.com/real-fruit-snacks/nmap-command-builder
- Owner: Real-Fruit-Snacks
- License: mit
- Created: 2026-07-15T22:43:24.000Z (25 days ago)
- Default Branch: main
- Last Pushed: 2026-07-15T23:56:17.000Z (25 days ago)
- Last Synced: 2026-07-16T00:28:23.616Z (25 days ago)
- Topics: client-side, dark-mode, developer-tools, network-scanning, nmap, no-build, offline, pentesting, security, static-site, terminal-workbench
- Language: JavaScript
- Homepage: https://real-fruit-snacks.github.io/nmap-command-builder/
- Size: 29.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Live site ·
Features ·
Run it ·
Keyboard ·
Host it yourself ·
Architecture
Toggle scan type, ports, detection, timing, and output — the nmap command assembles live, every flag explained, with privilege notes and a copy button. Styled with the
[Terminal Workbench design system](https://github.com/Real-Fruit-Snacks/terminal-workbench-design-system):
calm graphite surfaces, restrained ANSI accents, monospace manifest labels.
**No network. No dependencies. No build step.** Everything runs in your browser and nothing you enter
ever leaves the page. Open `index.html` from a USB stick and it works.
## Features
- Toggle scan type, ports, service/OS detection, timing, and output format.
- One-click example scans (quick, service+OS, full TCP, ping sweep, UDP, vuln).
- The command assembles live as you choose options.
- Copy-ready output for the terminal.
- **Both themes, six accents** — dark by default, light by preference or toggle; inputs, scrollbars and focus rings all follow the theme.
- **The ghost** — the family site pet, ported from [worldclock](https://github.com/Real-Fruit-Snacks/worldclock). It drifts, naps, and flees the cursor. Click it to recolor it.
- **Private by construction** — no network requests, no analytics, no external fonts. Everything runs in your browser; nothing you enter ever leaves the page.
## Run it
Open `index.html`. That's it — it works from `file://`, a USB stick, or any static file server.
For a local server:
```
python -m http.server 8000
```
then visit http://localhost:8000.
## Keyboard
Press `?` in the app to bring up this list at any time.
| Key | Action |
|---|---|
| `/` | focus the first input |
| `s` | settings |
| `t` | toggle theme |
| `?` | this help |
| `esc` | close / unfocus |
## Host it yourself
Everything needed to host is in this repository — static files only, no build.
**GitHub Pages:** fork or push this repo, then Settings → Pages → Deploy from branch → `main` / `/ (root)`.
The included `.nojekyll` is required (it stops Jekyll from mangling the files).
**GitLab Pages:** the included [`.gitlab-ci.yml`](.gitlab-ci.yml) publishes the site on every push to the
default branch — no configuration. Works on self-hosted / airgapped GitLab too; the job only copies files.
**Anything else:** copy `index.html`, `css/`, and `js/` to any web root.
**Offline / airgapped:** grab the zip from the [latest release](https://github.com/Real-Fruit-Snacks/nmap-command-builder/releases/latest)
— it contains everything above; no network is needed to host or run it.
## Architecture
| File | Responsibility |
|---|---|
| `js/tool.js` | tool logic and UI |
| `js/settings.js` | preference store (sole `localStorage` owner), settings panel, theme/accent, keyboard shortcuts, help |
| `js/content.js` | click-to-copy buttons for code examples |
| `js/pet.js` | the ghost |
Plain scripts, one shared `TW` namespace, two window events (`tw:prefs`, `tw:pet`) — no framework, no
modules, view-source friendly.
## Credits
- Design tokens: [terminal-workbench-design-system](https://github.com/Real-Fruit-Snacks/terminal-workbench-design-system) (MIT)
- Pet ghost: ported from [worldclock](https://github.com/Real-Fruit-Snacks/worldclock) (MIT)
## License
[MIT](LICENSE)