Compare commits

...
15 Commits
5 changed files with 207 additions and 26 deletions
+24 -9
View File
@@ -2,24 +2,26 @@
The AI coding agent built for the terminal. The AI coding agent built for the terminal.
English | [简体中文](README.zh-CN.md)
## Install ## Install
**Unix (Linux/macOS):** **Unix (Linux/macOS):**
```bash ```bash
curl -fsSL https://eightarms.net/fourbroad/octopus-release/raw/branch/main/install | bash curl -fsSL https://eightarms.net/Octopus/octopus-release/raw/branch/main/install | bash
``` ```
**Windows (PowerShell):** **Windows (PowerShell):**
```powershell ```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm https://eightarms.net/fourbroad/octopus-release/raw/branch/main/install.ps1 | iex irm https://eightarms.net/Octopus/octopus-release/raw/branch/main/install.ps1 | iex
``` ```
### Manual install ### Manual install
If the one-liner fails with a connection error, the direct connection to `eightarms.net` is likely being filtered on your network. Download the archive for your platform from the [releases page](https://eightarms.net/fourbroad/octopus-release/releases/latest) and install it manually instead. If the one-liner fails with a connection error, the direct connection to `eightarms.net` is likely being filtered on your network. Download the archive for your platform from the [releases page](https://eightarms.net/Octopus/octopus-release/releases/latest) and install it manually instead.
**Unix (Linux/macOS):** **Unix (Linux/macOS):**
@@ -49,18 +51,31 @@ if ($p -notlike "*$dest*") { [Environment]::SetEnvironmentVariable('Path', ($p.T
Open a **new** terminal and run `octopus`. Open a **new** terminal and run `octopus`.
## Desktop (beta)
Prefer a GUI? The Octopus desktop app ships Windows, Linux and macOS beta builds alongside the CLI:
- **macOS (Apple Silicon):** download [`octopus-desktop-mac-arm64.dmg`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-mac-arm64.dmg) from the [`desktop-beta` channel](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta), open it and drag Octopus to Applications. Builds are Developer ID signed and notarized by Apple (`source=Notarized Developer ID`); installed builds auto-update themselves from the same channel (`latest-mac.yml`).
- **macOS (Intel):** download [`octopus-desktop-mac-x64.dmg`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-mac-x64.dmg) from the same channel — same signing, notarization and auto-update guarantees as the Apple Silicon build.
- **Windows:** download [`octopus-desktop-win-x64.exe`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-win-x64.exe) from the [`desktop-beta` channel](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta) and run the installer. Installed builds auto-update themselves from the same channel.
- **Linux (x86_64):** download [`octopus-desktop-linux-x86_64.AppImage`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-x86_64.AppImage) from the same [`desktop-beta` channel](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta), make it executable and run it:
```bash
chmod +x octopus-desktop-linux-x86_64.AppImage
./octopus-desktop-linux-x86_64.AppImage
```
The AppImage auto-updates itself from the same channel (`latest-linux.yml`). Prefer a native package? [`octopus-desktop-linux-amd64.deb`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-amd64.deb) and [`octopus-desktop-linux-x86_64.rpm`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-x86_64.rpm) are published on the same channel for first installs only — they do not auto-update (reinstall or switch to the AppImage for updates), and being unsigned they will trip a first-install warning on apt/dnf.
- This is a beta channel — expect rough edges.
## Documentation ## Documentation
Visit the [documentation](https://eightarms.net/fourbroad/octopus/wiki) for usage guides and API reference. Curious how Octopus organizes agent work? Read the workflow overview (in Chinese): [docs/workflow.zh.md](docs/workflow.zh.md) — the ticket-driven workflow system, with links into the guides shipped in this repo.
## Development ## Development
The source code and issue tracker are available at the [private development repository](https://eightarms.net/fourbroad/octopus). The source code and issue tracker are available at the [private development repository](https://eightarms.net/Octopus/octopus).
## License ## License
MIT License — see the source repository for details. MIT License — see the source repository for details.
## Workflow
Curious how Octopus organizes agent work? Read about the **ticket-driven workflow system** (in Chinese): [docs/workflow.zh.md](docs/workflow.zh.md)
+88
View File
@@ -0,0 +1,88 @@
# Octopus
为终端而生的 AI 编程代理。
[English](README.md) | 简体中文
## 安装
**Unix(Linux/macOS):**
```bash
curl -fsSL https://eightarms.net/Octopus/octopus-release/raw/branch/main/install | bash
```
**Windows(PowerShell):**
```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm https://eightarms.net/Octopus/octopus-release/raw/branch/main/install.ps1 | iex
```
### 手动安装
若一键脚本报连接错误,说明你的网络可能过滤了到 `eightarms.net` 的直连。请从
[releases 页面](https://eightarms.net/Octopus/octopus-release/releases/latest) 下载对应平台的压缩包手动安装。
**Unix(Linux/macOS):**
```bash
# 从 releases 页面下载 octopus-<platform>.tar.gz 后
tar -xzf octopus-linux-x64.tar.gz
sudo mv octopus /usr/local/bin/
octopus --version
```
**Windows(PowerShell):** 下载 `octopus-windows-x64.zip` 后:
```powershell
$zip = "$env:USERPROFILE\Downloads\octopus-windows-x64.zip"
$dest = "$env:USERPROFILE\.octopus\bin"
$tmp = Join-Path $env:TEMP "octopus_manual"
New-Item -ItemType Directory -Force -Path $dest,$tmp | Out-Null
Expand-Archive -Path $zip -DestinationPath $tmp -Force
Copy-Item "$tmp\octopus.exe" "$dest\octopus.exe" -Force
Remove-Item -Recurse -Force $tmp
$p = [Environment]::GetEnvironmentVariable('Path','User')
if ($p -notlike "*$dest*") { [Environment]::SetEnvironmentVariable('Path', ($p.TrimEnd(';') + ";$dest"), 'User') }
& "$dest\octopus.exe" --version
```
然后打开一个**新**终端运行 `octopus`。
## 桌面版(beta)
偏好图形界面?Octopus 桌面应用与 CLI 一同发布 Windows / Linux / macOS beta 构建:
- **macOS(Apple Silicon):** 从 [`desktop-beta` 频道](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta) 下载
[`octopus-desktop-mac-arm64.dmg`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-mac-arm64.dmg),打开后拖入 Applications 即可。构建经过 Developer ID 签名与 Apple 公证(`source=Notarized Developer ID`);已安装的构建会从同一频道自动更新(`latest-mac.yml`)。
- **macOS(Intel):** 从同一 [`desktop-beta` 频道](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta) 下载
[`octopus-desktop-mac-x64.dmg`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-mac-x64.dmg),签名、公证与自动更新与 Apple Silicon 构建一致。
- **Windows:** 从 [`desktop-beta` 频道](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta) 下载
[`octopus-desktop-win-x64.exe`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-win-x64.exe)
安装;已安装的构建会从同一频道自动更新。
- **Linux (x86_64):** 从同一 [`desktop-beta` 频道](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta) 下载
[`octopus-desktop-linux-x86_64.AppImage`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-x86_64.AppImage),赋权后运行:
```bash
chmod +x octopus-desktop-linux-x86_64.AppImage
./octopus-desktop-linux-x86_64.AppImage
```
AppImage 自动更新(`latest-linux.yml`)。需要原生包?同频道另有
[`octopus-desktop-linux-amd64.deb`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-amd64.deb) /
[`octopus-desktop-linux-x86_64.rpm`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-x86_64.rpm)(仅限首装、不自动更新,且未签名会触发首次安装警告)。
- 这是 beta 频道,会有粗糙之处。
## 文档
工作流总览:[docs/workflow.zh.md](docs/workflow.zh.md) —— 介绍 Octopus 如何组织工单驱动的代理工作,并链接到仓库内的其他指南。
## 开发
源码与 issue 跟踪在[私有开发仓库](https://eightarms.net/Octopus/octopus)。
## 许可证
MIT 许可证 —— 详情见源码仓库。
+9 -9
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Public release repository: # Public release repository:
# https://eightarms.net/fourbroad/octopus-release # https://eightarms.net/Octopus/octopus-release
set -euo pipefail set -euo pipefail
APP=octopus APP=octopus
@@ -22,8 +22,8 @@ Options:
--no-modify-path Don't modify shell config files (.zshrc, .bashrc, etc.) --no-modify-path Don't modify shell config files (.zshrc, .bashrc, etc.)
Examples: Examples:
curl -fsSL https://eightarms.net/fourbroad/octopus-release/raw/branch/main/install | bash curl -fsSL https://eightarms.net/install | bash
curl -fsSL https://eightarms.net/fourbroad/octopus-release/raw/branch/main/install | bash -s -- --version 1.0.180 curl -fsSL https://eightarms.net/install | bash -s -- --version 1.0.180
./install --binary /path/to/octopus ./install --binary /path/to/octopus
EOF EOF
} }
@@ -183,24 +183,24 @@ else
fi fi
if [ -z "$requested_version" ]; then if [ -z "$requested_version" ]; then
specific_version=$(curl -s "${GITEA_API_URL:-https://eightarms.net/api/v1}/repos/fourbroad/octopus-release/releases?limit=1" | sed -n 's/.*"tag_name": *"v\([^"]*\)".*/\1/p') specific_version=$(curl -s "${GITEA_API_URL:-https://eightarms.net/api/v1}/repos/Octopus/octopus-release/releases?limit=1" | sed -n 's/.*"tag_name": *"v\([^"]*\)".*/\1/p')
if [[ $? -ne 0 || -z "$specific_version" ]]; then if [[ $? -ne 0 || -z "$specific_version" ]]; then
echo -e "${RED}Failed to fetch version information${NC}" echo -e "${RED}Failed to fetch version information${NC}"
exit 1 exit 1
fi fi
url="${OCTOPUS_DOWNLOAD_BASE:-https://eightarms.net}/fourbroad/octopus-release/releases/download/v${specific_version}/$filename" url="${OCTOPUS_DOWNLOAD_BASE:-https://eightarms.net}/Octopus/octopus-release/releases/download/v${specific_version}/$filename"
else else
# Strip leading 'v' if present # Strip leading 'v' if present
requested_version="${requested_version#v}" requested_version="${requested_version#v}"
url="${OCTOPUS_DOWNLOAD_BASE:-https://eightarms.net}/fourbroad/octopus-release/releases/download/v${requested_version}/$filename" url="${OCTOPUS_DOWNLOAD_BASE:-https://eightarms.net}/Octopus/octopus-release/releases/download/v${requested_version}/$filename"
specific_version=$requested_version specific_version=$requested_version
# Verify the release exists before downloading # Verify the release exists before downloading
http_status=$(curl -sI -o /dev/null -w "%{http_code}" "${GITEA_URL:-https://eightarms.net}/fourbroad/octopus-release/releases/tag/v${requested_version}") http_status=$(curl -sI -o /dev/null -w "%{http_code}" "${GITEA_URL:-https://eightarms.net}/Octopus/octopus-release/releases/tag/v${requested_version}")
if [ "$http_status" = "404" ]; then if [ "$http_status" = "404" ]; then
echo -e "${RED}Error: Release v${requested_version} not found${NC}" echo -e "${RED}Error: Release v${requested_version} not found${NC}"
echo -e "${MUTED}Available releases: ${GITEA_URL:-https://eightarms.net}/fourbroad/octopus-release/releases${NC}" echo -e "${MUTED}Available releases: ${GITEA_URL:-https://eightarms.net}/Octopus/octopus-release/releases${NC}"
exit 1 exit 1
fi fi
fi fi
@@ -456,6 +456,6 @@ echo -e ""
echo -e "cd <project> ${MUTED}# Open directory${NC}" echo -e "cd <project> ${MUTED}# Open directory${NC}"
echo -e "octopus ${MUTED}# Run command${NC}" echo -e "octopus ${MUTED}# Run command${NC}"
echo -e "" echo -e ""
echo -e "${MUTED}For more information visit ${NC}https://eightarms.net/fourbroad/octopus-release" echo -e "${MUTED}For more information visit ${NC}https://eightarms.net/docs"
echo -e "" echo -e ""
echo -e "" echo -e ""
+5 -8
View File
@@ -1,5 +1,5 @@
#Requires -Version 5.1 #Requires -Version 5.1
# Public release repository: https://eightarms.net/fourbroad/octopus-release # Public release repository: https://eightarms.net/Octopus/octopus-release
<# <#
.SYNOPSIS .SYNOPSIS
Octopus installer for Windows. Octopus installer for Windows.
@@ -14,12 +14,10 @@
Do not add the install directory to the user PATH. Do not add the install directory to the user PATH.
.EXAMPLE .EXAMPLE
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 irm https://eightarms.net/Octopus/octopus-release/raw/branch/dev/install.ps1 | iex
irm https://eightarms.net/fourbroad/octopus-release/raw/branch/main/install.ps1 | iex
.EXAMPLE .EXAMPLE
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 irm https://eightarms.net/Octopus/octopus-release/raw/branch/dev/install.ps1 | iex; Install-Octopus -Version 0.1.3
irm https://eightarms.net/fourbroad/octopus-release/raw/branch/main/install.ps1 | iex; Install-Octopus -Version 0.1.3
#> #>
[CmdletBinding()] [CmdletBinding()]
param( param(
@@ -29,10 +27,9 @@ param(
Set-StrictMode -Version Latest Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop" $ErrorActionPreference = "Stop"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$APP = "octopus" $APP = "octopus"
$REPO = "fourbroad/octopus-release" $REPO = "Octopus/octopus-release"
$baseUrl = if ($env:OCTOPUS_DOWNLOAD_BASE) { $env:OCTOPUS_DOWNLOAD_BASE } else { "https://eightarms.net" } $baseUrl = if ($env:OCTOPUS_DOWNLOAD_BASE) { $env:OCTOPUS_DOWNLOAD_BASE } else { "https://eightarms.net" }
$INSTALL_DIR = Join-Path $env:USERPROFILE ".octopus\bin" $INSTALL_DIR = Join-Path $env:USERPROFILE ".octopus\bin"
@@ -197,7 +194,7 @@ function Install-Octopus {
Write-Host " octopus " -NoNewline; Write-Host "# Run command" -ForegroundColor DarkGray Write-Host " octopus " -NoNewline; Write-Host "# Run command" -ForegroundColor DarkGray
Write-Host "" Write-Host ""
Write-Host "For more information visit " -NoNewline -ForegroundColor DarkGray Write-Host "For more information visit " -NoNewline -ForegroundColor DarkGray
Write-Host "https://eightarms.net/fourbroad/octopus-release" Write-Host "https://eightarms.net/docs"
Write-Host "" Write-Host ""
} }
+81
View File
@@ -0,0 +1,81 @@
# Octopus
The AI coding agent built for the terminal.
## Install
**Unix (Linux/macOS):**
```bash
curl -fsSL https://eightarms.net/Octopus/octopus-release/raw/branch/main/install | bash
```
**Windows (PowerShell):**
```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm https://eightarms.net/Octopus/octopus-release/raw/branch/main/install.ps1 | iex
```
### Manual install
If the one-liner fails with a connection error, the direct connection to `eightarms.net` is likely being filtered on your network. Download the archive for your platform from the [releases page](https://eightarms.net/Octopus/octopus-release/releases/latest) and install it manually instead.
**Unix (Linux/macOS):**
```bash
# after downloading octopus-<platform>.tar.gz from the releases page
tar -xzf octopus-linux-x64.tar.gz
sudo mv octopus /usr/local/bin/
octopus --version
```
**Windows (PowerShell):**
After downloading `octopus-windows-x64.zip` from the releases page:
```powershell
$zip = "$env:USERPROFILE\Downloads\octopus-windows-x64.zip"
$dest = "$env:USERPROFILE\.octopus\bin"
$tmp = Join-Path $env:TEMP "octopus_manual"
New-Item -ItemType Directory -Force -Path $dest,$tmp | Out-Null
Expand-Archive -Path $zip -DestinationPath $tmp -Force
Copy-Item "$tmp\octopus.exe" "$dest\octopus.exe" -Force
Remove-Item -Recurse -Force $tmp
$p = [Environment]::GetEnvironmentVariable('Path','User')
if ($p -notlike "*$dest*") { [Environment]::SetEnvironmentVariable('Path', ($p.TrimEnd(';') + ";$dest"), 'User') }
& "$dest\octopus.exe" --version
```
Open a **new** terminal and run `octopus`.
## Desktop (beta)
Prefer a GUI? The Octopus desktop app ships Windows and Linux beta builds alongside the CLI:
- **Windows:** download [`octopus-desktop-win-x64.exe`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-win-x64.exe) from the [`desktop-beta` channel](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta) and run the installer. Installed builds auto-update themselves from the same channel.
- **Linux (x86_64):** download [`octopus-desktop-linux-x86_64.AppImage`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-x86_64.AppImage) from the same [`desktop-beta` channel](https://eightarms.net/Octopus/octopus-release/releases/tag/desktop-beta), make it executable and run it:
```bash
chmod +x octopus-desktop-linux-x86_64.AppImage
./octopus-desktop-linux-x86_64.AppImage
```
The AppImage auto-updates itself from the same channel (`latest-linux.yml`). Prefer a native package? [`octopus-desktop-linux-amd64.deb`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-amd64.deb) and [`octopus-desktop-linux-x86_64.rpm`](https://eightarms.net/Octopus/octopus-release/releases/download/desktop-beta/octopus-desktop-linux-x86_64.rpm) are published on the same channel for first installs only — they do not auto-update (reinstall or switch to the AppImage for updates), and being unsigned they will trip a first-install warning on apt/dnf.
- This is a beta channel — expect rough edges. macOS builds are on the way but not published yet.
## Documentation
Read the workflow overview (in Chinese): [docs/workflow.zh.md](docs/workflow.zh.md) — how Octopus organizes ticket-driven agent work, with links into the guides shipped in this repo.
## Workflow
Curious how Octopus organizes agent work? Read about the **ticket-driven workflow system** (in Chinese): [docs/workflow.zh.md](docs/workflow.zh.md)
## Development
The source code and issue tracker are available at the [private development repository](https://eightarms.net/Octopus/octopus).
## License
MIT License — see the source repository for details.