TMAegisBeta

Downloads

Get TMAegis for Windows, macOS or Linux. Every file comes straight from GitHub Releases, with its SHA-256 next to it so you can check it.

Version v0.1.0BetaPublished 17 October 2026Live from GitHub Releases
TMAegis is in public beta. Try it on a test machine first and run apply with --dry-run before changing production systems.

By operating system

Pick your system for the files, the commands and the warnings to expect.

Install options

1 option

ZIP archive

x64 (Intel, AMD)zip49.5 MiB

tmaegis_0.1.0_windows_amd64.zip

SHA-256
9235c243b1376cccbc221b31615f140e16a41846c568b508b84907e3c6eec244

Copy-ready command

powershell
Expand-Archive .\tmaegis_0.1.0_windows_amd64.zip -DestinationPath tmaegis
cd tmaegis
.\tmaegis.exe scan --auto-detect
.\tmaegis.exe apply --auto-detect --dry-run
Download

ZIP archive

ARM64zip46.8 MiB

tmaegis_0.1.0_windows_arm64.zip

SHA-256
620c5f0703d454aeed1001a9106c11c76b1ca718460aeb6730f6b9445ff4403a

Copy-ready command

powershell
Expand-Archive .\tmaegis_0.1.0_windows_arm64.zip -DestinationPath tmaegis
cd tmaegis
.\tmaegis.exe scan --auto-detect
.\tmaegis.exe apply --auto-detect --dry-run
Download
  1. Download the ZIP for your processor: x64 for most PCs, ARM64 for Snapdragon laptops. Compare its SHA-256.
  2. Extract the whole ZIP (right-click, Extract All). Then double-click Start-TMAegis-GUI.cmd for the local GUI, or use PowerShell as below.
  3. To apply fixes, open PowerShell as Administrator: right-click Start and choose Terminal (Admin) or Windows PowerShell (Admin).

The commands use the file name shown above. Use the name of the file you downloaded if it differs.

SmartScreen

The binaries are not code-signed yet, so Windows may show "Windows protected your PC". After you have checked the SHA-256, choose More info, then Run anyway.

One binary, every platform

The same single file scans, reports and fixes on every system. Nothing is installed on the machines you check, and every fix can be undone.

  1. One download

    tmaegis · tmaegis.exe

    A single static binary with the rules next to it. The same commands on Windows, macOS, Linux and the Unix systems.

    • Windows
    • macOS
    • Linux
    • FreeBSD
    • AIX
    • Solaris
    • Docker
  2. 01Scan

    Detects what is installed and runs only the checks that apply. Read-only: nothing changes.

  3. 02Report

    Findings ranked by severity, as HTML, PDF, Excel, SARIF or JSON.

  4. 03Fix

    Preview with --dry-run, then apply. A snapshot is taken first and every change is verified.

Dead-man's switch

After a fix, TMAegis waits for you to confirm that the system still works (60 seconds by default).

  • You confirm: the change stays.
  • No confirmation in time, or a check fails: everything is rolled back from the snapshot.
Rollback works the same way on every system: tmaegis rollback restores any snapshot by hand.

Test your device

Find the system you want to check. Each card says where to run TMAegis, what to export or sign in to first, and the exact scan command.

What runs where

  • One tool for every platform

    The same tmaegis download covers all 96 platforms. It runs on Windows, macOS or Linux; what changes is where you run it and what it reads.

  • Network devices: an exported file

    TMAegis never connects to a router, switch or firewall. You export the configuration as text, copy the file to your computer and scan it there.

  • Remote scans over SSH: planned

    Scanning or hardening other machines over SSH or WinRM is not available yet. It is planned, with no date. Today, run TMAegis on each machine, or scan exported files.

  • Some systems have nothing to install

    Phones, Intune profiles, printers, mainframes and some SaaS tenants cannot run TMAegis. For those it prints a checklist to work through by hand.

96 systems shown

Apache Cassandra

cassandra · 21 rules: 14 automated, 7 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Scan command

tmaegis scan --target cassandra

View rules

Apache HTTP Server

apache · 86 rules: 60 automated, 26 manual

This machine

Where to run it: On the server that runs it, as root (sudo).

Scan command

tmaegis scan --target apache

View rules

Apache Tomcat

tomcat · 61 rules: 56 automated, 5 manual

This machine

Where to run it: On the server that runs it, as root (sudo).

Before you scan
shell
export CATALINA_BASE=/opt/tomcat   # your Tomcat folder (default /opt/tomcat)

Scan command

tmaegis scan --target tomcat

View rules

Apple Safari

safari · 11 rules: 11 automated, 0 manual

