Are you wondering what KAPI is? Well, if I tried to enumerate every single feature it offers, this README would weigh at least 10MB... But to keep it short: KAPI is an interactive TUI that scaffolds and configures projects based entirely on your preferences. You choose what you want, and KAPI does it for you!
- Available Environments: Out-of-the-box support for JavaScript/TypeScript and PHP, automatically handling their specific package managers (
npm,bun,composer, etc.). - Package Browser: Real-time dependency search (npm, packagist) directly from your terminal, complete with GitHub stars and popularity metrics.
- Git & CI Workflows: Automated
git init, smart.gitignoregeneration, remote repository creation, and tailored CI/CD workflows (GitHub Actions / GitLab CI). - Persistent Configuration: Save your defaults and tokens via the CLI for faster scaffolding next time.
Homebrew (macOS / Linux)
brew install slouowzee/kapi/kapiScoop (Windows)
scoop bucket add slouowzee https://github.com/slouowzee/scoop-bucket.git
scoop install kapiAUR (Arch Linux)
yay -S kapi-binOr via script Download and install the latest binary automatically:
curl -fsSL https://raw.githubusercontent.com/slouowzee/kapi/main/install.sh | bashRun kapi in your terminal and follow the prompts:
kapiUp/Downork/j: Move up and down listsLeft/Rightorh/l: Toggle options on the same lineSpace: Select or unselect a packageEnter: Confirm and move to the next stepEsc: Go back a stepq: Quit
You can use KAPI commands to save your preferences for future runs:
# Add a GitHub token to access git automated features on KAPI
kapi config github.token "ghp_your_token_here"
# Set a default JS package manager
kapi config package.manager "bun"
# Read a saved config value
kapi config github.tokenThe GitHub token and the default package manager can also be changed from the Settings screen. A GITHUB_TOKEN environment variable takes precedence over the saved token.
Pin a package to a version so KAPI installs it every time you pick it:
# Choose the version interactively
kapi freeze zod
# Or give it directly
kapi freeze laravel/framework@11.0.0
# List frozen packages / unfreeze one
kapi freeze
kapi unfreeze zodKAPI can cd into the project it just created. The install script sets this up for you; with Homebrew, Scoop or AUR, add it to your shell configuration:
# bash / zsh (~/.bashrc or ~/.zshrc)
eval "$(kapi shell-init zsh)"
# fish (~/.config/fish/config.fish)
kapi shell-init fish | sourceFor Nushell and PowerShell, run kapi shell-init --help.
A massive thank you to everyone who helps make KAPI better!
