A thin client for sbt
Switch branches/tags
Nothing to show
Clone or download
Latest commit 26b6c8a Jul 4, 2018
Failed to load latest commit information.
doc/images Add a readme Jun 29, 2018
src Fix tests Jul 4, 2018
.gitignore Messing around with LSP Jun 25, 2018
Cargo.lock hacky hacky Jun 26, 2018
Cargo.toml hacky hacky Jun 26, 2018
README.md Add note about sbt needing to be on PATH Jul 2, 2018



A thin client for sbt.

Inspired by Eugene's PR, I decided to write a thin client without the JVM startup overhead.

How to install

There are a couple of ways to install sbt-client:

  1. If you are on a Mac and you trust me enough to download a random binary file when I tell you to, you can download the binary from the GitHub release.

  2. If you don't mind installing Rust, you can download the latest version by installing from source.

Installing from source

  1. Install Rust (on a Mac this is simply brew install rust)

  2. Check that ~/.cargo/bin is on your $PATH.

  3. Clone this repo.

  4. Run cargo install. This will create ~/.cargo/bin/sbt-client.

How to use

In the root directory of an sbt project, run sbt-client <some sbt command>.

e.g. sbt-client clean.

If sbt is not running, it will automatically start it for you and keep it running in the background. So the next time you run sbt-client it will be much more snappy.

Note: this assumes that sbt is on your $PATH. To start the server, sbt-client simply runs sbt with no arguments.


sbt-client clean starting an sbt server:

Starting an sbt server

sbt-client clean again, now that the server is running:

sbt-client clean

sbt-client compile displaying compilation errors:

Compilation errors


$ time sbt-client clean
[info] Processing
[success] Done
sbt-client clean  0.00s user 0.00s system 5% cpu 0.075 total


  • Developed and tested on MacOS
  • Should also work on Linux
  • Will NOT work on Windows