Observatory notifications and locally approved equipment control in your chat channels.
Chatstronomy monitors your N.I.N.A. rigs and posts the imaging updates you permit, including captures, autofocus runs, guiding graphs, and status changes. Discord slash commands can check on the rig; hardware control is available only when you approve it in N.I.N.A.
Before pairing a rig, review the hosted Hub privacy policy and hosted Hub terms.
The software supports N.I.N.A. 3.2+ on Windows, runs on standalone Windows and Linux backends, and is licensed under Apache-2.0.
The plugin reads N.I.N.A. natively, renders guider and autofocus graphs, retains selected safety and equipment state, reports sequence and image failures, sends the event families you choose, and exposes approved bot commands. No N.I.N.A. web server or polling setup is required.
Event switches control what leaves N.I.N.A. Disabled event families, including previously buffered events, are never sent to the hosted Hub or local bot; events captured while disabled cannot be released later. There is no background state-reconstruction exception. Disabling images also blocks image history, previews, thumbnails, and automatic image delivery. Other permitted equipment-status snapshots and explicitly requested non-image slash-command data remain available; raw N.I.N.A. logs are shared only when you enable individual log levels.
Once N.I.N.A. accepts a locally permitted command, its terminal failure is always returned as part of that command exchange. Optional event switches cannot hide that outcome.
Most standard event categories, image previews, and N.I.N.A. popup notifications start enabled. Review or disable them before pairing with the Hub or starting a local runtime. Meaningful weather changes, high-wind alerts, slew start/end diagnostics, and rotator move start/end diagnostics have separate controls and all start disabled. Raw logs, observatory-location sharing, the hardware-control master switch, and every individual hardware permission also start disabled.
Pair the plugin with Chatstronomy Hub for the simplest setup. Each N.I.N.A. machine connects outbound over authenticated WSS, so one centralized Discord bot can serve rigs on different systems without opening observatory ports or copying chat credentials to every computer. The hosted Hub supports Discord; Matrix is available through local mode.
The Hub processes account and observatory information. Read its privacy policy and terms before connecting.
You can run the integration entirely on the observatory computer using a Discord webhook, a custom Discord application, or a Matrix account on an HTTPS homeserver. The plugin starts its signed, release-pinned Chatstronomy runtime in the background and supplies N.I.N.A. data directly.
https://raw.githubusercontent.com/theatrus/chatstronomy-nina-plugin/main/registry.
N.I.N.A. supports more than one plugin repository, so adding the
development repository does not replace the official one. It serves
the current tagged package without a separate beta channel. Both the
release-pinned runtime and Chatstronomy.dll are signed and
verified before publication. See the
plugin repository
for current installation details.
These notifications provide enough information to track the session without opening a remote desktop.
When image delivery is enabled, captures are posted as JPEG previews up to 1,024 pixels wide with metadata such as the filter, exposure duration, and target. Image-save and camera-download failures are also reported. A configurable cooldown can prevent a fast sequence from flooding the channel.
When their event categories are enabled, each autofocus curve is built from the report matching that completed run, and guiding data is sent as a graph. Native N.I.N.A. Star HFR and Contrast Detection modes are supported. Hocus Focus reports add available fit quality, accepted-star range, region, validation, and algorithm details while falling back to the standard N.I.N.A. view when those fields are absent.
Status updates include durable safety state; Sequence and Target Scheduler targets; camera cooling and warming; built-in timed, altitude, Moon-altitude, Sun-altitude, horizon, and safety waits; and supported Sequencer+ condition and manual waits. The bot reports sequence-item failures and presents clean, failed, stopped, cancelled, or otherwise ended sequence outcomes without treating every finish event as success. It can also report optional mount-slew and rotator-motion diagnostics, centering and plate-solve results, dome/shutter activity, flat-panel cover, light, and brightness changes, weather and switch-device connection state, N.I.N.A. notifications, and optional logs.
Timed sequence waits and Target Scheduler waits show their scheduled end time and remaining duration when available. Discord displays times in your local timezone with a live relative countdown; Matrix shows UTC times and the remaining duration when the message was sent. Target Scheduler's end time is an estimate: reaching it does not mean the wait has finished.
Slew and rotator diagnostics have separate switches and start disabled. They report observed starts, ends, and available positions. Slew updates can include the requested target and RA/Dec; altitude and azimuth require observatory-location sharing. Rotator updates include available sky or mechanical angles. If a short move is only detected after it began, it is marked Recovered after motion began, without a measured duration. Recovered mount starts omit altitude and azimuth. An ended update means motion was reported idle; it does not confirm settling or success.
Weather reporting uses two independent, default-off controls. Meaningful weather changes groups changed readings into rate-limited updates that can include numeric temperature, dew-point, humidity, pressure, cloud, rain, wind, sky, and seeing readings. High-wind alerts compares wind speed or gusts with your threshold in meters per second. Its records contain only wind speed, gust, threshold, and alert state, and report both alert and recovery. An active alert may be resent after reconnecting or changing the threshold to keep status synchronized without another chat alert. Weather-station names and device or driver identifiers are omitted.
Weather notifications are informational, not a safety system. Sensor readings or chat posts may be delayed, missing, or inaccurate, so keep independent weather monitoring and hardware interlocks in place. The plugin does not capture switch values or LiveStack data. Enabled popup notifications and opt-in raw N.I.N.A. logs remain unstructured text and may contain operational details. A dedicated Observatory and flat panel event switch controls dome/shutter and flat-panel activity; connection events use Equipment connections.
You can pair multiple N.I.N.A. instances on different systems with one centrally managed Discord bot, and then route each telescope's permitted updates to its selected Discord channels. Matrix rooms are available only with a local runtime.
You can query the current status of your equipment and, when individually approved in N.I.N.A., issue commands directly from chat.
Use these subcommands under /chatstronomy in Discord. Read-only commands do not require hardware-control permission; image queries still require image delivery to be enabled. Matrix and Discord webhooks provide notifications, not slash commands.
With plugin 0.1.0.28 or newer, autofocus chooses its path automatically: it runs when N.I.N.A. is idle, or waits for the next light exposure boundary during an advanced sequence. Filter changes and target moves use the same approach. Add the matching Chatstronomy trigger to the target's enclosing instruction set to allow queued commands. For Target Scheduler's standard workflow, put the triggers directly on the Target Scheduler container. The simple sequencer and parallel instruction sets do not support queued commands. Requests are cancelled if their target, sequence run, profile, or local permission changes.
Target moves use the target configured inside N.I.N.A., never coordinates
supplied through chat. When idle, exactly one advanced-sequence target
must be loaded. Choose slew, slew and center, or slew, center and rotate
to restore the target's position and framing. Cooling and warming
remain available while sequencing. Parking, homing, unparking, guiding
changes, and exposure abortion require an idle sequence; use
stop-sequence first, and
start-sequence to start the loaded advanced sequence when idle.
A queued or accepted reply does not mean the operation has completed.
See the command and trigger setup guide
for the required triggers and local permissions.
Hardware control and every individual equipment command are disabled by default. Monitoring and read-only queries remain available. To permit a command, turn on both the local hardware-control master switch and that command's individual permission in the N.I.N.A. profile. Enabling the master switch alone grants no commands.
Skipping sequence validation requires separate local approval. Hub or Discord permissions can add further restrictions; neither can enable the master switch or grant an individual equipment permission. Review the hosted Hub terms or self-hosted terms for the risks of managing physical equipment remotely.
Observatory coordinates and location-derived mount readings are hidden unless location sharing is enabled in N.I.N.A. Hardware device identifiers remain redacted even when location sharing is on.
This option pairs multiple N.I.N.A. installations with a centrally managed Discord bot. The observatory computers make outbound encrypted WebSocket connections, which eliminates the need to expose N.I.N.A. or local ports to the internet. Hosted delivery does not support Matrix. Open the Hub to begin.
You can configure the N.I.N.A. plugin to run in Direct mode using a local Discord webhook, a custom Discord application, or a Matrix account. This approach does not route observatory data through Chatstronomy-operated servers; your selected Discord or Matrix service still receives posted content. The plugin manages the local background runtime automatically.
Chatstronomy is licensed under the Apache License 2.0 and developed publicly at github.com/theatrus/chatstronomy. It is independent software and has no affiliation with N.I.N.A., Discord, or Matrix. The project logo represents the integration of observatory systems with chat platforms.