This machine

Where to run it: On the Mac, in Terminal. Use sudo for the full scan.

Scan command

tmaegis scan --target safari

View rules

Azure Container Linux

azure-container-linux · 116 rules: 110 automated, 6 manual

This machine

Where to run it: On the host, from a root shell (admin or toolbox container).

These systems have a read-only root file system: copy the Linux archive to a writable folder and run it from there.

Commands and menus differ between versions: check your version's documentation.

Scan command

tmaegis scan --target azure-container-linux

View rules

BIND DNS

bind · 51 rules: 41 automated, 10 manual

This machine

Where to run it: On the server that runs it, as root (sudo).

Scan command

tmaegis scan --target bind

View rules

Bottlerocket

bottlerocket · 30 rules: 26 automated, 4 manual

This machine

Where to run it: On the host, from a root shell (admin or toolbox container).

These systems have a read-only root file system: copy the Linux archive to a writable folder and run it from there.

Commands and menus differ between versions: check your version's documentation.

Scan command

tmaegis scan --target bottlerocket

View rules

CockroachDB

cockroachdb · 31 rules: 10 automated, 21 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Before you scan
shell
export COCKROACH_CERTS_DIR=/var/lib/cockroach/certs

Scan command

tmaegis scan --target cockroachdb

View rules

Container-Optimized OS

cos · 119 rules: 72 automated, 47 manual

This machine

Where to run it: On the host, from a root shell (admin or toolbox container).

These systems have a read-only root file system: copy the Linux archive to a writable folder and run it from there.

Commands and menus differ between versions: check your version's documentation.

Scan command

tmaegis scan --target cos

View rules

Docker

docker · 119 rules: 88 automated, 31 manual

This machine

Where to run it: On the Docker host, as root or a member of the docker group.

Scan command

tmaegis scan --target docker

View rules

FreeBSD

freebsd · 148 rules: 135 automated, 13 manual

This machine

Where to run it: On the AIX, Solaris or FreeBSD system, as root.

An experimental build for this system is in each release: compile-checked only, not yet run on real hardware. Try it on a test system first; if a release lacks it, build it from source with Go. Experimental downloads

Scan command

tmaegis scan --target freebsd

View rules

Google Chrome

chrome · 118 rules: 105 automated, 13 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

Scan command

tmaegis scan --target chrome

View rules

IBM AIX

aix · 232 rules: 221 automated, 11 manual

This machine

Where to run it: On the AIX, Solaris or FreeBSD system, as root.

An experimental build for this system is in each release: compile-checked only, not yet run on real hardware. Try it on a test system first; if a release lacks it, build it from source with Go. Experimental downloads

Scan command

tmaegis scan --target aix

View rules

IBM Db2

db2 · 215 rules: 133 automated, 82 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Scan command

tmaegis scan --target db2

View rules

IBM WebSphere

websphere · 113 rules: 79 automated, 34 manual

This machine

Where to run it: On the server that runs it, as root (sudo).

Before you scan
shell
export WLP_USER_DIR=/opt/ibm/wlp/usr   # your Liberty user directory

Scan command

tmaegis scan --target websphere

View rules

Intune: Microsoft Defender

intune-defender · 55 rules: 55 automated, 0 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

The checks read the Intune policy that has reached the PC. Run the scan on a managed PC, not in the Intune admin center.

Scan command

tmaegis scan --target intune-defender

View rules

Intune: Microsoft Office

intune-office · 238 rules: 237 automated, 1 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

The checks read the Intune policy that has reached the PC. Run the scan on a managed PC, not in the Intune admin center.

Scan command

tmaegis scan --target intune-office

View rules

Kerberos

kerberos · 9 rules: 9 automated, 0 manual

This machine

Where to run it: On the server that runs it, as root (sudo).

Scan command

tmaegis scan --target kerberos

View rules

Linux distributions

linux · 5,730 rules: 5,730 automated, 0 manual

This machine

Where to run it: On the Linux machine, as root (sudo).

Scan command

tmaegis scan --target linux

View rules

LXD

lxd · 6 rules: 5 automated, 1 manual

This machine

Where to run it: On the Linux machine, as root (sudo).

Scan command

tmaegis scan --target lxd

View rules

macOS

macos · 366 rules: 264 automated, 102 manual

This machine

Where to run it: On the Mac, in Terminal. Use sudo for the full scan.

Scan command

tmaegis scan --target macos

View rules

MariaDB

mariadb · 75 rules: 45 automated, 30 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

The checks use the mysql client with its defaults: put an administrative account in the [client] section of ~/.my.cnf of the user running the scan.

