> Section: [9. Nagios compatibility](https://jaque.sh/docs/nagios-compat/overview.md)
> Next: nagios-compat/exec-plugins
> Index: https://jaque.sh/llms.txt


jaque does not ask a Nagios estate to migrate in a weekend, or at all. The
plugins already installed keep executing, the scripts and dashboards
already writing to the command file keep writing, the consoles already
reading Livestatus keep reading, and an existing `nagios.cfg` tree compiles
to native config instead of being retyped by hand. Four surfaces carry that
promise; each is documented on its own page, and this page is the map
between them and the semantics -- soft/hard states, acknowledgements,
downtimes -- that make keeping them worthwhile in the first place.

Status: the importer, section 2.4 below, is implemented but has never run
against a real third-party Nagios config -- see [Status](https://jaque.sh/docs/project/status.md)
for the full evidence table before trusting anything it emits.

## 1. The compatibility contract

Point jaque at an existing Nagios plugin set and config tree, get the same
operational picture out of the tools already reading that estate today
(Thruk, NagVis), and only then decide -- on your own schedule -- whether to
adopt jaque's own dashboard, CUE config, or notification model. None of
that decision is required to start; every surface below works without it.

## 2. Four surfaces

| Surface | Carries forward |
|---|---|
| [Exec plugins](https://jaque.sh/docs/nagios-compat/exec-plugins.md) | Any script speaking the exit-code protocol, unmodified, forever. |
| [FIFO external commands](https://jaque.sh/docs/nagios-compat/fifo-external-commands.md) | The wire format existing tooling already writes to. |
| [Livestatus](https://jaque.sh/docs/nagios-compat/livestatus.md) | The read protocol Thruk, NagVis and Checkmk already speak, so they point at jaque without a config change. |
| [Importer](https://jaque.sh/docs/nagios-compat/importer.md) | A Nagios config tree compiled to native CUE, with a report of what translated and what did not. |

Each surface carries forward not just the wire format but the semantics
behind it -- soft/hard states, acks, downtimes -- the behavior Nagios-class
tooling actually expects, not a compatible-looking shell around something
that behaves differently underneath.

## 3. What this is not

jaque never executes a legacy Nagios config at runtime. Every surface above
is either a permanent protocol adapter (exec plugins, FIFO, Livestatus) or
a one-time compiler pass (the importer). There is no legacy mode that reads
`nagios.cfg` directly and runs it; the config that runs is always jaque's
own CUE, whether written by hand or emitted by the importer.
