One-click computer setup - Supports Windows / macOS / Linux
Other Languages: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Deutsch | Français | العربية | Português | Italiano
- 🚀 One-click install - Set up your new computer with one command
- 🎯 12 pre-built profiles - Curated profiles for different needs
- 🌐 Cross-platform - Supports Windows / macOS / Linux
- ☁️ Remote config - Fetch latest config from the cloud
- 📦 Package manager - Auto-detect and install package managers
- 🌍 Multi-language - 10 languages with manual selection
- 🔧 Environment diagnostics -
doctorchecks your system before install - 🔄 Auto-update - Checks for updates on startup, Ctrl+U to update
- 🪝 Hook scripts - Pre/post install hooks for custom automation
bash <(curl -fsSL https://github.com/MomoLawson/Quickstart-PC/releases/latest/download/quickstart.sh)# Method 1: Download and run
Invoke-WebRequest -Uri "https://github.com/MomoLawson/Quickstart-PC/releases/latest/download/quickstart.ps1" -OutFile "quickstart.ps1"
powershell -ExecutionPolicy Bypass -File quickstart.ps1
# Method 2: One-liner
powershell -ExecutionPolicy Bypass -Command "[System.Text.Encoding]::UTF8.GetString((New-Object System.Net.WebClient).DownloadData('https://github.com/MomoLawson/Quickstart-PC/releases/latest/download/quickstart.ps1'))|iex"| Feature | Bash (quickstart.sh) |
PowerShell (quickstart.ps1) |
|---|---|---|
| Platform | macOS, Linux | Windows, macOS, Linux |
| Language loading | source .sh files |
JSON files via ConvertFrom-Json |
| Version flag | --version / -v |
-showVersion / -sv |
| Doctor | doctor / doctor --fix |
doctor / doctor -fix |
| Update hint | Ctrl+U in TUI |
Ctrl+U in TUI |
| Config parser | jq (primary) / python3 (fallback) |
Native ConvertFrom-Json |
| TUI input | read -rsn1 + key codes |
[Console]::ReadKey() |
| Profile | Description | Included Software |
|---|---|---|
| ⭐ Recommended | Balanced, suitable for most users | Chrome, Edge, VS Code, Git, Node.js, Python, WPS, VLC |
| 🤖 AI Powered | AI CLI tools, intelligent IDEs | Cursor, Ollama, LM Studio |
| 📊 Office Suite | Documents, spreadsheets, collaboration | WPS, Obsidian, Notion |
| 💻 Developer | IDEs, version control, runtimes | VS Code, IntelliJ, Git, Node.js, Python, Go, Docker |
| 🎬 Media | Audio/video processing tools | VLC, OBS Studio |
| 💬 Communication | Chat and messaging apps | Discord, Slack, Telegram |
| 🔒 Security | Security and privacy tools | 1Password, Bitwarden |
| 🍎 macOS Tools | macOS-specific utilities | Rectangle, Karabiner |
| 🔧 Utilities | General utility apps | Notepad++, 7-Zip |
| 🗄️ Database | Database tools | DBeaver, pgAdmin |
| ⬛ Terminal | Terminal emulators and tools | iTerm2, Windows Terminal |
| 🇨🇳 China Software | China-specific software | WeChat, QQ, WPS |
Quickstart-PC/
├── src/ # Source code (edit here)
│ ├── quickstart.sh # Bash implementation
│ ├── quickstart.ps1 # PowerShell implementation
│ └── lang/ # Language files
│ ├── en-US.sh # Bash: shell variables (sourced)
│ ├── en-US.json # PS1: JSON format (loaded dynamically)
│ ├── zh-CN.sh / .json # 10 languages × 2 formats
│ └── ...
├── dist/ # Built artifacts (don't edit)
│ ├── quickstart.sh
│ ├── quickstart.ps1
│ └── lang/
├── config/
│ ├── profiles.json # Merged config (auto-merged by build)
│ └── software/ # Per-category JSON files
├── scripts/
│ ├── build.sh # Merge software JSONs + inject version
│ └── release.sh # Version bump → build → commit → tag → release
├── .github/workflows/
│ ├── quality.yml # CI: shellcheck + PS syntax + JSON + build + smoke
│ └── release.yml # CD: manual trigger → bump → build → release
├── VERSION # Single source of truth (0.82.1)
└── AGENTS.md # AI agent knowledge base
| Option | Description |
|---|---|
--lang LANG |
Set language (en, zh, zh-Hant, ja, ko, de, fr, ar, pt, it) |
doctor |
Run QC Doctor environment diagnostics |
doctor --fix |
Auto-fix missing dependencies |
--dev |
Dev mode: show selections without installing |
--dry-run |
Preview mode: show process without installing |
--yes / -y |
Auto-confirm all prompts |
--verbose |
Show detailed debug info |
--version / -v |
Show version information (Bash only) |
--log-file FILE |
Write logs to file |
--export-plan FILE |
Export installation plan to file |
--retry-failed |
Retry previously failed packages |
--list-profiles |
List all available profiles |
--show-profile KEY |
Show profile details |
--skip SW |
Skip specified software (repeatable) |
--only SW |
Only install specified software (repeatable) |
--fail-fast |
Stop on first error |
--profile NAME |
Select profile directly (skip menu) |
--non-interactive |
Non-interactive mode (no TUI/prompts) |
--cfg-path PATH |
Use local profiles.json |
--cfg-url URL |
Use remote profiles.json URL |
--check-update |
Check for updates without installing |
--update |
Update script to latest version |
--allow-hooks |
Enable hook scripts execution |
--resume / --no-resume |
Resume interrupted installation |
--help |
Show help |
Hooks allow running custom scripts at different stages of installation:
{
"hooks": {
"pre_install": "/path/to/pre_install.sh",
"pre_software": "/path/to/pre_software.sh",
"post_software": "/path/to/post_software.sh",
"post_install": "/path/to/post_install.sh"
}
}Hook types:
pre_install— Before installation startspre_software— Before each software installpost_software— After each software installpost_install— After all installations complete
Enable with: --allow-hooks (disabled by default for safety)
Manual language selection with arrow key navigation:
🇺🇸 English · 🇨🇳 简体中文 · 🧡 繁體中文 · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇩🇪 Deutsch · 🇫🇷 Français · 🇸🇦 العربية · 🇧🇷 Português · 🇮🇹 Italiano
Use --lang XX to skip the language selection menu.
| Platform | Package Manager | Installation |
|---|---|---|
| Windows | winget | Built-in (requires App Installer) |
| macOS | Homebrew | Auto-install |
| Linux | apt | Built-in (Ubuntu/Debian) |
| Linux | dnf | Built-in (Fedora/RHEL) |
| Linux | pacman | Built-in (Arch/Manjaro) |
Issues and Pull Requests are welcome!
- Edit
config/software/<category>.json(e.g.,browsers.json) - Add software entry with install commands and check commands
- Add the software key to the relevant profile in
config/profiles.json - Run
bash scripts/build.shto merge - Submit PR
- Add new profile in
config/profiles.json"profiles"section - Run
bash scripts/build.sh - Submit PR