Scan command

tmaegis scan --target mariadb

View rules

MCP servers (AI tooling)

mcp-server · 55 rules: 24 automated, 31 manual

This machine

Where to run it: On the server that runs it, as root (sudo).

Before you scan
shell
export MCP_CONFIG=/etc/mcp/server.json   # the server's configuration file

Scan command

tmaegis scan --target mcp-server

View rules

Microsoft Defender Antivirus

defender · 59 rules: 59 automated, 0 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

Scan command

tmaegis scan --target defender

View rules

Microsoft Edge

edge · 148 rules: 148 automated, 0 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

Scan command

tmaegis scan --target edge

View rules

Microsoft Exchange Server

exchange · 61 rules: 58 automated, 3 manual

This machine

Where to run it: On the Windows server that runs it, in PowerShell as Administrator.

Scan command

tmaegis scan --target exchange

View rules

Microsoft IIS

iis · 55 rules: 50 automated, 5 manual

This machine

Where to run it: On the Windows server that runs it, in PowerShell as Administrator.

Scan command

tmaegis scan --target iis

View rules

Microsoft Office

office · 241 rules: 241 automated, 0 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

Scan command

tmaegis scan --target office

View rules

Microsoft SharePoint Server

sharepoint · 42 rules: 13 automated, 29 manual

This machine

Where to run it: On the Windows server that runs it, in PowerShell as Administrator.

Scan command

tmaegis scan --target sharepoint

View rules

Microsoft SQL Server

mssql · 97 rules: 74 automated, 23 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Scan command

tmaegis scan --target mssql

View rules

MongoDB

mongodb · 27 rules: 20 automated, 7 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Scan command

tmaegis scan --target mongodb

View rules

Mozilla Firefox

firefox · 57 rules: 57 automated, 0 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

Scan command

tmaegis scan --target firefox

View rules

MySQL

mysql · 79 rules: 47 automated, 32 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

The checks use the mysql client with its defaults: put an administrative account in the [client] section of ~/.my.cnf of the user running the scan.

Scan command

tmaegis scan --target mysql

View rules

NGINX

nginx · 46 rules: 34 automated, 12 manual

This machine

Where to run it: On the server that runs it, as root (sudo).

Scan command

tmaegis scan --target nginx

View rules

OceanBase

oceanbase · 42 rules: 23 automated, 19 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Before you scan
shell
export OB_CONN="-h127.0.0.1 -P2881 -uroot@sys -p<password>"

Scan command

tmaegis scan --target oceanbase

View rules

Oracle Database

oracle-db · 98 rules: 85 automated, 13 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Before you scan
shell
export ORACLE_HOME=<oracle-home>
export ORACLE_SID=<sid>

Scan command

tmaegis scan --target oracle-db

View rules

Oracle Solaris

solaris · 92 rules: 83 automated, 9 manual

This machine

Where to run it: On the AIX, Solaris or FreeBSD system, as root.

An experimental build for this system is in each release: compile-checked only, not yet run on real hardware. Try it on a test system first; if a release lacks it, build it from source with Go. Experimental downloads

Scan command

tmaegis scan --target solaris

View rules

PostgreSQL

postgres · 74 rules: 37 automated, 37 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Before you scan
shell
export PGUSER=postgres PGDATABASE=postgres   # the defaults

Scan command

tmaegis scan --target postgres

View rules

Redis

redis · 8 rules: 8 automated, 0 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Scan command

tmaegis scan --target redis

View rules

ROS (Robot Operating System)

ros · 228 rules: 203 automated, 25 manual

This machine

Where to run it: On the Linux machine, as root (sudo).

Scan command

tmaegis scan --target ros

View rules

Software supply chain

supply-chain · 124 rules: 12 automated, 112 manual

This machine

Where to run it: In a checkout of the repository, or as a step in your CI pipeline.

Before you scan
shell
cd <your-repository>
gh auth login   # only for the checks that read GitHub settings

Scan command

tmaegis scan --target supply-chain

View rules

TDSQL

tdsql · 106 rules: 55 automated, 51 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Before you scan
shell
export TDSQL_HOME=/data/tdsql   # the default

Scan command

tmaegis scan --target tdsql

View rules

Visual Studio Code

vscode · 6 rules: 5 automated, 1 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

Scan command

tmaegis scan --target vscode

View rules

VMware ESXi

vmware · 268 rules: 186 automated, 82 manual

This machine

Where to run it: Where esxcli can query the ESXi host.

The checks call esxcli. Where esxcli is not available, list the checks with --include-manual and review them by hand.

Commands and menus differ between versions: check your version's documentation.

