Enhancement: 1-Click Installers & Zero-Config Auth Prep

This commit is contained in:
Gemini AI
2025-12-14 00:56:30 +04:00
Unverified
parent 1b3edad0d2
commit 4d999fdc5c
4 changed files with 199 additions and 83 deletions

View File

@@ -10,35 +10,40 @@
## 👋 Welcome to OpenQode
OpenQode is a powerful Terminal User Interface (TUI) that brings advanced AI coding capabilities directly to your command line. Whether you're debugging via SSH, coding on a cloud server, or just love the terminal, OpenQode is designed for you.
We are proud to present two distinct experiences: **Next-Gen (Gen 5)** and **Classic (Gen 4)**.
---
## ⚡ 1-Click Installation (Windows)
Copy and paste this into PowerShell to automatically download, install, and run OpenQode:
## ⚡ 1-Click Installation (Zero-Config)
### 🖥️ Windows (PowerShell)
Copy and paste this into PowerShell:
```powershell
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/roman-ryzenadvanced/OpenQode-Public-Alpha/main/install.ps1'))
```
### 🍎 macOS / 🐧 Linux (Bash)
Copy and paste this into your terminal:
```bash
curl -sL https://raw.githubusercontent.com/roman-ryzenadvanced/OpenQode-Public-Alpha/main/install.sh | bash
```
*(These scripts automatically download source, install dependencies, and launch the assistant)*
---
## 📦 Manual Installation
### 🖥️ Windows Users
1. **Download** the latest release or clone the repo.
### Windows
1. **Download** the latest release.
2. Double-click **`OpenQode.bat`**.
*(First run will automatically install dependencies)*
3. Choose **Option 5** for the Next-Gen Experience!
### 🍎 macOS / 🐧 Linux Users
### Linux / Mac
1. Open terminal in the folder.
2. Run:
```bash
chmod +x OpenQode.sh
./OpenQode.sh
```
3. Choose **Option 5**.
---
@@ -53,24 +58,21 @@ We recommend starting with **Next-Gen (Option 5)**!
| **Interactivity**| **Interactive Menus** (Arrow Keys Selection) | Command-based only |
| **Models** | **Visual Model Selector** (`/model`) | Manual Switch via CLI |
| **Thinking** | **Real-time Stats** (CPS, Tokens) | Basic Loading |
| **Output** | **Collapsible Cards** & Markdown | Linear Log |
![Context and Stats](assets/screenshots/next-gen-2.png)
---
## ⚡ Quick Start Guide
Once in Next-Gen TUI:
## ⚡ Feature: Zero-Config Authentication
OpenQode attempts to use your existing Qwen CLI authentication.
- Using standard **Option 5**, simply follow the prompts.
- If it's your first time, you may need to authenticate via browser.
- The assistant is designed to be "Hassle Free"!
- **Chat:** Just type your question!
- **Select Model:** Type `/model` to open the visual selector.
- **Switch Agent:** Type `/agent <name>` (e.g., `/agent planner`).
### 🔑 Configuration (Optional)
If you have your own API keys (e.g., for Qwen Coder models):
### 🔑 Advanced Configuration
If you have your own API keys or specialized setup:
1. Copy `config.example.cjs` to `config.cjs`.
2. Edit `config.cjs` and paste your key.
3. Restart.
2. Edit `config.cjs` to add your keys.
---

View File

