NEWSDante is a free watchman for your own machines. See what is new in the library.Library →
Dante

Install Dante and every command: the complete guide

Exactly what to click, what to type and what you should see. Every command has a Copy button. You do not have to understand anything first.

ON THIS PAGEThe short versionWhat you needStep 1: Node.jsStep 2: open a terminalStep 3: start DanteWhat happens on the first startSummon him with one wordUpdate to the newest versionEvery command you can sayCommand-line optionsCheck a serverHe learns your serversLet him patrol on a schedulePacks, license, shopThe bait watchWhat touches the networkIf something does not workRemove it

The short version

If Node.js is already on your computer, open a terminal, paste this line and press Enter:

npx dante-watch@latest

The first time, npm may ask Ok to proceed? (y). Type y and press Enter. Dante opens and waits. Then say what you want in a normal sentence, for example check my computer. The rest of this page explains each step slowly.

What you need

Nothing you type in a terminal can break anything by itself. Dante only reads. Before he changes anything he shows the exact command and waits for your yes.

Step 1: Node.js

First check whether you already have it. Open a terminal (Step 2 shows how) and paste:

node -v
v22.12.0

If you see a version number that starts with 18 or higher (like v22.12.0 above), skip to Step 3. If you see command not found or a number below 18, install Node.js:

MacOpen nodejs.org, download the LTS version and click through the installer. Then close the terminal and open a new one.
WindowsOpen nodejs.org, download the LTS version and click through the installer. Then close PowerShell and open a new one.
LinuxInstall it with your package manager, for example on Debian or Ubuntu: sudo apt install nodejs npm. Check with node -v. Below 18? Use the installer from nodejs.org or nvm instead.

Step 2: open a terminal

MacPress ⌘ + Space, type Terminal, press Enter.
WindowsPress the Win key, type PowerShell, press Enter.
LinuxPress Ctrl + Alt + T, or search your apps for Terminal.

A window with a blinking cursor opens. That is all. To paste a copied line: ⌘+V on Mac, right-click or Ctrl+V in PowerShell, Ctrl+Shift+V on most Linux terminals. Then press Enter.

Step 3: start Dante

Copy this line, paste it into the terminal and press Enter:

npx dante-watch@latest

@latest makes sure you get the newest version and not an old copy that npx kept from last time.

You may see a question like this. It is normal:

Need to install the following packages:
dante-watch@0.1.26
Ok to proceed? (y)