Scan command

tmaegis scan --target vmware

View rules

Windows (desktop and server)

windows · 2,626 rules: 2,626 automated, 0 manual

This machine

Where to run it: On the Windows PC or server, in PowerShell as Administrator.

Scan command

tmaegis scan --target windows

View rules

YugabyteDB

yugabytedb · 54 rules: 31 automated, 23 manual

This machine

Where to run it: On the database server, as root or Administrator, with the database's own client on the PATH and an administrative database login.

Before you scan
shell
export PGHOST=127.0.0.1 PGPORT=5433 PGUSER=yugabyte   # the defaults

Scan command

tmaegis scan --target yugabytedb

View rules

Zoom

zoom · 177 rules: 2 automated, 175 manual

This machine

Where to run it: On each Windows PC the policy applies to, in PowerShell as Administrator. The checks read the policy settings that are in effect.

Scan command

tmaegis scan --target zoom

View rules

Arista EOS

arista-eos · 33 rules: 29 automated, 4 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
terminal length 0
show running-config

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target arista-eos --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target arista-eos --device-config samples/network/arista-eos/arista-eos-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target arista-eos --device-config samples\network\arista-eos\arista-eos-noncompliant.txt
View the sample files on GitHub

View rules

Check Point

checkpoint · 62 rules: 35 automated, 27 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
# in clish, on each gateway and management server
set clienv rows 0
show configuration

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target checkpoint --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target checkpoint --device-config samples/network/checkpoint/checkpoint-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target checkpoint --device-config samples\network\checkpoint\checkpoint-noncompliant.txt
View the sample files on GitHub

View rules

Cisco ASA

cisco-asa · 81 rules: 74 automated, 7 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
terminal pager 0
show running-config

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target cisco-asa --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target cisco-asa --device-config samples/network/cisco-asa/cisco-asa-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target cisco-asa --device-config samples\network\cisco-asa\cisco-asa-noncompliant.txt
View the sample files on GitHub

View rules

Cisco IOS

cisco-ios · 87 rules: 64 automated, 23 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
terminal length 0
show running-config

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target cisco-ios --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target cisco-ios --device-config samples/network/cisco-ios/cisco-ios-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target cisco-ios --device-config samples\network\cisco-ios\cisco-ios-noncompliant.txt
View the sample files on GitHub

View rules

Cisco IOS XR

cisco-iosxr · 53 rules: 47 automated, 6 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
terminal length 0
show running-config

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target cisco-iosxr --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target cisco-iosxr --device-config samples/network/cisco-iosxr/cisco-iosxr-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target cisco-iosxr --device-config samples\network\cisco-iosxr\cisco-iosxr-noncompliant.txt
View the sample files on GitHub

View rules

Cisco NX-OS

cisco-nxos · 65 rules: 38 automated, 27 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
terminal length 0
show running-config

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target cisco-nxos --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target cisco-nxos --device-config samples/network/cisco-nxos/cisco-nxos-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target cisco-nxos --device-config samples\network\cisco-nxos\cisco-nxos-noncompliant.txt
View the sample files on GitHub

View rules

Cisco Secure Firewall (FTD)

cisco-ftd · 48 rules: 4 automated, 44 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Most Cisco Secure Firewall settings are managed in the Management Center (FMC); those checks are on the checklist.

Export the configuration
device cli
show running-config   # on the FTD CLI (the > prompt)

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target cisco-ftd --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target cisco-ftd --device-config samples/network/cisco-ftd/cisco-ftd-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target cisco-ftd --device-config samples\network\cisco-ftd\cisco-ftd-noncompliant.txt
View the sample files on GitHub

View rules

Extreme SLX-OS

extreme-slx · 19 rules: 15 automated, 4 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
terminal length 0
show running-config

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target extreme-slx --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target extreme-slx --device-config samples/network/extreme-slx/extreme-slx-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target extreme-slx --device-config samples\network\extreme-slx\extreme-slx-noncompliant.txt
View the sample files on GitHub

View rules

F5 BIG-IP

f5-bigip · 30 rules: 24 automated, 6 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
shell
# in the BIG-IP advanced shell (bash)
for c in "auth password-policy" "auth source" "auth remote-user" "auth radius" "sys httpd" "sys sshd" "sys global-settings" "cli global-settings" "sys snmp" "net self"; do tmsh list $c all-properties; done > f5-bigip.txt
tmsh list sys ntp >> f5-bigip.txt
tmsh list sys syslog >> f5-bigip.txt

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target f5-bigip --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target f5-bigip --device-config samples/network/f5-bigip/f5-bigip-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target f5-bigip --device-config samples\network\f5-bigip\f5-bigip-noncompliant.txt
View the sample files on GitHub