@@ -1,74 +1,46 @@
#!/bin/bash
# OpenQode v1.3 Installation Script for Linux/Mac
# OpenQode One-Liner Installer for Linux/Mac
echo ""
echo "========================================================"
echo " OpenQode v1.3 Alpha - Installation"
echo " AI-Powered Coding Assistant with Qwen Integration"
echo "========================================================"
echo ""
echo -e "\033[0;36mOpenQode Auto-Installer\033[0m"
echo -e "\033[0;36m-----------------------\033[0m"
cd "$(dirname "$0")"
# Check Git
if ! command -v git &> /dev/null; then
echo -e "\033[0;31mError: Git is not installed.\033[0m"
echo "Please install Git (e.g., sudo apt install git or brew install git)"
exit 1
fi
# Check Node.js
echo "[1/3] Checking Node.js..."
# Check Node
if ! command -v node &> /dev/null; then
echo ""
echo "ERROR: Node.js is not installed!"
echo ""
echo "Install Node.js:"
echo " Ubuntu/Debian: curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs"
echo " macOS: brew install node"
echo " Or download from: https://nodejs.org/"
echo ""
echo -e "\033[0;31mError: Node.js is not installed.\033[0m"
echo "Please install Node.js: https://nodejs.org/"
exit 1
fi
# Check Node.js version
NODE_VERSION=$(node -v | cut -d. -f1 | tr -d 'v')
if [ "$NODE_VERSION" -lt 20 ]; then
echo ""
echo -e "\033[0;33mWARNING: Node.js v20+ is recommended! You have v${NODE_VERSION}.\033[0m"
echo "Some features may not work correctly."
echo ""
fi
echo " Found: $(node --version)"
TARGET_DIR="OpenQode"
REPO_URL="https://github.com/roman-ryzenadvanced/OpenQode-Public-Alpha.git"
# Install npm dependencies
echo ""
echo "[2/3] Installing dependencies..."
echo " (This may take a minute...)"
npm install --legacy-peer-deps
if [ $? -ne 0 ]; then
echo "ERROR: npm install failed!"
echo "Try: npm install --legacy-peer-deps"
exit 1
fi
echo " Done!"
# Check Qwen CLI (optional)
echo ""
echo "[3/3] Checking Qwen CLI (optional)..."
if ! command -v qwen &> /dev/null; then
echo " Qwen CLI not found (optional - Modern TUI doesn't need it)"
echo " To install: npm install -g @anthropic/qwen-code"
if [ -d "$TARGET_DIR" ]; then
echo -e "\033[1;33mDirectory '$TARGET_DIR' already exists. Entering...\033[0m"
else
echo " Qwen CLI already installed!"
echo -e "\033[1;33mCloning repository...\033[0m"
git clone "$REPO_URL" "$TARGET_DIR"
if [ $? -ne 0 ]; then
echo -e "\033[0;31mClone failed.\033[0m"
exit 1
fi
fi
# Ensure scripts are executable
chmod +x OpenQode.sh start.sh 2>/dev/null
cd "$TARGET_DIR"
echo ""
echo "========================================================"
echo -e "\033[1;32m Installation Complete! \033[0m"
echo "========================================================"
echo ""
echo " To start OpenQode:"
echo ""
echo -e " \033[1;36m./OpenQode.sh\033[0m"
echo ""
echo " Then select Option 5 for the Modern TUI!"
echo ""
echo "========================================================"
echo ""
if [ ! -d "node_modules" ]; then
echo -e "\033[1;33mInstalling dependencies...\033[0m"
npm install
else
echo -e "\033[0;32mDependencies already installed.\033[0m"
fi
echo -e "\033[0;32mInstallation complete! Launching...\033[0m"
chmod +x OpenQode.sh
./OpenQode.sh

141
package-lock.json generated
View File

