I wanted to share a project I’ve been working on: TrueNASScale-TUI.
With the release of TrueNAS SCALE 25.04 (Electric Eel) and the move away from the legacy REST API for middleware interactions, I felt there was a need for a lightweight, terminal-native dashboard that leverages the new JSON-RPC 2.0 WebSocket architecture.
Built with Python and the Textual framework, this TUI provides a low-latency “cockpit” view of your server without needing to open the web GUI.
Current Features:
Real-time Dashboard: Live system info (hostname, version, uptime) and hardware stats.
Storage Management: At-a-glance health for ZFS pools (including scrub status/triggers).
Service Control: Monitor and toggle system services (start/stop/restart) directly.
Modern Stack: Built for Python 3.13+ and uses uv for easy deployment.
It’s still early days, but the core architecture is solid and future-proof for the upcoming middleware changes. I’d love for some fellow homelabbers to test it out and let me know what features you’d like to see next!
Just a question, probably i’m missing something obvious… But how Is possible to use It without enabling developer mode, to install the needed dependency?
My 2 cents: i really would have preferred a containerized version
That may be accurate for 25.04, I can’t remember. In 25.10 or later you would click the username menu in the top right and select My API Keys from the dropdown.
in 25.10 it is under MY API keys when I was developing it I was using 25.04 that is why document says so I will update it soon. thanks for pointing it out.
Similar problem here, it prompts for credentials if I try to clone https://github.com/SoumyaPurani/scale-cli.git
But if I check out https://github.com/SoumyaPurani/TrueNASScale-TUI (which has a subdirectory of src/scale-cli) it works.
But uv run scale-cli fails with the following output on my Ubuntu 25.10 system:
Traceback (most recent call last):
File "/home/garyp/git/TrueNASScale-TUI/.venv/bin/scale-cli", line 10, in <module>
sys.exit(main())
~~~~^^
File "/home/garyp/git/TrueNASScale-TUI/src/scale_cli/__init__.py", line 27, in main
config = load_config()
File "/home/garyp/git/TrueNASScale-TUI/src/scale_cli/config.py", line 56, in load_config
server = data.get("server", {})
^^^^
UnboundLocalError: cannot access local variable 'data' where it is not associated with a value
I am not prompted for an API key, and no interactive setup form appears.
edit
It also fails with the same errors if I specify the server and API key on the command line.
Hello I will look into it and I gave a thought about it that lots of things can happen due to version mismatch and everything so my plan is to containerize the application using docker. Thank you for your feedback.
That is exciting @awalkerix . For me I wasn’t able to find any so I decided to make a small project by myself. And mine is still in very very early stages.
No problem. I appreciate the enthusiasm. We’re not quite where we’re ready to open up the work to the wider community, but we’ll put some thought how the community can be involved in it overall.
That said, it’s really beneficial to get yourself familiar with the API / API client because there are so many areas I think where people could have awesome community projects that improve integration and help with workflows. Your WIP stuff looks great.
Hello all, I have gone through your comments thank you for your support and reviews I have fixed what has been discussed here it is running on my windows machine as well as wsl2. Please feel free to reach out. I have also renamed the whole project and updated documentation so the whole truenasscale-tui vs scale-cli naming confusion can go away. Thank you.