NixOS Cheatsheet

Install, update, and manage cli.johlem.net tools on NixOS / Nix

Flake URL

All tools are distributed as a single Nix flake tarball — no GitHub required.

tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz

Available packages: urlrecon, lexharvest, shard, socq, webharvest, payloadforge, vlanrecon, wifiaudit, casper, ubdem, specter, pentree, cidrcalc, b64chain, regexlab, hashcrackref, logtimeline, speedtest-cli, skyrecon, ohm, jcli, mailforge, esptools, phishprobe, openclaw, credsweep, hostwatch, darkrecon, avwatch, stegcrypt, kage, jfind, yttranscript, mediagrab, glasswatch, dronewatch, mark, complymap, dossier, inciclass, roigen, tiberscope, offsec, socialscope, cmdb, notify, compose-audit, pkgaudit, shellrec, webfuzz, changefeed, signtree, backupcheck, tabletop, pwgen, burp-cli

Quick Install (one tool)

Try without installing

nix run "tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz#b64chain" -- --help

Install to user profile

nix profile install "tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz#b64chain"

Install multiple tools

nix profile install \
  "tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz#jcli" \
  "tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz#urlrecon" \
  "tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz#hashcrackref"

NixOS System Configuration

Add the flake to your system flake.nix for declarative management.

1. Add input

# /etc/nixos/flake.nix (or wherever your system flake lives)
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    cli-johlem.url = "tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz";
  };

  outputs = { nixpkgs, cli-johlem, ... }: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        ./configuration.nix
        {
          nixpkgs.overlays = [ cli-johlem.overlays.default ];
        }
      ];
    };
  };
}

2. Add tools to system packages

# configuration.nix
{ pkgs, ... }:
{
  environment.systemPackages = with pkgs.cli-johlem; [
    jcli
    urlrecon
    credsweep
    socq
    hashcrackref
    logtimeline
    regexlab
    shard
    # add any tools you need — see Available Tools below
  ];
}

3. Apply

sudo nixos-rebuild switch

Home Manager

For per-user installs via Home Manager.

# home.nix
{ pkgs, ... }:
{
  home.packages = with pkgs.cli-johlem; [
    b64chain
    cidrcalc
    urlrecon
  ];
}

Dev Shell (per-project)

Add tools to a project-specific dev environment without installing globally.

# Any project flake.nix
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    cli-johlem.url = "tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz";
  };

  outputs = { nixpkgs, cli-johlem, ... }:
    let
      pkgs = nixpkgs.legacyPackages.x86_64-linux;
      tools = cli-johlem.packages.x86_64-linux;
    in {
      devShells.x86_64-linux.default = pkgs.mkShell {
        packages = [
          tools.urlrecon
          tools.credsweep
        ];
      };
    };
}
nix develop  # drops you into a shell with those tools on PATH

Updates

MethodCommand
NixOS system nix flake update cli-johlem && sudo nixos-rebuild switch
User profile nix profile upgrade '.*'
Single tool nix profile upgrade cli-johlem
Force refresh (nix run) nix run --refresh "tarball+...#tool"

The flake tarball URL is stable (cli-johlem-net-latest.tar.gz). Running nix flake update fetches the newest version and updates flake.lock.

Uninstall

From profile

# List installed packages
nix profile list

# Remove by index (shown in list output)
nix profile remove <index>

From system config

Remove the tool from environment.systemPackages and run sudo nixos-rebuild switch.

Nix Command Cheatsheet

TaskCommand
Rebuild system sudo nixos-rebuild switch
Rebuild (test, no boot entry) sudo nixos-rebuild test
Update all flake inputs nix flake update
Update one input nix flake update cli-johlem
Show flake info nix flake show "tarball+https://cli.johlem.net/releases/cli-johlem-net-latest.tar.gz"
List available packages nix flake show "tarball+...#" 2>&1 | grep packages
Garbage collect old generations nix-collect-garbage -d
List generations nix profile history
Rollback to previous generation nix profile rollback
Check store integrity nix store verify --all

Enable Flakes (if not already)

Flakes require experimental features. Add this to your NixOS config:

# configuration.nix
nix.settings.experimental-features = [ "nix-command" "flakes" ];

Or pass the flag per-command:

nix --extra-experimental-features 'nix-command flakes' run "tarball+...#b64chain"

Troubleshooting

