| Crates.io | tkit |
| lib.rs | tkit |
| version | 0.1.2 |
| created_at | 2025-09-26 01:44:21.192704+00 |
| updated_at | 2025-11-16 01:33:52.63634+00 |
| description | A customizable tool manager that works like a package manager with customizable install scripts |
| homepage | https://github.com/ThembinkosiThemba/tkit |
| repository | https://github.com/ThembinkosiThemba/tkit |
| max_upload_size | |
| id | 1855292 |
| size | 125,577 |
A Rust CLI tool that works like a package manager with customizable install scripts. Similar to make, it allows you to define complex installation, removal, and update procedures for any tool through simple YAML configuration.
cargo install tkit
Or build from source:
Linux users: Install required dependencies first:
sudo apt update
sudo apt install pkg-config build-essential libssl-dev
Then build:
git clone https://github.com/ThembinkosiThemba/tkit
cd tkit
cargo build --release
sudo cp target/release/tkit /usr/local/bin/
TKIT includes a comprehensive setup wizard that guides you through the initial configuration:
tkit init
The setup wizard will help you:
If you prefer manual setup:
# Initialize with example tools
tkit init
# List available tools
tkit list
# Install a tool
tkit install node
# Add a custom tool
tkit add mytool
Start fresh by clearing all configuration:
tkit reset
Warning: This permanently deletes all tools, settings, and sync configuration.
tkit install <tool> - Install a tool using its defined install commandstkit remove <tool> - Remove a tool using its defined remove commandstkit update <tool> - Update a tool using its defined update commandstkit run <tool> - Run a tool using its defined run commandstkit list - List all available tools and their statustkit add <tool> - Add a new tool configuration interactivelytkit delete <tool> - Delete a tool configurationtkit examples - Show examples of tool configurationstkit init - Interactive setup wizard to initialize configurationtkit reset - Reset configuration (clear all tools and settings)tkit sync setup <repo> - Setup GitHub integration for syncing configstkit sync create-repo <name> - Create a new GitHub repositorytkit sync update-token - Update GitHub personal access tokentkit sync push - Push local config to GitHubtkit sync pull - Pull config from GitHubtkit sync status - Show sync statusTools are configured in ~/.config/tkit/config.yaml. Each tool can have:
tools:
node:
name: node
description: Node.js runtime
install_commands:
- curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
- sudo apt-get install -y nodejs
remove_commands:
- sudo apt-get remove -y nodejs
update_commands:
- sudo apt-get update
- sudo apt-get upgrade -y nodejs
run_commands:
- node --version
- npm --version
installed: false
rust:
name: rust
description: Rust programming language
install_commands:
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- source ~/.cargo/env
remove_commands:
- rustup self uninstall -y
update_commands:
- rustup update
run_commands:
- rustc --version
- cargo --version
installed: false
TKIT supports syncing your tool configurations with GitHub for backup and sharing across machines.
Option A: Create repository automatically
# Create and configure a new repository
tkit sync create-repo my-tkit-configs --private
Option B: Use existing repository
# Configure sync with existing repo
tkit sync setup username/existing-repo --token ghp_xxxxx
Option C: Manual setup
repo permissions# Setup with token as argument
tkit sync setup username/my-tkit-configs --token ghp_xxxxx
# Or setup interactively (token input hidden)
tkit sync setup username/my-tkit-configs
# Push your config to GitHub
tkit sync push
# Pull config from GitHub
tkit sync pull
# Update your GitHub token
tkit sync update-token
# Or provide token directly
tkit sync update-token --token ghp_xxxxx
# Check sync status (includes auto-sync status)
tkit sync status
TKIT can automatically sync your configuration to GitHub whenever you make changes:
tkit sync pushAuto-sync is configured during the initial setup wizard or can be enabled by editing your configuration file.
Setting up a new machine:
# 1. Initialize tkit
tkit init
# 2. Configure GitHub sync
tkit sync setup username/my-configs --token ghp_xxxxx
# 3. Pull your existing configuration
tkit sync pull
# 4. Install tools
tkit install docker
tkit install node
Get inspired with curated tool configurations:
# Show all examples
tkit examples
# Categories include:
# - Development Tools (VS Code, Git, Docker)
# - Programming Languages (Python, Rust, Go, Node.js)
# - Utilities (curl commands, system info)
# - Web Development (nginx, databases)
# - DevOps Tools (kubectl, terraform)
tkit add kubernetes
# Follow prompts to add install/remove/update/run commands
You can add any custom tool or command:
# Add a custom tool for VS Code
tkit add vscode
# Description: Visual Studio Code editor
# Install commands:
# 1: wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
# 2: sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
# 3: sudo apt-get update && sudo apt-get install code
# Remove commands:
# 1: sudo apt-get remove code
# Update commands:
# 1: sudo apt-get update && sudo apt-get upgrade code
# Run commands:
# 1: code
# Add a utility tool
tkit add curl-example
# Description: Curl example website
# Run commands:
# 1: curl -s https://httpbin.org/json
# Run a tool's defined commands
tkit run vscode # Opens VS Code
tkit run curl-example # Executes curl command
tkit run docker # Shows Docker version and running containers
When adding a tool like Docker, you might define:
Install commands:
curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.shsudo usermod -aG docker $USERrm get-docker.shRemove commands:
sudo apt-get remove -y docker docker-engine docker.io containerd runcsudo rm -rf /var/lib/dockerUpdate commands:
sudo apt-get updatesudo apt-get upgrade -y docker-ceCargo.tomlcargo build --release && cargo testcargo publishMIT License - see LICENSE file for details.