#project-template #management #cli

app tohum

CLI tool to initialize new projects from pre-written templates

6 releases (3 breaking)

Uses new Rust 2024

new 0.3.1 Sep 14, 2025
0.3.0 Jul 16, 2025
0.2.0 Jul 15, 2025
0.1.0 Jul 13, 2025
0.0.1 May 25, 2025

#256 in Command line utilities

Download history 36/week @ 2025-05-19 78/week @ 2025-05-26 3/week @ 2025-06-02 1/week @ 2025-06-16 146/week @ 2025-07-07 355/week @ 2025-07-14 21/week @ 2025-07-21 1/week @ 2025-07-28

473 downloads per month

MIT license

175KB
657 lines

tohum logo

tohum

A CLI tool for provisioning projects from templates

Crates.io Version GitHub License Issues GitHub contributors StandWithPalestine

meme

"tohum" (/toˈhuːm/, which means "seed" in Turkish) is a CLI tool that you can use to initialize your new projects from a pre-defined templates that you've chosen. You can also implement your own templates to extend the functionality.

⚠️ WARNING ⚠️

tohum is in its early stage of development, expect breaking changes.

Installation

Dependencies

cargo

Currently tohum is only published on cargo registry which means you can simply use cargo to install it:

cargo install tohum

NixOS

Since it is too early, we haven't attempt to add tohum to nixpkgs but there is a flake defined in the root of the repository which allow you to run, build or include tohum in your own flakes or system configuration.

Build from source

Another option (actually this is not super different from installing from cargo) is building from the source code. For this option you must have Rust toolchain. You can install it by simply using rustup.

git clone https://github.com/mkaramuk/tohum.git && cd tohum
cargo build --release
sudo ./install.sh # This installs the binary to `/usr/local/bin/tohum`

Quickstart

"Store" is the concept that includes all the available templates that can be used with tohum. It is a simple directory that contains some templates and a store.json file which includes the metadata about the Store. tohum currently only supports using the default Store which lives in this repository (check the templates directory).

Let's list the all the templates from the default Store:

$ tohum store list

📦 Available templates from Store https://raw.githubusercontent.com/mkaramuk/tohum/main/templates/store.json:

  📝 go/cli
     Go CLI application template with basic setup.

  📝 node/cli/ts
     Node.js project TypeScript included. This template uses tsup as the bundler.

  📝 node/react
     React project with TypeScript and Vite setup. This template uses tsup as the bundler.

Now we know what are the available templates that we can use. Pick one and initialize a new project. For example:

$ tohum init node/cli/ts my-super-cli-project
🎉 Project 'my-super-cli-project' successfully initialized!
📝 Template: node/cli/ts
📁 Location: my-super-cli-project

Congratulations! You've provisioned your first project using tohum!

Building templates

TODO: Write me!

Contributing

We are open for all type of contributions including translations, adding and maintaining templates, feature implementations and bug fixings.

Dependencies

~15–32MB
~477K SLoC