app skely

A simple command line tool for using and managing skeleton projects

7 releases

0.1.7 Apr 5, 2023
0.1.6 Mar 18, 2023

#309 in Command line utilities

24 downloads per month

MIT license

508 lines

Skely 💀

A simple command line tool for managing and using skeleton projects

DISCLAIMER: Skely was created for personal use. Contributions are appreciated, but this is a personal project at heart, so don't take it to seriously.

Update: Skely is most likely done with development. It works for what I need it to do, so unless something comes up that I need it to do, I'm probably done with this project. Thanks all!


Skely is very simple. All it does is copy a given template file or directory from ~.config/sk to a specified directory.


To install Skely run

cargo install skely



As of right now, Skely's configuration is very simple. It is one file at ~/.config/config.toml. The default configuration looks like this:

# Skely config
editor = ""
placeholder = "PLACEHOLDER"

As you many have guessed, the editor option is the editor you would like Skely to use. The string should contain the proper command to call the editor. For example, if I wanted to use Neovim, I wouldn't use editor = "neovim", I would use editor = "nvim so that Skely can properly execute it. Placeholder is a bit more complicated. Placeholder is the string that you want to be replaced in all the skeleton files with your project's name. To disable this option simply leave it blank as ""

Configuring New Skeletons

To configure a new skeleton, you can either configure it manually by creating it in the ~/.config/skeletons directory as a directory or file under the name you would like to identify it by, or you can run the sk add foo command to open ~/.config/skeletons/foo.sk in your preferred text editor. Interactive directory creation is currently under development.



We have a skeleton structured like this:

├─ c/
│  ├─ src/
│  │  ├─ main.c
│  ├─ CMakeLists.txt

The pattern for creating a new project using a template is

sk new <ID> <PATH>

To create a new project using this template in directory foo you would use the command

sk new c foo

Single File

We have a template for a CMakeLists.txt:

├─ cmake.sk

To copy this file to our project as CMakeLists.txt you would use the command

sk new cmake CMakeLists.txt

If you were to run

sk new cmake .

It would copy cmake.sk to your current project with the name cmake.sk


To remove a configured skeleton foo, you would run

sk remove foo

Pretty simple


Equally as simple, to list configured skeletons, run

sk list


If you've read this far, thank you for taking interest in my software, it is much appreciated :).


~114K SLoC