View rules

Fortinet FortiGate

fortigate · 67 rules: 54 automated, 13 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
config global   # only on units with VDOMs enabled
show full-configuration

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target fortigate --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target fortigate --device-config samples/network/fortigate/fortigate-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target fortigate --device-config samples\network\fortigate\fortigate-noncompliant.txt
View the sample files on GitHub

View rules

Fortinet FortiSwitch

fortiswitch · 40 rules: 35 automated, 5 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
show full-configuration

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target fortiswitch --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target fortiswitch --device-config samples/network/fortiswitch/fortiswitch-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target fortiswitch --device-config samples\network\fortiswitch\fortiswitch-noncompliant.txt
View the sample files on GitHub

View rules

HPE Aruba CX

aruba-cx · 80 rules: 33 automated, 47 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
show running-config

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target aruba-cx --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target aruba-cx --device-config samples/network/aruba-cx/aruba-cx-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target aruba-cx --device-config samples\network\aruba-cx\aruba-cx-noncompliant.txt
View the sample files on GitHub

View rules

Juniper Junos

juniper-junos · 181 rules: 149 automated, 32 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
show configuration | display set | no-more

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target juniper-junos --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target juniper-junos --device-config samples/network/juniper-junos/juniper-junos-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target juniper-junos --device-config samples\network\juniper-junos\juniper-junos-noncompliant.txt
View the sample files on GitHub

View rules

OPNsense

opnsense · 29 rules: 15 automated, 14 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration

In the web interface: System > Configuration > Backups > Download configuration

shell
# or, from the OPNsense shell:
cat /conf/config.xml

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target opnsense --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target opnsense --device-config samples/network/opnsense/opnsense-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target opnsense --device-config samples\network\opnsense\opnsense-noncompliant.txt
View the sample files on GitHub

View rules

Palo Alto Networks

paloalto · 81 rules: 52 automated, 29 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration
device cli
set cli pager off
set cli config-output-format set
configure
show

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target paloalto --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target paloalto --device-config samples/network/paloalto/paloalto-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target paloalto --device-config samples\network\paloalto\paloalto-noncompliant.txt
View the sample files on GitHub

View rules

pfSense

pfsense · 37 rules: 21 automated, 16 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Export the configuration

In the web interface: Diagnostics > Backup & Restore > Download configuration as XML

shell
# or, from the pfSense shell:
cat /cf/conf/config.xml

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Scan command

tmaegis scan --target pfsense --device-config <file>
Try it now with a sample file

Every archive and the repository contain a compliant and a non-compliant example configuration. Run this in the folder you extracted:

./tmaegis scan --target pfsense --device-config samples/network/pfsense/pfsense-noncompliant.txt

On Windows:

.\tmaegis.exe scan --target pfsense --device-config samples\network\pfsense\pfsense-noncompliant.txt
View the sample files on GitHub

View rules

Pure Storage FlashArray

flasharray · 36 rules: 12 automated, 24 manual

Network device

Where to run it: On any computer that can reach the array's management address over SSH, to export the settings; then scan the file.

The checks read the Purity//FA CLI output in name=value form (--nvp). One file may hold the output of all the commands.

Export the configuration
shell
for c in "purearray list --ntp" "purepolicy password list" "purelog syslog list" "puresnmp list" "puresmtp list" "pureds list" "purealert watcher list"; do ssh pureuser@<array> "$c --nvp"; done > flasharray.txt

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Commands and menus differ between versions: check your version's documentation.

Scan command

tmaegis scan --target flasharray --device-config <file>

View rules

Sophos Firewall

sophos · 40 rules: 0 automated, 40 manual

Network device

Where to run it: On any computer. Copy the exported file there; TMAegis does not connect to the device.

Sophos Firewall has no plain-text configuration export, so most checks are reviewed in the web admin console.

Export the configuration

In the web interface: Backup & firmware > Import export > Export full configuration