Type y and press Enter. After a few seconds Dante opens:

  ___     _    _  _  _____  ___
 |   \   /_\  | \| ||_   _|| __|
 | |) | / _ \ | .` |  | |  | _|
 |___/ /_/ \_\|_|\_|  |_|  |___|
  I am Dante. I walk through hell and bring back the map.
  ● awake · I watch over localhost. Say help when you need the words.
user ❯

The line starting with user ❯ is where you talk. Type a sentence and press Enter. The version number in the example differs from yours; that is fine.

What happens on the first start

  1. Language. Dante answers in German, English or Spanish, in the language you write. To fix it: language en, language de or language es. He remembers.
  2. "May I look around?" He asks before he reads anything. If you answer yes, he reads the names of your project folders and the hosts in your SSH config (no file contents) and writes them into ~/.dante/user.md, a plain text file you can open and edit. If you answer no, he does not look, and everything else still works.
  3. He offers a check. Say check my computer (or just yes when he offers). Each result carries the real line it came from. If he cannot see something, he says unknown, never "safe".

Summon him with one word

With npx you type the long line every time. To start Dante by typing only dante, install him once on your computer:

npm install -g dante-watch

From then on, open any terminal and type:

dante

dante-watch works too. The first line needs permission to install globally; if npm answers with EACCES, do not use sudo: keep using npx dante-watch@latest, or install Node.js through nvm.

Careful: npx dante is a different, unrelated package. Do not type it. The one-word command dante only exists after npm install -g dante-watch. To use npx, the name is always npx dante-watch@latest.

Update to the newest version

With npx, npx dante-watch@latest already fetches the newest. If you installed him globally:

npm install -g dante-watch@latest

Check which version runs:

dante --version

or npx dante-watch@latest --version. The newest version number is also shown on npm. This updates the program; the knowledge packs are updated separately with update inside Dante (see Packs).

Every command you can say

Type these inside Dante, at the user ❯ line. You can also use normal sentences, in German, English or Spanish: check my computer, what is my system?, who else has a key to my server?, check my server root@host, show me the report. The words below are the plain ones; each language works in each language.

EnglishDeutschEspañolWhat happens
checkprüfrevisaLook at this machine for known holes. Read only; nothing is changed.
server <target>server <ziel>server <destino>Check a server you own, e.g. server root@203.0.113.7. Needs an SSH login that already works from your terminal.
key <path>key <pfad>key <ruta>Tell him which SSH key file to use for server, e.g. key ~/.ssh/id_ed25519.
fixfixfixAfter a finding: shows the plan and the exact commands. Nothing runs until you answer yes.
demodemodemoA harmless practice hole: see the whole loop (finding, plan, yes/no, fix, proof) without any risk.
mapkartemapaWhat Dante knows about this target: the proof lines so far.
look aroundumschauenmirarHe gets to know you: reads folder names and SSH hosts on this machine (never file contents) and writes ~/.dante/user.md.
deeptiefprofundoDeep run: searches your project folders for keys and secrets in code and configs.
modelsmodellemodelosChecks AI models and agents on this machine (needs the Hugging Face pack).
armscharfarmarSchedule him to patrol 4 times a day. Asks for your yes first and shows what it sets up.
disarmabschaltendesarmarTakes the schedule out again.
watchwachschutzvigilanciaThe bait watch: lays bait files, mails you if someone uses them. First month free.
updateaktualisieractualizaFetches the newest rules pack: one call, shown first, after your yes.
pack <file>pack <datei>pack <archivo>Installs a pack you downloaded, with no network call at all.
license <token>lizenz <token>licencia <token>Saves the token you get on the shop page.
buykaufencomprarLooks at the public pack catalog (the command is shown first) and offers to open the shop page.
language <de|en|es>sprache <de|en|es>idioma <de|en|es>Sets the language. It is remembered.
helphilfeayudaShows this list inside Dante.
byeraussalirPuts Dante to sleep.

Two more ideas worth knowing: report (bericht, informe) shows what he checked and found, writes it as a PDF to ~/.dante/reports/ and offers a copy in your Downloads folder. keys in a sentence ("who still has a key to my server?") lists the SSH keys that give access, never the keys themselves.

Command-line options

These go after the command in the terminal, before Dante opens (useful for scripts and automatic runs):

OptionWhat it does
npx dante-watch@latestStarts Dante and waits for what you say.
--ssh user@host [--key /path]Checks a server you own, then exits.
--fixOn a finding: show the plan and close it after your yes.
--demoThe harmless practice loop.
--patrolOne patrol (what the schedule starts): checks, writes the diary, changes nothing.
--deepOne deep run over your project folders (what the weekly schedule starts).
--jsonMachine-readable output.
--sarifSARIF 2.1.0 output for GitHub Code Scanning.
-y, --yesDo not ask back (for automatic runs and cron).
--version, -vWhich version is running.
--help, -hThe option list.

Example: a server check without opening the chat:

npx dante-watch@latest --ssh root@203.0.113.7 --key ~/.ssh/id_ed25519

Check a server

Dante checks servers you own. What you need: a login that already works from your terminal, for example ssh root@203.0.113.7 without a password prompt (or with your key). Then, inside Dante:

server root@203.0.113.7
key ~/.ssh/id_ed25519

Replace the address and the key file with yours. The first line points him at the server; the second says which key to use if your SSH does not pick it by itself. He then checks the SSH settings, readable secrets, files anyone can write, web shells and the PHP version, and every result shows the real line from that server. The server section of Is my server hacked? explains what a read-only check can and cannot prove.

He learns your servers

From version 0.1.25 on, Dante does not just show a list of servers, he remembers them. Check your version with dante --version; update with npm install -g dante-watch@latest (or just use npx dante-watch@latest).

  1. He looks, read only. When he visits a server he reads which services run, which ports listen, which containers and which websites are there and which database versions are installed. He keeps what he saw with the day, for example "nginx, PostgreSQL 15.5 (seen 2026-10-28)". He says what runs, never what it is for.
  2. You tell him what it is for. Say it in a normal sentence, and he writes it down as your words:
the second one is the till
der zweite ist die kasse
el segundo es la caja

(Use any word that fits: db is the database, web is the shop.) Questions ("is the second one the till?") and states ("web is down") are not saved as roles.

  1. You can ask him. He answers from what he keeps, and shows what is your word and what he saw:
what is the second one
was ist der zweite
qué es el segundo
  1. Tell him which key to use. Say use ~/.ssh/id_ed25519 for the first one (replace the file). Dante tries the key once with a harmless test login that changes nothing on the server, and writes it down as checked only if the login worked. If not, he tells you why and changes nothing: a broken key never replaces one that works. This is the only place where Dante tries something on a server because you said so, and never as a scan.
  2. Follow-up questions work. After he shows a list, which others? (welche noch?) shows the rest and what are these servers? (was sind diese server?) explains what the entries are.

Everything is kept in ~/.dante/user.md, a plain file you can read and edit. Each server there has separate fields for the system, your role word, what he saw (with the date) and whether the key is checked, so the three sources never get mixed.

Let him patrol on a schedule

Say arm. He explains what he would set up (a patrol 4 times a day, a deep run once a week), shows it and waits for your yes. He changes nothing without that. To remove it: say disarm. Each run is written into a diary in ~/.dante/.

Packs, license, shop

The program and all built-in checks are free and work offline. Packs are signed data files with fresh knowledge. The newest costs 4 EUR, older ones 0.80 EUR each, the first one is free, no subscription. How it works:

  1. Say buy. Dante shows the one command that looks at the public catalog and, after your yes, offers to open the shop page.
  2. Pay on the shop page. You receive a token.
  3. Say license YOUR-TOKEN to save it, then update to fetch the pack. Or download a pack and install it without any network call: pack ~/Downloads/pack-4.json.

More on prices and what each pack contains: Install, packs and what they cost.

The bait watch

Say watch. Dante lays fake secret files (a bait .env, mcp.json, .npmrc or AWS file) where attackers look first. If someone uses a bait, you get a mail. First month free, then 1.99 EUR a month. Dante shows the one call that registers him and runs it only after your yes. Details and limits: Bait files that warn you.

What touches the network

Dante makes no network calls on his own. Exactly three things can reach out, and each one starts only after you answer yes to the command Dante prints first: update (fetch the newest pack), buy (look at the public catalog) and the bait watch. Everything else runs on your machine, and the source is open: github.

If something does not work

What you seeWhat to do
command not found: npxNode.js is not installed, or the terminal was open during the install. Do Step 1, then close the terminal and open a new one.
Node version below 18Update Node.js: download the LTS version from nodejs.org.
Ok to proceed? (y)Normal. Type y, press Enter.
Windows: npx.ps1 cannot be loaded because running scripts is disabledType npx.cmd dante-watch@latest instead. It does the same without changing any setting.
An old Dante startsnpx dante-watch@latest with @latest. If you installed globally: npm install -g dante-watch@latest.
The one-word dante says command not foundInstall globally first: npm install -g dante-watch, then open a new terminal.
EACCES on a global installNo sudo. Use npx dante-watch@latest or install Node.js through nvm.
server cannot connectCheck ssh root@203.0.113.7 works in the same terminal first. Dante uses the same login. He tells you the reason (wrong key, changed host key, no answer) instead of guessing.

Remove it

Inside Dante, say disarm first if you set a schedule. Then:

npm uninstall -g dante-watch

(only needed if you installed globally) and delete the folder ~/.dante. Dante keeps all his files there, so he is gone.

Install Dante
npx dante-watch@latest
Full install guide with every command →