ProblemFix
error: experimental feature 'flakes' is disabled Add nix.settings.experimental-features = [ "nix-command" "flakes" ]; to configuration.nix and rebuild
Tool not found after nixos-rebuild Verify the overlay is applied and the tool is listed in environment.systemPackages
Old version after flake update Run nix flake update cli-johlem to refresh the lock, then rebuild
Hash mismatch on tarball Clear eval cache: rm -rf ~/.cache/nix/ and retry
Disk space (Nix store full) nix-collect-garbage -d removes old generations

Available Tools

PackageVersionDescription
urlrecon v1.7.2 Async multi-module URL / domain reconnaissance
lexharvest v1.0.2 Ranked wordlist generator with CeWL-style mutations + pentest boost
shard v1.10.1 Storage Health, Audit & Recovery Device
socq v1.3.2 SOC query translator — daily hunting intents to KQL + AQL, with a built-in Windows event-ID catalogue
webharvest v1.0.2 Web asset extractor and link harvester for OSINT and reconnaissance
payloadforge v1.2.2 Obfuscated payload generator for authorized penetration testing
vlanrecon v1.1.2 Layer 2 VLAN security assessment — Cisco IOS / Arista EOS / Juniper Junos
wifiaudit v1.1.2 Wi-Fi audit toolkit — passive scan, authorized pentest, defense
casper v1.0.2 Privacy stack + engagement security CLI with 4 levels, real-time monitor, and hard kill-switch
ubdem v1.0.2 Offline browser fingerprinting analyzer with Ed25519 + HMAC signed evidence
specter v1.0.3 Forensic CLI: parallel hashing + ssdeep, native metadata, signed evidence, cluster + triage
pentree v1.1.2 Walk pentest methodology trees, step by step
cidrcalc v1.0.1 Subnet calculator, IP range expander, and CIDR notation tool
b64chain v1.0.3 Multi-stage encoder/decoder for chained encoding operations
regexlab v2.0.2 CLI regex toolkit: tester, builder, transformer + benchmark/fuzz/diff/audit
hashcrackref v1.0.2 Hash identification and cracking command reference (does NOT crack)
logtimeline v1.0.2 CLI timestamp normaliser, converter, and incident-response timeline builder
speedtest-cli v1.1.1 Multi-stream internet speed test with bufferbloat + watch mode
skyrecon v1.0.2 OSINT CLI for aircraft + vessels — race-not-fallback sources, proximity, geofence, PDF
ohm v1.0.2 Electronics & hardware reference CLI: calc, power, id, pcb, thermal, rf, ref, safe
jcli v1.5.1 cli.johlem.net suite manager — install / remove / list / run / update
mailforge v1.0.3 Red-team mail operations toolkit — pixel beacons, landing pages, delivery testing, SPF/DKIM/DMARC offensive analysis, OSINT email harvesting, template variation
esptools v2.0.3 ESP32 hardware security assessment toolkit — device management, blue-team monitors, red-team audits, forensics, reporting
phishprobe v1.3.4 Phishing detection — URLs, domains, emails, headers
openclaw v1.0.2 Phishing takedown pipeline (detect → abuse mail → approve → send)
credsweep v1.2.4 Credential / secret scanner for files, dirs, stdin, and git history
hostwatch v1.0.3 Continuous host monitoring — availability, TLS expiry, DNS changes
darkrecon v1.2.2 Dark-web / OSINT reconnaissance for threat intelligence
avwatch v1.2.4 File integrity monitoring + YARA-lite scan + event-driven file routing
stegcrypt v1.1.0 Professional steganography with AEAD encryption, K-of-N threshold split, PNG / BMP / WAV carriers
kage v1.0.0 Realtime computer monitoring with live connection watch and one-key block
jfind v1.0.1 Canonical findings + evidence schema — Ed25519-signed, Merkle-rooted, deterministic JSON
yttranscript v1.0.1 Fetch any YouTube video transcript to a .txt file — no API key, no auth, no async runtime
mediagrab v1.0.1 Generic web media downloader — find video/audio on any standards-compliant page, save as open-source container
glasswatch v1.0.1 Passive BLE scanner for smart-glasses manufacturer IDs (Meta, EssilorLuxottica, Snap)
dronewatch v0.1.1 Passive multi-sensor drone detection — WiFi OUI + OpenDroneID RemoteID decoder
mark v1.0.1 Privacy-first CLI bookmark manager — SQLite + FTS5 full-text search
complymap v1.0.0 Control mapping engine — jfind findings → DORA / NIS2 / ISO 27001 / CSSF
dossier v1.0.1 Reporting layer — jfind / complymap inputs → johlem-branded HTML / Markdown / Document IR
inciclass v1.0.0 DORA / NIS2 incident classifier + notification clock — RTS 2024/1772 thresholds
roigen v1.0.0 DORA Register of Information generator — ITS 2024/2956 templates, validates, exports
tiberscope v1.0.0 TLPT scoping helper — DORA Art. 24 / TIBER-EU four-phase plan + suite-tool map
offsec v1.0.0 Category dispatcher — offensive toolkit front door (urlrecon / payloadforge / mailforge / wifiaudit / pentree / …)
socialscope v1.0.0 Passive social-media OSINT — username enumeration, email-existence probes, search-engine dorking, image EXIF
cmdb v1.0.0 Lightweight asset inventory — hosts / services / owners with DORA Art. 8 + NIS2 Art. 21 metadata
notify v1.0.0 Suite glue — pipe jfind/v1 findings in, route to Slack / Teams / webhook / file / stdout
compose-audit v1.0.0 Container manifest auditor — Dockerfile / docker-compose / Kubernetes hardening checks with DORA Art. 9 mapping
pkgaudit v1.0.0 Multi-lockfile CVE scanner — Cargo / npm / Python / Go via OSV.dev with DORA Art. 28 mapping
shellrec v1.0.0 Terminal session recorder with Ed25519 chain-of-custody — DORA Art. 17 evidence artefact
webfuzz v1.0.0 Wordlist-driven HTTP fuzzer — path / vhost / param with jfind/v1 classification
changefeed v1.0.0 CVE / advisory subscription monitor via OSV.dev — pairs with cmdb and notify
signtree v1.0.0 Detached Ed25519 signature verifier — signify / minisign / shellrec jfind-like
backupcheck v1.0.0 DORA Art. 12 restore-test runner — extract / validate / log / jfind
tabletop v1.0.0 DORA Art. 25 / NIS2 tabletop exercise generator — six curated scenarios
pwgen v1.0.0 Cryptographically random password / passphrase / PIN / WiFi generator
burp-cli v1.0.0 Thin CLI MITM proxy — HTTP forward + CONNECT tunnel + history + replay + jfind/v1 (v1.0)

