Skip to content
Command-line driven ticket management in Scala 3
Branch: master
Clone or download
Latest commit 8472f97 Nov 27, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
project Updated readme Nov 23, 2019
src Curly braces, be gone! Nov 27, 2019
.gitignore Updated readme Nov 23, 2019
LICENSE Initial commit Sep 25, 2019 Update Nov 27, 2019
build.sbt Updated readme Nov 23, 2019

Command-line driven ticket management in Scala 3

Ting is a small project I wrote to explore Scala 3 features in combination with GraalVM native image generation.

I hope that this project can be helpful to anyone that wants to explore Scala 3 and Graal AOT.


Ting is a command-line driven, file-based, ticket management system.

A Ting project is initialized in the current folder. It creates a base folder (.ting) and three sub-folders, one for each of the available ticket states.

  • When you add a new ticket, it's added to the Todo folder.
  • When you start a ticket, it's moved to the Current folder.
  • When you complete a ticket, it's moved to the Done folder.

A ticket template (default a YAML file packaged with Ting) is added to each tickets created.

If you want to use a different YAML template file, replace the .template file in the .ting base folder.

The name

The name 'Ting' comes from an old Swedish/Scandinavian word for a meeting to resolve common issues.


Launch VS Code using Dotty LSP in the project directory.

sbt launchIDE

More information about Dotty IDE support

Ting is intended to be built using Graal native-image using Graal 19.3.


The output is located in ./target/graalvm-native-image/ting

Using Ting

Configuration of Ting

Ting stores a small configuration file the first time its executed. The configuration path:


The configuration file currently contains the name of the editor used when editing tickets.


get ticket <id>                               - Display a ticket
get tickets <todo | current | done> [-o]      - Display list of tickets, optionally print the content of the ticket.
add ticket <title>                            - Adds a new ticket.
start ticket <id>                             - Starts ticket progress by moving it from 'todo' to 'current'
edit ticket <id>                              - Edit a ticket using the pre-configured editor.
complete ticket <id>                          - Completes a ticket by moving it from 'current' to 'done'
restart ticket <id>                           - Restarts a ticket by moving it from 'done' to 'current'
init project                                  - Initialize a new project in the current folder.
You can’t perform that action at this time.