Save the complete output as a text file (for example with your terminal's session log), copy it to the computer that runs TMAegis and put its path after --device-config.

Commands and menus differ between versions: check your version's documentation.

Scan command

tmaegis scan --target sophos --include-manual
Try it now with a sample file

The current rules for this system are checklist items, so the sample file only shows what an export looks like.

View the sample files on GitHub

View rules

Alibaba Cloud

alibaba · 86 rules: 34 automated, 52 manual

Cloud

Where to run it: On any computer with the provider's command-line tool installed and signed in.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
shell
aliyun configure

Scan command

tmaegis scan --target alibaba

View rules

Amazon Web Services

aws · 366 rules: 26 automated, 340 manual

Cloud

Where to run it: On any computer with the provider's command-line tool installed and signed in.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
shell
aws sso login --profile <profile>   # or aws configure
export AWS_PROFILE=<profile>
aws sts get-caller-identity

Scan command

tmaegis scan --target aws

View rules

GitHub

github · 120 rules: 31 automated, 89 manual

Cloud

Where to run it: On any computer with the provider's command-line tool installed and signed in.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
shell
gh auth login
export GH_ORG=<organization>

Scan command

tmaegis scan --target github

View rules

GitLab

gitlab · 122 rules: 31 automated, 91 manual

Cloud

Where to run it: On any computer with the provider's command-line tool installed and signed in.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
shell
glab auth login

Scan command

tmaegis scan --target gitlab

View rules

Google Cloud

gcp · 110 rules: 17 automated, 93 manual

Cloud

Where to run it: On any computer with the provider's command-line tool installed and signed in.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
shell
gcloud auth login
gcloud config set project <project-id>

Scan command

tmaegis scan --target gcp

View rules

Google Workspace

google-workspace · 97 rules: 3 automated, 94 manual

Cloud

Where to run it: On any computer. Most checks are for the admin console.

The automated checks read your domain's DNS records (SPF, DKIM, DMARC); the rest is a checklist for the Admin console.

Sign in first (read-only)
shell
export DOMAIN=example.com   # your primary Google Workspace domain

Scan command

tmaegis scan --target google-workspace

View rules

IBM Cloud

ibmcloud · 81 rules: 8 automated, 73 manual

Cloud

Where to run it: On any computer with the provider's command-line tool installed and signed in.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
shell
ibmcloud login --sso
ibmcloud plugin install vpc-infrastructure
ibmcloud target -r <region>

Scan command

tmaegis scan --target ibmcloud

View rules

Microsoft 365

m365 · 176 rules: 16 automated, 160 manual

Cloud

Where to run it: On a computer with PowerShell and the admin modules installed, signed in with a read-only admin role.

Sign in with an account that has a read-only admin role, such as Global Reader.

Sign in first (read-only)
powershell
Connect-MgGraph -Scopes Policy.Read.All,Directory.Read.All
Connect-ExchangeOnline

Commands and menus differ between versions: check your version's documentation.

Scan command

tmaegis scan --target m365

View rules

Microsoft Azure

azure · 359 rules: 19 automated, 340 manual

Cloud

Where to run it: On any computer with the provider's command-line tool installed and signed in.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
shell
az login
az account set --subscription <subscription-id>

Scan command

tmaegis scan --target azure

View rules

Microsoft Power Platform

power-platform · 22 rules: 5 automated, 17 manual

Cloud

Where to run it: On a computer with PowerShell and the admin modules installed, signed in with a read-only admin role.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
powershell
Install-Module Microsoft.PowerApps.Administration.PowerShell -Scope CurrentUser
Add-PowerAppsAccount
$env:PP_TENANT_ID = "<tenant-id>"

Commands and menus differ between versions: check your version's documentation.

Scan command

tmaegis scan --target power-platform

View rules

Oracle Cloud Infrastructure

oci · 55 rules: 46 automated, 9 manual

Cloud

Where to run it: On any computer with the provider's command-line tool installed and signed in.

Use a read-only role (for example a security-audit or reader role). TMAegis only reads; fixes are proposed and never applied to your account.

Sign in first (read-only)
shell
oci setup config   # or: oci session authenticate

Scan command

tmaegis scan --target oci

View rules

AKS Automatic

aks-automatic · 33 rules: 12 automated, 21 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
az login
az aks get-credentials --resource-group <resource-group> --name <cluster>
export AKS_RG=<resource-group> AKS_NAME=<cluster>

Scan command

tmaegis scan --target aks-automatic

View rules

Amazon EKS

eks · 47 rules: 28 automated, 19 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
aws sso login --profile <profile>
aws eks update-kubeconfig --region <region> --name <cluster> --profile <profile>
export AWS_PROFILE=<profile> EKS_CLUSTER=<cluster>

Scan command

tmaegis scan --target eks

View rules

Amazon EKS Auto Mode

eks-auto · 34 rules: 15 automated, 19 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
aws sso login --profile <profile>
aws eks update-kubeconfig --region <region> --name <cluster> --profile <profile>
export AWS_PROFILE=<profile> EKS_CLUSTER=<cluster>

Scan command

tmaegis scan --target eks-auto

View rules

Azure Kubernetes Service (AKS)

aks · 50 rules: 24 automated, 26 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
az login
az aks get-credentials --resource-group <resource-group> --name <cluster>
export AKS_RG=<resource-group> AKS_NAME=<cluster>

Scan command

tmaegis scan --target aks

View rules

GKE Autopilot

gke-autopilot · 29 rules: 13 automated, 16 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
gcloud auth login
gcloud container clusters get-credentials <cluster> --location <location> --project <project-id>
export GKE_CLUSTER=<cluster> GKE_LOCATION=<location> GKE_PROJECT=<project-id>

Scan command

tmaegis scan --target gke-autopilot

View rules

Google Kubernetes Engine (GKE)

gke · 54 rules: 33 automated, 21 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
gcloud auth login
gcloud container clusters get-credentials <cluster> --location <location> --project <project-id>
export GKE_CLUSTER=<cluster> GKE_LOCATION=<location> GKE_PROJECT=<project-id>

Scan command

tmaegis scan --target gke

View rules

Kubernetes

kubernetes · 134 rules: 74 automated, 60 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
kubectl config use-context <context>
kubectl auth can-i --list   # check that the role is read-only

Scan command

tmaegis scan --target kubernetes

View rules

OpenShift Virtualization

openshift-virt · 26 rules: 9 automated, 17 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
oc login --server=https://api.<cluster-domain>:6443
oc whoami

Scan command

tmaegis scan --target openshift-virt

View rules

Oracle Kubernetes Engine (OKE)

oke · 43 rules: 20 automated, 23 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
oci ce cluster create-kubeconfig --cluster-id <cluster-ocid> --file $HOME/.kube/config --region <region> --token-version 2.0.0
export OKE_CLUSTER_ID=<cluster-ocid>

Scan command

tmaegis scan --target oke

View rules

Red Hat OpenShift

openshift · 115 rules: 13 automated, 102 manual

Kubernetes

Where to run it: On any computer where kubectl reaches the cluster.

Connect kubectl to the cluster
shell
oc login --server=https://api.<cluster-domain>:6443
oc whoami

Scan command

tmaegis scan --target openshift

View rules

Apple iOS

ios · 106 rules: 0 automated, 106 manual

Checklist only

Where to run it: Nothing can be installed on the phone or tablet.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target ios --include-manual

View rules

Db2 for z/OS

db2-zos · 78 rules: 0 automated, 78 manual

Checklist only

Where to run it: Nothing runs on the mainframe or IBM i system itself.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target db2-zos --include-manual

View rules

Google Android

android · 47 rules: 1 automated, 46 manual

Checklist only

Where to run it: Nothing can be installed on the phone or tablet.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target android --include-manual

View rules

IBM CICS

cics · 8 rules: 0 automated, 8 manual

Checklist only

Where to run it: Nothing runs on the mainframe or IBM i system itself.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target cics --include-manual

View rules

IBM i

ibm-i · 117 rules: 0 automated, 117 manual

Checklist only

Where to run it: Nothing runs on the mainframe or IBM i system itself.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target ibm-i --include-manual

View rules

IBM Z (z/OS)

ibm-z · 235 rules: 0 automated, 235 manual

Checklist only

Where to run it: Nothing runs on the mainframe or IBM i system itself.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target ibm-z --include-manual

View rules

Intune: iOS/iPadOS

intune-ios · 94 rules: 0 automated, 94 manual

Checklist only

Where to run it: Nothing to install: these are settings in the Intune admin center.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target intune-ios --include-manual

View rules

Intune: macOS

intune-macos · 100 rules: 0 automated, 100 manual

Checklist only

Where to run it: Nothing to install: these are settings in the Intune admin center.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target intune-macos --include-manual

View rules

Network printers

printer · 50 rules: 0 automated, 50 manual

Checklist only

Where to run it: Nothing can be installed on a printer: the checks are for its web interface.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target printer --include-manual

View rules

Oracle Fusion Cloud (SaaS)

oracle-saas · 44 rules: 0 automated, 44 manual

Checklist only

Where to run it: On any computer. Most checks are for the admin console.

No agent can be installed on this system. The command prints the checklist; review each item in the vendor's console or on the device.

Scan command

tmaegis scan --target oracle-saas --include-manual

View rules

Components

Everything ships in the same archive. Use the parts you need.

Command line and local GUI

The tmaegis binary scans, fixes and rolls back. tmaegis gui opens the same engine in a window that listens only on your own machine and works offline.

shell
tmaegis scan --auto-detect
tmaegis gui

On Windows, double-click Start-TMAegis-GUI.cmd in the extracted folder to open the GUI.

Server dashboard

tmaegis-server collects the reports of many hosts in one place. Start it with Docker Compose from the source repository; scans send their report with --push-url.

shell
export TMAEGIS_SERVER_TOKEN=$(openssl rand -hex 24)
docker compose up -d
tmaegis scan --auto-detect --push-url http://localhost:8080

The tmaegis-server binary is also inside each release archive. Set TMAEGIS_SERVER_TOKEN before you start it.

Reports

HTML, XLSX and PDF reports are built in, next to SARIF, JSON and more: nine formats from one scan, with nothing extra to install.

shell
tmaegis scan --auto-detect --format html --output report.html
tmaegis scan --auto-detect --format xlsx --output report.xlsx
tmaegis scan --auto-detect --format pdf --output report.pdf

All report formats

Rule packs

Every archive contains the YAML rules in the rules folder. They are plain files you can read, compare and extend; point the scanner at another folder with --rules-dir.

shell
tmaegis rules export -o rules.json
tmaegis scan --rules-dir ./rules --target linux

Browse all rules · Rule format

What it hardens

16,927 rules for 96 platforms, from operating systems and databases to network devices and cloud. Browse them all on the Platforms page.

Browse all platforms

Verify and stay safe

Check every download against its SHA-256 before you run it. The hash is shown on each file card and listed in checksums.txt.

Windows (PowerShell)

powershell
Get-FileHash .\tmaegis_0.1.0_windows_amd64.zip -Algorithm SHA256
Select-String -Path .\checksums.txt -Pattern tmaegis_0.1.0_windows_amd64.zip

macOS

shell
shasum -a 256 tmaegis_0.1.0_darwin_arm64.tar.gz
grep tmaegis_0.1.0_darwin_arm64.tar.gz checksums.txt

Linux

shell
sha256sum -c checksums.txt --ignore-missing
sha256sum tmaegis_0.1.0_linux_amd64.tar.gz

FreeBSD, AIX and Solaris (experimental)

shell
# FreeBSD
sha256 tmaegis_0.1.0_freebsd_amd64.tar.gz
# Solaris
digest -a sha256 tmaegis_0.1.0_solaris_amd64.tar.gz
# AIX (or any system with OpenSSL)
openssl dgst -sha256 tmaegis_0.1.0_aix_ppc64.tar.gz

grep <file name> checksums.txt
  • Only trusted sources

    Download only from www.tmaegis.dev or from github.com/tmaegis/tmaegis/releases. This website does not host the files; every Download button goes to GitHub Releases.

  • Compare the hash

    If the SHA-256 of your file differs from the one shown here and in checksums.txt, delete the file and do not run it.

  • Not code-signed yet

    The binaries are not code-signed. Windows SmartScreen and macOS Gatekeeper may warn about them. That is expected, and the SHA-256 check is how you confirm the file is genuine.

  • Found a problem?

    Report vulnerabilities privately, not in a public issue. The security policy explains how.

  • Security policyOpen checksums.txt

System requirements

TMAegis is a single static binary. There is nothing to install on the machines you scan.

SystemProcessorNeeds
Windowsx64 (Intel, AMD) and ARM64Windows PowerShell 5.1 or newer for the rules that use PowerShell. Run as Administrator to apply fixes.
macOSApple silicon (ARM64) and Intel (x64)A current macOS release. Use sudo to apply fixes.
Linuxx64 (amd64) and ARM64 (aarch64)A 64-bit distribution; the binary is static and needs no libraries. Run as root: a scan without root reports the checks that need root as failed.
FreeBSD, AIX, Solaris (experimental)FreeBSD x64 and ARM64, AIX POWER (ppc64), Solaris x64; Linux on s390x and riscv64Compile-checked only, never run on real hardware. Run as root and test on a non-production system first.

Cloud, database and network-device checks run from any of these systems.

Release notes and earlier versions

v0.1.0

17 October 2026

Changelog

  • ff27ff290a33532905553bcef3907b84df1553f7 feat: TMAegis Core Engine, Multi-OS CIS Rule Catalog & Web Portal
  • 4b0c73c190b75a03f94e29ac281bef94e1f9334a release: TMAegis v0.1.0 - Autonomous CIS Hardening & Security Compliance Engine
Release page on GitHub

Earlier versions

There are no earlier versions yet.

All releases on GitHub

Licence and trademark

TMAegis is free and open source under the Mozilla Public License 2.0. You can use it at work and for your clients, and read, change and share the source code.

The names TMAegis and tmaegis and the TM Cyber-Shield logo are trademarks of the project founders and are not covered by the licence. The trademark policy explains what you may do without asking.