π A powerful CLI tool for quick directory navigation, repository management, and development environment setup.
dev cd- Interactive fuzzy search for code directories in~/srcdev cd <folder_name>- Quick navigation to projects by name
dev clone <repo>- Smart repository cloning with automatic provider detection- Support for GitHub, GitLab, and custom organizations
- Automatic directory structure organization (
~/src/provider/org/repo)
dev up- Install and update development tools using misedev status- Comprehensive environment status and health validationdev run <task>- Execute project tasks using mise
dev services up- Start shared development services (PostgreSQL, Valkey)dev services down- Stop servicesdev services logs- View service logs
dev upgrade- Update the dev CLI tool itself
# Set up using defaults
/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/bai/dev/refs/heads/main/hack/setup.sh)"
# Provide your config file URL
/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/bai/dev/refs/heads/main/hack/setup.sh)" -- --config-url=<your_config_url>This will:
- Install the dev CLI tool to
~/.dev - Install required dependencies via Homebrew
- Configure your shell (adds to
~/.zshrc) - Set up mise configuration
You can customize dev by providing your own configuration file URL. A common approach is to create a GitHub Gist and use its raw file URL. For reference, see the example configuration at docs/examples/configs/example.json.
# Clone the repository
git clone https://github.com/bai/dev ~/.dev
# Run setup
zsh ~/.dev/hack/setup.sh# Interactive directory selection
dev cd
# Direct navigation
dev cd myproject# Clone with automatic detection
dev clone myrepo # Uses default org
dev clone org/myrepo # Specify organization
dev clone https://github.com/org/myrepo # Full URL
# Provider-specific cloning
dev clone --github myrepo
dev clone --gitlab myrepo# Check environment status and validate installation
dev status
# Set up development tools
dev up
# Execute project tasks
dev run <task> # Run specific task
dev run build --watch # Run with arguments
dev services up # Start all services
dev services down # Stop all services
dev services logs -f # Follow logsConfigure enabled services in config.json. Set services.<name>.port to override the local host port:
{
"services": {
"postgres17": { "port": 65432 },
"valkey": { "port": 56380 }
}
}# Update the CLI tool
dev upgrade- Use
dev cdwithout arguments for interactive fuzzy search - Clone repos with just the name if using default org:
dev clone myrepo - Run
dev upin any git repository to set up development tools - Use
dev run <task>to execute project-specific tasks with mise - Use
dev statusto check your environment setup and validate installation
The tool organizes repositories in a structured way:
~/src/
βββ github.com/
β βββ myorg/
β β βββ project1/
β β βββ project2/
β βββ anotherorg/
β βββ project3/
βββ gitlab.com/
βββ myorg/
βββ project4/
dev statusThis command shows:
- Base directory existence and validation
- Required tool availability (git, fzf, mise)
- Optional tool status (gcloud)
- Git repository status and uncommitted changes
- Mise configuration
- CLI tool installation and version
- Package configuration validation
- Source files verification
- Shell integration status
- Health check summary with pass/fail counts
# Run directly
bun run src/index.ts --help
# Use npm scripts
bun run typecheck
bun run lint