5 releases (stable)

1.1.2 Feb 26, 2024
1.1.1 Apr 29, 2023
1.1.0 Feb 28, 2023
1.0.0 Oct 16, 2022
0.1.3 Jul 4, 2022

#46 in Audio




Kibank is a command line application for listing, extracting and creating bank files used by Kilohearts products like Phase Plant, Snap Heap and Multipass as well as any Snap In.

This application was developed independently by Sheldon Young. Kibank is not a Kilohearts product, please do not contact them for support.



Binaries are available for several platforms from GitHub releases.

From crates.io

To install this application from crates.io ensure Rust is available then run:

$ cargo install kibank

From Source

To install this application from source ensure git and Rust are available then run:

$ git clone https://github.com/softdev.ca/kibank
$ cd kibank 
$ cargo build --release
$ cp target/release/kibank /your/dest/path/


List the contents of a bank:

$ kibank list MyBank.bank

View bank details:

$ kibank info MyBank.bank

Extract a bank to the current directory:

$ kibank extract MyBank.bank

Extract a bank to a designated directory:

$ kibank extract -d output_directory MyBank.bank

Creating a new bank

To create a new bank give the names of the files and directories to include as arguments. Only files that are recognized as compatible are included in the bank.

$ kibank create MyBank.bank your_files_and_directories

Include a file named background.png or background.jpg to set the background image used for the bank.

To create a new bank with additional metadata:

$ kibank create --author "Your Name" --name "My Bank" --description "Weird and wonderful presets" MyNewBank.bank presets samples/*.wav

To create a new bank by supplying the metadata directly include a file in the bank named index.json with contents in this format:

  "name": "My Bank",
  "author": "Your Name",
  "description": "My weird and wonderful presets"

Getting Help

Additional information about how to use kibank is available with the --help option:

$ kibank --help
kibank 0.1.2
Sheldon Young <sheldon@softdev.ca>
Tool for Kilohearts banks


    -h, --help       Print help information
    -v, --verbose
    -V, --version    Print version information

    create     Create a new bank [aliases: c]
    extract    Extract the contents of a bank [aliases: x]
    help       Print this message or the help of the given subcommand(s)
    info       Display the details of a bank [aliases: i]
    list       Display the contents of a bank [aliases: l]

Each subcommand like create, extract, info and list also have a --help option. For example:

$ kibank create --help
Create a new bank

    kibank create [OPTIONS] <BANK_FILE> <IN_FILES>...

    <BANK_FILE>      File name of new bank
    <IN_FILES>...    Files and directories to add to the bank

    -a, --author <author>              Creator of the new bank
    -d, --description <description>    Overview of the new bank
    -h, --help                         Print help information
    -n, --name <name>                  Title of the new bank

Compared with Kilohearts Bank Maker

Bank Maker by Kilohearts is the official application for creating banks. The differences are that Bank Maker:

  • Has a graphical user interface
  • Supports project files that can be opened and edited
  • Can directly modify the description and author in each preset
  • Allows an extra subdirectory to be designated for each file

Kibank is a command line application. It has a more direct workflow for those comfortable with the command line and is much easier to automate.


The functionality powering this application is available as a library to reuse in your own Rust applications. The kibank crate on crates.io can be added to your Cargo.toml:

kibank = { version = "0", default-features = false }


If you have any problems with or questions about this project, please contact us through by creating a GitHub issue.


You are invited to contribute to new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.

Before you start to code, we recommend discussing your plans through a GitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.

The copyrights of contributions to this project are retained by their contributors. No copyright assignment is required to contribute to this project.


Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


~135K SLoC