0.2.0 • Public • Published

    A starter project to build command-line tools in Kotlin Multiplatform

    Contains a re-implementation of a real world CLI tool: git-standup



    You can install using one of the options listed below

    Source Command
    Node npm install -g kotlin-cli-starter
    Installer curl -L https://raw.githubusercontent.com/jmfayard/kotlin-cli-starter/main/installer.sh | sudo sh
    Tests ./gradlew allTests
    Kotlin All Platforms Run ./gradlew allRun
    Kotlin JVM Run ./gradlew run
    Kotlin Native Run ./gradlew install then $ git standup
    Kotlin Node.JS Run ./gradlew jsNodeRun


    Being able to write your own command-line tools is a great skill to have. Automate all the things!

    You can write the CLI tools in Kotlin and reap the benefits of using

    • a modern programming language
    • modern IDE support
    • modern practices such as unit testing and continuous integration
    • leverage Kotlin multiplatform libraries
    • run your code on the JVM and benefit from a wealth of Java libraries
    • or build a native executable, which starts very fast and can be deployed on a computer without the JVM

    My strong opinion - weakly held - is that there are only two good kind of Bash scripts:

    • the ones that are five lines long or less
    • the ones that are written and maintained by others

    Work in progress

    We want to support Windows, publish on Homebrew and simplify support of shell completion.

    Look at the issues https://github.com/jmfayard/kotlin-cli-starter/issues

    What the template contains

    The template


    The template reimplements git-standup

    The template reimplements git-standup so that you can learn and find inspiration from a real world example.

    Simply run it in and it will give you the output from the last working day

    Open a directory having multiple repositories and run

    $ ./gradlew install
    $ git standup

    git standup

    This will show you all your commits since the last working day in all the repositories inside.

    There is auto-completion to see the options


    git standup --help
    Usage: git-standup [OPTIONS]
      Recall what you did on the last working day ..or be nosy and find what
      someone else did.
      --generate-completion [bash|zsh|fish]
      -a, --author TEXT                Specify author to restrict search to
      -b, --branch TEXT                Specify branch to restrict search to
                                       (unset: all branches, "$remote/$branch" to
                                       include fetches)
      [... and much more options....]
    Examples: git-standup -a "John Doe" -w "MON-FRI" -m 3


    So are you ready to write your own command-line tool?

    Have you an idea of what you want to write yet?

    You can find some inspiration in 15 Command Line Tools which Spark Joy in Your Terminal

    Then click on Use this GitHub template

    There are comments starting with CUSTOMIZE_ME in all places you need to customize

    Find them with Edit > File > Find in Files

    Built with kotlin-cli-starter

    Have you used the template to build something? Please advertise it here 🙏🏻


    npm i kotlin-cli-starter

    DownloadsWeekly Downloads






    Unpacked Size

    17.3 MB

    Total Files


    Last publish


    • jmfayard