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

**URL:** <https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881>\
**Category:** Ignition\
**Tags:** ignition83, scripting\
**Created:** [February 10, 2026, 5:53pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881 "2026-02-10T17:53:16Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![florian](https://avatars.discourse-cdn.com/v4/letter/f/898d66/32.png) [@florian](https://forum.inductiveautomation.com/u/florian)\
**Post date:** [February 10, 2026, 5:53pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/1 "2026-02-10T17:53:16Z")

</div>

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

```python
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+](https://github.com/floriansmeyers/SFLOW-Ignition-CLI)

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

 ![Screenshot 2026-02-10 at 18.54.32](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/0/3043aff08f3ed8a94a2b1ec4f3cd1e1a81146a76.png)

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 10, 2026, 6:22pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/2 "2026-02-10T18:22:49Z")

</div>

Well, Claude created, but...

> [@florian](#):
>
> generic CRUD for any resource type

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.

> [@florian](#):
>
> **Config** — named gateway profiles (switch between dev/staging/prod with `--gateway`)

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

---

<div class="post-metadata">

**Author:** ![florian](https://avatars.discourse-cdn.com/v4/letter/f/898d66/32.png) [@florian](https://forum.inductiveautomation.com/u/florian)\
**Post date:** [February 10, 2026, 6:36pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/3 "2026-02-10T18:36:26Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![florian](https://avatars.discourse-cdn.com/v4/letter/f/898d66/32.png) [@florian](https://forum.inductiveautomation.com/u/florian)\
**Post date:** [February 19, 2026, 2:24pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/5 "2026-02-19T14:24:38Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![r123](https://avatars.discourse-cdn.com/v4/letter/r/838e76/32.png) [@r123](https://forum.inductiveautomation.com/u/r123)\
**Post date:** [March 7, 2026, 7:48pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/6 "2026-03-07T19:48:43Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![florian](https://avatars.discourse-cdn.com/v4/letter/f/898d66/32.png) [@florian](https://forum.inductiveautomation.com/u/florian)\
**Post date:** [March 7, 2026, 8:03pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/7 "2026-03-07T20:03:51Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![r123](https://avatars.discourse-cdn.com/v4/letter/r/838e76/32.png) [@r123](https://forum.inductiveautomation.com/u/r123)\
**Post date:** [March 7, 2026, 9:12pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/8 "2026-03-07T21:12:50Z")

</div>

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)`

---

<div class="post-metadata">

**Author:** ![r123](https://avatars.discourse-cdn.com/v4/letter/r/838e76/32.png) [@r123](https://forum.inductiveautomation.com/u/r123)\
**Post date:** [March 7, 2026, 9:27pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/9 "2026-03-07T21:27:54Z")

</div>

> [@florian](#):
>
> Be aware that the CLI has a lot of possibilities & access to your installation.

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

---

<div class="post-metadata">

**Author:** ![Noah\_Burnette](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/noah_burnette/32/83777_2.png) [@Noah\_Burnette](https://forum.inductiveautomation.com/u/Noah_Burnette)\
**Post date:** [March 10, 2026, 7:34pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/10 "2026-03-10T19:34:41Z")

</div>

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

> `pip install -e ".[dev]"`

Why is this the preferred method for installing? Why not recommend installing via the [package manager](https://pypi.org/project/ignition-cli/)?

> 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](https://github.com/floriansmeyers/SFLOW-Ignition-CLI?tab=readme-ov-file#scenarios) has dead links and you committed your `tags-backup.json` 🙂

Hope this helps!

---

<div class="post-metadata">

**Author:** ![florian](https://avatars.discourse-cdn.com/v4/letter/f/898d66/32.png) [@florian](https://forum.inductiveautomation.com/u/florian)\
**Post date:** [March 10, 2026, 9:23pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/11 "2026-03-10T21:23:22Z")

</div>

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](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

---

<div class="post-metadata">

**Author:** ![florian](https://avatars.discourse-cdn.com/v4/letter/f/898d66/32.png) [@florian](https://forum.inductiveautomation.com/u/florian)\
**Post date:** [March 15, 2026, 3:47pm UTC](https://forum.inductiveautomation.com/t/open-source-cli-for-the-ignition-8-3-rest-api-ignition-cli/113881/12 "2026-03-15T15:47:16Z")

</div>

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!
