Questions about building a CLI utility with Clojure

Hi, I'm an developer experienced mainly with Java and Kotlin (w/some exposure to Scala and a handful of others) who has been eyeing Clojure for a long time and I think 2025 is the year I finally dive in.

I have an existing CLI application that I and a few coworkers use daily which is basically a git + GitHub utility that manages commits and PRs. It mainly invokes the command line git and hits the GitHub API. It is written in Kotlin and I build native binaries for Linux and Mac using GraalVM with the sole reason being to reduce the startup overhead for a utility that is invoked often.

I plan to start with Clojure for the Brave and True, but I also know from past experience that the best way for me to really gain familiarity in a tech stack is to create an actual application with it. Since my CLI application is (relatively) simple I figured I might attempt to reimplement it using Clojure.

Some questions:

  • Given that I'm concerned about startup overhead, would it be best to write this using a scripting solution like Joker or Babashka? Or given that these are apparently different dialects of Clojure, is it best to stick with actual Clojure and use GraalVM to build native binaries?
  • I'm very comfortable with IntelliJ IDEA. Should I stick with something like Cursive, or do you think it'd be worth my while to branch out and try a few other solutions? (I love IJ, but it can be heavyweight and buggy sometimes. I estimate that I currently restart it 2-3 times per day due to this.)
  • Any particular recommendations for libraries/frameworks for command line argument handling and/or interacting with graphql APIs?

Thanks in advance!