Open-source CLI for the Ignition 8.3 REST API — ignition-cli

Hey everyone,

With Ignition 8.3 shipping a full REST API, I wanted a proper CLI tool for the operations I kept doing through the web UI or curl scripts. Nothing like that existed, so I built ignition-cli; an open-source Python CLI that wraps the 8.3+ REST API.

What it does:

  • Gateway — status, info, backup, restore, modules, logs
  • Projects — list, show, create, delete, export, import, diff between gateways, watch & sync
  • Tags — browse (recursive tree), read, write, export, import, list providers
  • Devices — list, show, status
  • Resources — generic CRUD for JSON-based resources.
  • Raw API — GET/POST/PUT/DELETE any endpoint, discover endpoints from the OpenAPI spec, download the spec
  • Output — table, JSON, YAML, CSV
ignition-cli config add dev --url https://gateway:8043 --token "keyId:secretKey"
ignition-cli gateway status
ignition-cli project list
ignition-cli tag browse --recursive
ignition-cli project diff MyProject --target-gateway prod
ignition-cli api discover --filter tag

Built with Python (Typer + httpx + Pydantic), MIT licensed, CI/CD friendly.

GitHub: GitHub - floriansmeyers/SFLOW-Ignition-CLI: CLI-Tool for Inductive Automation Ignition 8.3.3+

I'd love feedback; what workflows are painful for you right now that a CLI could help with?

3 Likes

Well, Claude created, but...

Not really. Have you actually tried? What you've got might handle the 80% case with just a plain config.json data file, but definitely won't handle anything more interesting, like themes/fonts/icons, images in image management, CSV files attached to drivers, etc, etc.

I don't see any API level handling for deployment modes, which would be more interesting I think than just swapping between gateway instances.

4 Likes

Hello Paul,

To be honest: no.

Currently mainly focused on trying to get my claude-code to work as easy as possible (using Bash) with my Ignition gateway instead of needing to cURL everything.

So; that one is definitely not battle-tested.

Hi Paul,

Thanks for your feedback a while ago. When still experimenting with the capabilities of AI Agents with the CLI I added some new functionality and tried to address some of the feedback regarding the configs (files, fonts, CSV, ... etc) and the deployment modes.

Both should be working and are integrated.

Open for any other additional feedback from your end.

Best regards,
Florian

Is it safe to install Python and ignition-cli on the same server as the Ignition Gateway running a Perspective application?

You could. But I mostly use it from my development environment.

Be aware that the CLI has a lot of possibilities & access to your installation.

Never mind my token was incomplete so I'm able to connect to it on 8088 with the config test command anyway.
_______________________
I tried installing Python and the CLI on a dev server and pointing to the gateway. I think I need to enable SSL to get to 8084 port but if I create a self signed certificate that doesn't work and if I try to go the regular 8088 it also seems to fail because I'm then not connecting over a secure HTTP connection.

I even tried disabling the check but that doesn't work either:
C:\Windows\system32>ignition-cli gateway status
Warning: TLS certificate verification is disabled
Error: Cannot connect to gateway at ``https://X.X.X.X:8043``: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)

I just wanted to try the tag import/export CSV.

1 Like

Thanks for sharing! I realize this tool was written with AI but since this was posted on the forum I have some questions :grinning_face:

pip install -e ".[dev]"

Why is this the preferred method for installing? Why not recommend installing via the package manager?

Tag read and write are non-standard endpoints requiring a WebDev module or custom gateway extension.

Any reason why you included the tag read and write command in the CLI when it's up to the user to implement? It would make sense if you provided the user the required implementation and a command that they could run instead.

Also this section has dead links and you committed your tags-backup.json :slightly_smiling_face:

Hope this helps!

Hello,

Good points. Thanks.

The tag read and write slipped through for me as I did have my own custom project installed that exposes these endpoints for my Claude instance. (
https://sflow.be/insights/posts/ignition-claude-connector.html)

I’ll see if I can add the project so you can easily import it on your gateway.

Florian

Hi Noah,

Small update; all your feedback should be addressed in v0.4.1 I just pushed.

  • Install method: now recommends the pip install instead of the dev leftover. Thanks.
  • Tag Read/Write: I included the contrib/mcp-connector.zip, a pre-built Ignition project that contains all the endpoints you need to get this working. (Tag read/write, browse, history, alarms, DB and script endpoints). After install, manual or using the CLI, all the cli-commands work without any custom implementation work.
  • Dead links & Tag-Backup: Has been addressed and removed.

Thanks for your feedback!