Skip to content
This repository has been archived by the owner on Nov 14, 2023. It is now read-only.


Repository files navigation


Travis Build Status AppVeyor Build status License

Skeleton is a management tool for project prototypes. Prototypes are defined in language specific toml files. Skeleton can create directories, touch files, execute predefined commands and download a .gitignore list from

Skeleton is written in pure Rust because I wanted to learn this language using a small hobby project.


To install skeleton, you need the Rust package manager cargo.

cargo install skeleton

To install the most current version from master:

git clone
cd skeleton
cargo install


Language specific configuration must be placed in $HOME/.skeleton and are referenced by their name without the .toml extension.

Configuration format

order = ['mkdir', 'touch', 'exec', 'gitignore']
mkdir = ['src', 'test']
touch = ['']
exec = ['cargo init']
gitignore = ['rust', 'vim']
include = ['global']

Every configuration setting is optional. The order setting is used to customize the execution order. The default order is mkdir, gitignore, touch, exec.

Includes are executed first and in the provided order, followed by the selected configuration.


Skeleton 0.3.3
Valentin B. <>
Skeleton project manager

    skeleton --lang <LANG> [SUBCOMMAND]

    -h, --help       Prints help information
    -V, --version    Prints version information

    -l, --lang <LANG>    Set language configuration

    help    Prints this message or the help of the given subcommand(s)
    init    initialize existing project
    new     create new project

So to initialize a new Rust project named test_project one would execute skeleton -l rust new test_project. Therefore a configuration file $HOME/.skeleton/rust.toml must exist.

Shell completions

Shell completions for Bash, Fish, Zsh and PowerShell can be found in the completions folder.

Install Zsh completion

You can put the Zsh completion file _skeleton in any directory (I use $HOME/.zsh/completions). Then you need to add this path to $fpath in your .zshrc:

fpath=($HOME/.zsh/completions $fpath)

To rebuild the completion cache you might need to execute the following commands:

rm -f .zcompdump