How It Works

# Architecture (prebuilt, signed Rust binaries)
cli.johlem.net/releases/cli-johlem-net-latest.tar.gz   # ~6 KB
  ├── flake.nix              # package set — one derivation per tool
  ├── flake.lock             # pinned nixpkgs for reproducibility
  ├── johlem-release.pub     # signify pubkey (out-of-band audit)
  └── tools/
      ├── jcli/manifest.json       # url + sha256 + size + signature URL
      ├── urlrecon/manifest.json
      ├── shard/manifest.json
      └── ...                      # one per tool, ~500 bytes each

# When you `nix build .#urlrecon`:
# 1. Nix reads tools/urlrecon/manifest.json to learn the binary URL + SHA-256
# 2. fetchurl downloads cli.johlem.net/tools/urlrecon/releases/urlrecon-vX.Y.Z-linux-x86_64-glibc
# 3. Nix verifies the SHA-256 (build fails on mismatch)
# 4. The binary is installed at /nix/store/...-urlrecon-X.Y.Z/bin/urlrecon

No compilation, no Python, no virtualenvs. The flake fetches the same signify-signed binary the curl install.sh path uses, and Nix's fetchurl enforces the SHA-256 pin committed in manifest.json. The pubkey ships alongside so you can run signify -V out of band if you want a second integrity check.

Nix vs curl|bash Install

curl|bashNix flake
Works on NixOS x86_64 only (the binaries link against a nix-store glibc; the install script does not patch the interpreter, so Debian / Ubuntu / Fedora hosts will fail at startup) NixOS x86_64 + any host with the Nix package manager installed (Nix patchelfs the binary on install)
Binary source Same signed release Same signed release
Integrity SHA-256 + signify SHA-256 (Nix) + signify (manual)
Reproducible Yes (pinned binary) Yes (pinned binary + pinned nixpkgs)
Rollback Manual (reinstall old version) nix profile rollback
Isolation ~/.local/bin /nix/store (immutable)
Multi-user Per-user only System-wide or per-user
Declarative No Yes (in flake.nix)
Offline rebuild No Yes (from store cache)

Both methods install the same signify-signed Rust binary from cli.johlem.net — no GitHub, no third-party registry.

These tools are provided as-is with no warranty. Use at your own risk. Intended for authorized security testing, research, and educational purposes only.