@@ -9,6 +9,7 @@
"version": "1.01.0",
"license": "MIT",
"dependencies": {
"@qwen-code/qwen-code": "latest",
"blessed": "^0.1.81",
"cli-truncate": "^5.1.1",
"clipboardy": "^5.0.2",
@@ -63,6 +64,122 @@
"node": ">=0.1.90"
}
},
"node_modules/@lydell/node-pty": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@lydell/node-pty/-/node-pty-1.1.0.tgz",
"integrity": "sha512-VDD8LtlMTOrPKWMXUAcB9+LTktzuunqrMwkYR1DMRBkS6LQrCt+0/Ws1o2rMml/n3guePpS7cxhHF7Nm5K4iMw==",
"license": "MIT",
"optional": true,
"optionalDependencies": {
"@lydell/node-pty-darwin-arm64": "1.1.0",
"@lydell/node-pty-darwin-x64": "1.1.0",
"@lydell/node-pty-linux-arm64": "1.1.0",
"@lydell/node-pty-linux-x64": "1.1.0",
"@lydell/node-pty-win32-arm64": "1.1.0",
"@lydell/node-pty-win32-x64": "1.1.0"
}
},
"node_modules/@lydell/node-pty-darwin-arm64": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@lydell/node-pty-darwin-arm64/-/node-pty-darwin-arm64-1.1.0.tgz",
"integrity": "sha512-7kFD+owAA61qmhJCtoMbqj3Uvff3YHDiU+4on5F2vQdcMI3MuwGi7dM6MkFG/yuzpw8LF2xULpL71tOPUfxs0w==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@lydell/node-pty-darwin-x64": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@lydell/node-pty-darwin-x64/-/node-pty-darwin-x64-1.1.0.tgz",
"integrity": "sha512-XZdvqj5FjAMjH8bdp0YfaZjur5DrCIDD1VYiE9EkkYVMDQqRUPHYV3U8BVEQVT9hYfjmpr7dNaELF2KyISWSNA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@lydell/node-pty-linux-arm64": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@lydell/node-pty-linux-arm64/-/node-pty-linux-arm64-1.1.0.tgz",
"integrity": "sha512-yyDBmalCfHpLiQMT2zyLcqL2Fay4Xy7rIs8GH4dqKLnEviMvPGOK7LADVkKAsbsyXBSISL3Lt1m1MtxhPH6ckg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@lydell/node-pty-linux-x64": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@lydell/node-pty-linux-x64/-/node-pty-linux-x64-1.1.0.tgz",
"integrity": "sha512-NcNqRTD14QT+vXcEuqSSvmWY+0+WUBn2uRE8EN0zKtDpIEr9d+YiFj16Uqds6QfcLCHfZmC+Ls7YzwTaqDnanA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@lydell/node-pty-win32-arm64": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@lydell/node-pty-win32-arm64/-/node-pty-win32-arm64-1.1.0.tgz",
"integrity": "sha512-JOMbCou+0fA7d/m97faIIfIU0jOv8sn2OR7tI45u3AmldKoKoLP8zHY6SAvDDnI3fccO1R2HeR1doVjpS7HM0w==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@lydell/node-pty-win32-x64": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@lydell/node-pty-win32-x64/-/node-pty-win32-x64-1.1.0.tgz",
"integrity": "sha512-3N56BZ+WDFnUMYRtsrr7Ky2mhWGl9xXcyqR6cexfuCqcz9RNWL+KoXRv/nZylY5dYaXkft4JaR1uVu+roiZDAw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@qwen-code/qwen-code": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@qwen-code/qwen-code/-/qwen-code-0.5.0.tgz",
"integrity": "sha512-PUVwBwDJTR00KrBR4ZdGV85HTUfOavE0XOPHHoz3C9XTMpUquiMl+aE4zefgZ+QRgYso1cTR687VDRsdnqz4hw==",
"dependencies": {
"tiktoken": "^1.0.21"
},
"bin": {
"qwen": "cli.js"
},
"engines": {
"node": ">=20.0.0"
},
"optionalDependencies": {
"@lydell/node-pty": "1.1.0",
"@lydell/node-pty-darwin-arm64": "1.1.0",
"@lydell/node-pty-darwin-x64": "1.1.0",
"@lydell/node-pty-linux-x64": "1.1.0",
"@lydell/node-pty-win32-arm64": "1.1.0",
"@lydell/node-pty-win32-x64": "1.1.0",
"node-pty": "^1.0.0"
}
},
"node_modules/@sec-ant/readable-stream": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
@@ -3237,6 +3354,13 @@
"thenify-all": "^1.0.0"
}
},
"node_modules/nan": {
"version": "2.24.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.24.0.tgz",
"integrity": "sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg==",
"license": "MIT",
"optional": true
},
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@@ -3261,6 +3385,17 @@
"node": ">=18"
}
},
"node_modules/node-pty": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.0.0.tgz",
"integrity": "sha512-wtBMWWS7dFZm/VgqElrTvtfMq4GzJ6+edFI0Y0zyzygUSZMgZdraDUMUhCIvkjhJjme15qWmbyJbtAx4ot4uZA==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"dependencies": {
"nan": "^2.17.0"
}
},
"node_modules/nodemon": {
"version": "3.1.11",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.11.tgz",
@@ -4198,6 +4333,12 @@
"node": ">=0.8"
}
},
"node_modules/tiktoken": {
"version": "1.0.22",
"resolved": "https://registry.npmjs.org/tiktoken/-/tiktoken-1.0.22.tgz",
"integrity": "sha512-PKvy1rVF1RibfF3JlXBSP0Jrcw2uq3yXdgcEXtKTYn3QJ/cBRBHDnrJ5jHky+MENZ6DIPwNUGWpkVx+7joCpNA==",
"license": "MIT"
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

View File

@@ -45,7 +45,8 @@
"remark-parse": "^11.0.0",
"string-width": "^8.1.0",
"strip-ansi": "^7.1.2",
"wrap-ansi": "^9.0.2"
"wrap-ansi": "^9.0.2",
"@qwen-code/qwen-code": "latest"
},
"devDependencies": {
"nodemon": "^3.0.1"
@@ -61,4 +62,4 @@
"url": "https://github.com/roman-ryzenadvanced/openqode/issues"
},
"homepage": "https://github.com/roman-ryzenadvanced/openqode#readme"
}
}