Add Windows setup guidance
This commit is contained in:
parent
208e174bbf
commit
b6fbbbd6fc
24
README.md
24
README.md
|
|
@ -91,6 +91,8 @@ A locally-hosted operating system for AI agents — an open-source GitHub reposi
|
||||||
|
|
||||||
## 🚀 Quick Start
|
## 🚀 Quick Start
|
||||||
|
|
||||||
|
### Linux/macOS
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/modimihir07/agentic-os.git
|
git clone https://github.com/modimihir07/agentic-os.git
|
||||||
cd agentic-os
|
cd agentic-os
|
||||||
|
|
@ -99,19 +101,29 @@ chmod +x install.sh && ./install.sh
|
||||||
# Open http://127.0.0.1:8080
|
# Open http://127.0.0.1:8080
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Windows PowerShell
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
git clone https://github.com/modimihir07/agentic-os.git
|
||||||
|
cd agentic-os
|
||||||
|
.\install.ps1
|
||||||
|
python .\server.py
|
||||||
|
# Open http://127.0.0.1:8080
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📋 Prerequisites
|
## 📋 Prerequisites
|
||||||
|
|
||||||
| Tool | Required? | Install |
|
| Tool | Required? | Install |
|
||||||
|------|-----------|---------|
|
|------|-----------|---------|
|
||||||
| Python 3.10+ | ✅ Required | `sudo apt install python3 python3-pip` |
|
| Python 3.10+ | ✅ Required | Install from your OS package manager or [python.org](https://www.python.org/downloads/) |
|
||||||
| Node.js 18+ | ⚠ For opencode | `curl -fsSL https://deb.nodesource.com/setup_20.x \| sudo bash - && sudo apt install -y nodejs` |
|
| Node.js 18+ | ⚠ For opencode and Gemini CLI | Install from your OS package manager or [nodejs.org](https://nodejs.org/) |
|
||||||
| opencode | ⚠ For code tasks | `npm install -g @opencode/cli` |
|
| opencode | ⚠ For code tasks | `npm install -g @opencode/cli` |
|
||||||
| Hermes Agent | ⚠ For memory/scheduling | `curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh \| bash` |
|
| Hermes Agent | ⚠ For memory/scheduling | Follow the upstream Hermes Agent documentation. If native Windows support is unavailable, use WSL for Hermes. |
|
||||||
| Gemini CLI | ⚠ For Google AI | `npm install -g @google/gemini-cli` |
|
| Gemini CLI | ⚠ For Google AI | `npm install -g @google/gemini-cli` |
|
||||||
|
|
||||||
> ⚠ = Optional — the dashboard works with any subset of installed agents.
|
> ⚠ = Optional — the dashboard starts and core pages work without all agent CLIs installed. Agent-specific chat, routing, health, and skill execution features will show offline or warning status until the relevant CLI is installed and authenticated.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -147,7 +159,7 @@ Edit `data/settings.json`:
|
||||||
agentic-os/
|
agentic-os/
|
||||||
├── server.py # FastAPI backend (REST API)
|
├── server.py # FastAPI backend (REST API)
|
||||||
├── requirements.txt # Python dependencies
|
├── requirements.txt # Python dependencies
|
||||||
├── install.sh # One-command installer
|
├── install.sh / install.ps1 # Platform installers
|
||||||
├── start.sh # Launch dashboard
|
├── start.sh # Launch dashboard
|
||||||
├── backup.sh / restore.sh # Disaster recovery
|
├── backup.sh / restore.sh # Disaster recovery
|
||||||
│
|
│
|
||||||
|
|
@ -305,7 +317,7 @@ Browse opencode session logs by date and size. Click "Replay" to view all messag
|
||||||
|
|
||||||
## 🧪 Tested On
|
## 🧪 Tested On
|
||||||
|
|
||||||
- **OS**: Linux (Ubuntu 22.04+), macOS
|
- **OS**: Linux (Ubuntu 22.04+), macOS; Windows dashboard setup supported via PowerShell, with Hermes best used through WSL if native support is unavailable
|
||||||
- **Python**: 3.10, 3.11, 3.12
|
- **Python**: 3.10, 3.11, 3.12
|
||||||
- **Browsers**: Chrome, Firefox, Edge
|
- **Browsers**: Chrome, Firefox, Edge
|
||||||
- **Agents**: opencode v0.8+, Hermes Agent v1.0+, Gemini CLI v1.0+
|
- **Agents**: opencode v0.8+, Hermes Agent v1.0+, Gemini CLI v1.0+
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,94 @@
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
Write-Host "=== Agentic OS Windows Installer ==="
|
||||||
|
Write-Host ""
|
||||||
|
|
||||||
|
function Test-Command {
|
||||||
|
param([string]$Name)
|
||||||
|
return $null -ne (Get-Command $Name -ErrorAction SilentlyContinue)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check Python
|
||||||
|
if (Test-Command "python") {
|
||||||
|
Write-Host "Python: $(python --version)"
|
||||||
|
} elseif (Test-Command "py") {
|
||||||
|
Write-Host "Python: $(py --version)"
|
||||||
|
} else {
|
||||||
|
Write-Host "ERROR: Python 3.10+ required. Install from https://www.python.org/downloads/ or winget install Python.Python.3.12"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install Python dependencies
|
||||||
|
Write-Host "Installing Python dependencies..."
|
||||||
|
if (Test-Command "python") {
|
||||||
|
python -m pip install -r requirements.txt --quiet
|
||||||
|
} else {
|
||||||
|
py -m pip install -r requirements.txt --quiet
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check Node.js (for opencode and Gemini CLI)
|
||||||
|
if (Test-Command "node") {
|
||||||
|
Write-Host "Node.js: $(node --version)"
|
||||||
|
} else {
|
||||||
|
Write-Host "WARNING: Node.js not found. opencode and Gemini CLI require Node.js 18+."
|
||||||
|
Write-Host " Install from https://nodejs.org/ or run: winget install OpenJS.NodeJS.LTS"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check opencode
|
||||||
|
if (Test-Command "opencode") {
|
||||||
|
$opencodeVersion = (& opencode --version 2>$null)
|
||||||
|
if ($LASTEXITCODE -eq 0 -and $opencodeVersion) {
|
||||||
|
Write-Host "opencode: $opencodeVersion"
|
||||||
|
} else {
|
||||||
|
Write-Host "opencode: installed"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Write-Host "WARNING: opencode not found. Install via: npm install -g @opencode/cli"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check Gemini CLI
|
||||||
|
if (Test-Command "gemini") {
|
||||||
|
Write-Host "Gemini CLI: found"
|
||||||
|
} else {
|
||||||
|
Write-Host "WARNING: Gemini CLI not found. Install via: npm install -g @google/gemini-cli"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check Hermes Agent
|
||||||
|
if (Test-Command "hermes") {
|
||||||
|
Write-Host "Hermes Agent: found"
|
||||||
|
} else {
|
||||||
|
Write-Host "WARNING: Hermes Agent not found. Native Windows installer support is not confirmed by this project."
|
||||||
|
Write-Host " Check upstream Hermes Agent documentation for current Windows support."
|
||||||
|
Write-Host " If no native installer is available, use WSL for Hermes Agent."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create required directories
|
||||||
|
New-Item -ItemType Directory -Force -Path "backups", "audit" | Out-Null
|
||||||
|
|
||||||
|
# Initialize git if not already initialized
|
||||||
|
if (-not (Test-Path ".git")) {
|
||||||
|
Write-Host "Initializing git repository..."
|
||||||
|
git init | Out-Null
|
||||||
|
if (-not (Test-Path ".gitignore")) {
|
||||||
|
New-Item -ItemType File -Path ".gitignore" | Out-Null
|
||||||
|
}
|
||||||
|
$gitignore = Get-Content ".gitignore" -ErrorAction SilentlyContinue
|
||||||
|
foreach ($entry in @("audit/*", "backups/*.tar.gz", "data/settings.json")) {
|
||||||
|
if ($gitignore -notcontains $entry) {
|
||||||
|
Add-Content ".gitignore" $entry
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "=== Installation complete! ==="
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "Next steps:"
|
||||||
|
Write-Host " 1. Edit data/settings.json with your API keys"
|
||||||
|
Write-Host " 2. Run python .\server.py to launch the dashboard"
|
||||||
|
Write-Host " 3. Open http://127.0.0.1:8080 in your browser"
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "Optional agent CLI reminders:"
|
||||||
|
Write-Host " opencode: npm install -g @opencode/cli"
|
||||||
|
Write-Host " Gemini: npm install -g @google/gemini-cli"
|
||||||
|
Write-Host " Hermes: Use upstream docs for native Windows support, or WSL if native support is unavailable."
|
||||||
|
|
@ -1228,7 +1228,7 @@ def index():
|
||||||
content = content.replace('src="app.js"', 'src="/dashboard/app.js"')
|
content = content.replace('src="app.js"', 'src="/dashboard/app.js"')
|
||||||
content = content.replace('pages/', '/dashboard/pages/')
|
content = content.replace('pages/', '/dashboard/pages/')
|
||||||
return HTMLResponse(content=content)
|
return HTMLResponse(content=content)
|
||||||
return HTMLResponse("<h1>Agentic OS</h1><p>Dashboard not built yet. Run <code>./install.sh</code> first.</p>")
|
return HTMLResponse("<h1>Agentic OS</h1><p>Dashboard not built yet. Run the installer for your platform first (<code>./install.sh</code> on Linux/macOS or <code>.\\install.ps1</code> on Windows).</p>")
|
||||||
|
|
||||||
# ─── Favicon ──────────────────────────────────────────────────────
|
# ─── Favicon ──────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue