YAKET - Yet Another Knack Exploration Tool ... except I called it knack-sleuth ... and it's Command-Line / for the terminal

I had two problems and two wishes, which led me to build a new tool.

Problems:

  • My client wanted to remove some unused data objects and screens from an app I am working on. (It is an inherited app, with over 50 objects and over 250 scenes. I built maybe 7 objects and 10 scenes, so most of this is not my work, so I cannot rely on my memory.)
  • This same client wants to fundamentally shift the data architecture, so how can I analyze the dependencies, coupling of objects, and sanity check the ripple effect of evolving the architecture of the data model.

Wishes:

  • A command line tool. I still view myself as a backend engineer, so terminal and IDE’s always feel better to me than drag and drop builders. So I’d wanted a CLI to help.
  • Text Output, either to share with my team or to feed into Chats/AI Agents

**The Result:**
I built a new tool in Python called knack-sleuth GitHub and PyPi links:

It does loads of stuff. Lists Objects, allows to search for objects or fields, does impact analysis, app summary, and more… details in the readme. None of this groundbreaking, but it does it from the command-line / terminal.

Sadly, none of my clients wanted to share their data, so I cannot provide any sample output. If someone does’t mind public use of their metadata, DM me with an Application ID and I’ll update with sample outputs (but I’ll mask the App ID)

If you are a python programmer and you have uv installed, these are my favorite commands

uvx knack-sleuth --help


List all the objects in the database, with record count, field count, connections and coupling counts (afferent and efferent)

uvx knack-sleuth list-objects --app-id <Application ID>

Find the impact of changing a field field_116 including links to the builder pages for scenes where that field is used. include the –format markdown if a human is gonna read it…


uvx knack-sleuth impact-analysis field_116  --app-id <Application ID>  --format markdown                        

Impact analysis also works on Object Name or Object ID.

Get a summary of the application (this is still an experiment, but it can spit out markdown for humans or JSON for machines. I’m dabbling with feeding this JSON summary into AI’s for collaboration on making changes to my knack apps… jury is still out…)
include the –format markdown if a human is gonna read it…

uvx knack-sleuth app-summary  --app-id <Application ID> --format markdown   

Much more information in the README, so checkout the GitHub Page above.

If you have any issues, feel free to report them on GitHub Issues.

Hope this tools helps. LMK if you have any questions.

Cheers,
Tyler

References

There are some great tools already in the forum (two I found), if wanted web-based exploration of your knack.app.

Related forum threads

3 Likes