One command to set up your entire developer environment. Interactive CLI installer with smart detection, official package sources, and AI-powered error fixing.
npx devkit-setup- Why DevKit
- Quick Start
- Supported Tools
- How It Works
- After Installation
- Project Structure
- Roadmap
- Contributing
- License
Every developer setting up a new machine faces the same problem — hours spent installing tools one by one, each from a different website, each with different instructions. A wrong command, a deprecated repo, a missing dependency, and you're debugging your environment before you've written a single line of code.
DevKit solves that. One command, pick your tools from an interactive menu, and walk away. Every installer uses the official source for that tool. No outdated PPAs, no third-party mirrors, no guesswork.
Coming in v3.0: A built-in AI assistant that watches your install output, catches errors as they happen, explains what went wrong, and suggests the exact fix — live in the terminal.
npx devkit-setupNode.js 18+ is the only requirement. Works on WSL 2, native Linux, and macOS.
npm install -g devkit-setup
devkitcurl -fsSL https://raw.githubusercontent.com/AnkushUjawane/DevKit/main/install.sh | bash| # | Tool | Installs | Source |
|---|---|---|---|
| 1 | Docker | Docker Engine, CLI, Containerd, Compose plugin | docker.com apt repo |
| 2 | Python 3 | python3, pip3, venv | Ubuntu apt |
| 3 | Node.js | Node.js LTS + npm | NodeSource apt repo |
| 4 | Git | Latest stable | Ubuntu apt |
| 5 | Go | Latest stable binary | go.dev official |
| 6 | Rust | rustc + cargo | rustup.rs |
| 7 | VS Code CLI | code command + tunnel support |
Microsoft official |
| 8 | kubectl + Helm | kubectl v1.30, Helm v3 | k8s.io + Helm apt repos |
Every tool is installed from its official source only — no third-party mirrors.
When you run devkit, an interactive menu appears. Navigate with arrow keys, toggle tools with numbers or Space, then press I to install.
Tools already on your system are detected automatically and shown as (installed) — they will be skipped.
____ _ _ _
| _ \ _____ _| | _(_) |_
| | | |/ _ \ \ / / |/ / | __|
| |_| | __/\ V /| <| | |_
|____/ \___| \_/ |_|\_\_|\__|
Development Environment Setup
↑↓ navigate · Space/number toggle · A=All · N=None · I=Install · Q=Quit
> [*] 1. Docker Engine + Compose
[ ] 2. Python 3 + pip (installed)
[*] 3. Node.js LTS + npm
[ ] 4. Git (installed)
[*] 5. Go (latest)
[*] 6. Rust (via rustup)
[ ] 7. VS Code CLI (installed)
[*] 8. kubectl + Helm
Already on your system:
Python 3 + pip · Git · VS Code CLI
5 tools selected — press I to install
Installing 5 tools on wsl (apt)
⠋ Docker Engine + Compose
Adding Docker official GPG key...
Setting up repository...
✔ Go (latest)
✔ Rust (via rustup)
o kubectl + Helm (waiting)
╭─────────────────────────────╮
│ Installation Complete │
│ │
│ ✔ 5 installed │
│ ⊘ 3 skipped │
│ │
│ Run source ~/.bashrc │
│ to pick up Go/Rust PATH │
╰─────────────────────────────╯
DevKit automatically detects your environment and uses the right package manager:
| Environment | Package Manager | Status |
|---|---|---|
| WSL 2 / Ubuntu / Debian | apt |
✔ fully supported |
| macOS | brew |
✔ supported |
| Windows | winget |
✔ supported |
| Arch / Manjaro | pacman |
coming soon |
| Fedora / RHEL | dnf |
coming soon |
# Reload shell — required for Go and Rust PATH
source ~/.bashrc
# Use Docker without sudo (WSL — restart terminal after)
newgrp docker
# Verify all tools
docker --version
python3 --version && pip3 --version
node --version && npm --version
git --version
go version
rustc --version && cargo --version
code --version
kubectl version --client
helm version --shortThe Docker daemon needs to be started manually on WSL 2:
# Start daemon
sudo service docker start
# Auto-start on every terminal open
echo 'sudo service docker start > /dev/null 2>&1' >> ~/.bashrcOr install Docker Desktop for Windows with the WSL 2 backend — it manages the daemon automatically.
DevKit/
├── src/
│ ├── cli.tsx <- Entry point (npx @ankushujawane/devkit)
│ ├── tools.ts <- Central tool registry
│ ├── ui/
│ │ ├── Menu.tsx <- Interactive Ink menu
│ │ └── Installer.tsx <- Live progress + spinner UI
│ ├── installers/
│ │ └── index.ts <- apt/brew/winget recipes via execa
│ └── utils/
│ └── os.ts <- OS/env/pkg manager detection
├── devsetup.sh <- Legacy bash installer (v1)
├── install.sh <- curl | bash entry point (v1)
├── package.json
├── tsconfig.json
└── .github/
└── workflows/
├── shellcheck.yml <- Lint bash scripts on every push
└── publish.yml <- Auto-publish to npm on version tag
- Interactive menu-based installer for WSL 2
- 8 tools from official sources
- Smart skip detection
-
curl | bashone-line install - ShellCheck CI
- Rebuilt in Node.js + TypeScript
- Terminal UI with Ink (React for CLI)
- Cross-platform: WSL 2, Linux, macOS, Windows
- Live install output streaming via execa
-
npx @ankushujawane/devkit— zero pre-install - Auto-publish to npm via GitHub Actions
- Built-in AI that watches install output in real time
- Error detected → AI explains it and suggests a fix instantly
-
[Run this fix?]— apply the AI suggestion with one keypress - Chat mode: ask questions about any tool directly in the terminal
- Save tool selections as named profiles (
devkit save my-stack) - Share stacks as
devkit.yaml - Plugin system for community-contributed tools
- Update manager — detect and update installed tools
To add a new tool:
- Fork and create a branch:
git checkout -b feat/add-toolname - Add the tool to
TOOLS[]insrc/tools.ts - Add install recipes for
apt,brew, andwingetinsrc/installers/index.ts - Test locally:
npm run dev - Open a Pull Request
For bugs, open an issue with your OS, environment, and the full error output.
MIT — see LICENSE