omnish 2.1.9 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.2.1] - 2026-07-11
11
+
12
+ ### Fixed
13
+
14
+ - **Platform attached reply loop:** stop echoing `reply_error` deliveries back to the same peer (prevented CPU/log storms when Omnish Chat client disconnects).
15
+ - **Tunnel relay:** cooldown drops outbound replies for disconnected `ochat:` peers; normalize `ochat:ochat:` peer keys.
16
+ - **Omnishchat allowlist:** strip `ochat:` prefix from stored install ids so lifecycle broadcasts do not double-prefix peer keys.
17
+
18
+ ## [2.2.0] - 2026-07-11
19
+
20
+ ### Added
21
+
22
+ - **Windows installer:** `contrib/install-omnish.ps1` at `https://platform.omnish.dev/action/install-omnish.ps1` (`irm … | iex`); nvm-windows and winget paths.
23
+ - **macOS Homebrew path** in `contrib/install-omnish.sh` when Node is below 22.13.
24
+
25
+ ### Changed
26
+
27
+ - **Install docs:** README and quick-start use per-OS table (Linux, macOS, Windows, WSL); script-first hero line.
28
+ - **Preinstall/runtime errors:** Windows lead with PowerShell installer URL.
29
+
10
30
  ## [2.1.9] - 2026-07-11
11
31
 
12
32
  ### Added
@@ -112,6 +132,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
112
132
 
113
133
  - Documentation and formatting updates across chat components and feature docs.
114
134
 
135
+ [2.2.0]: https://github.com/labKnowledge/omnish/compare/v2.1.9...v2.2.0
115
136
  [2.1.9]: https://github.com/labKnowledge/omnish/compare/v2.1.8...v2.1.9
116
137
  [2.1.8]: https://github.com/labKnowledge/omnish/compare/v2.1.7...v2.1.8
117
138
  [2.1.7]: https://github.com/labKnowledge/omnish/compare/v2.1.6...v2.1.7
package/README.md CHANGED
@@ -8,7 +8,17 @@
8
8
 
9
9
  **Allowlisted inbox → your real shell.** No AI layer: commands run on **your** machine, and only identities you allow can trigger them.
10
10
 
11
- **Try it:** [omnish.dev](https://omnish.dev) · `npm install -g omnish` → **[Quick start](docs/guides/quick-start.md)** (first `!` command in minutes).
11
+ **Try it:** [omnish.dev](https://omnish.dev) · one-command install → **[Quick start](docs/guides/quick-start.md)** (first `!` command in minutes).
12
+
13
+ ```bash
14
+ # Linux / macOS / WSL
15
+ curl -fsSL https://platform.omnish.dev/action/install-omnish.sh | bash
16
+ ```
17
+
18
+ ```powershell
19
+ # Windows (PowerShell)
20
+ irm https://platform.omnish.dev/action/install-omnish.ps1 | iex
21
+ ```
12
22
 
13
23
  > The OpenClaw alternative that puts developers back in control.
14
24
 
@@ -107,18 +117,23 @@ Each **chat** (WhatsApp DM / Telegram DM) has its own shortcut map on disk (`sho
107
117
 
108
118
  Names are alphanumeric plus `_`/`-`, max 32 characters; several names are reserved (e.g. `help`, `apps`, `bg`). See `/shortcut help` for the full behavior.
109
119
 
110
- ## Install from npm
120
+ ## Install
111
121
 
112
- **Recommendedone command (works on old Node, VPS, macOS, Linux):**
122
+ Use the **guided installer** it upgrades Node when needed and runs `npm install -g omnish`. Pick your OS:
113
123
 
114
- ```bash
115
- curl -fsSL https://platform.omnish.dev/action/install-omnish.sh | bash
116
- ```
124
+ | OS | Command |
125
+ | --------------------- | ------------------------------------------------------------------------------- |
126
+ | **Linux** (incl. VPS) | `curl -fsSL https://platform.omnish.dev/action/install-omnish.sh \| bash` |
127
+ | **macOS** | Same as Linux (Terminal). Uses Homebrew, nvm, or fnm when Node is below 22.13 |
128
+ | **Windows** | `irm https://platform.omnish.dev/action/install-omnish.ps1 \| iex` (PowerShell) |
129
+ | **WSL** | Use the Linux command inside your WSL distro |
117
130
 
118
- The installer upgrades Node when needed, installs build tools on Debian/Ubuntu, runs `npm install -g omnish`, and prints your next steps (`link` → `allow` → `start` → first `!` command).
131
+ The installer prints next steps: `omnish link` → `omnish allow` → `omnish start` → first `!` command in chat.
119
132
 
120
133
  ### Already on Node 22.13+
121
134
 
135
+ If `node -v` shows v22.13 or newer, you can skip the installer:
136
+
122
137
  ```bash
123
138
  npm install -g omnish
124
139
  omnish link
@@ -126,7 +141,7 @@ omnish allow +YOUR_E164
126
141
  omnish run
127
142
  ```
128
143
 
129
- `npm install -g omnish` on Node below 22.13 will fail by design — use the installer above instead (do not fight `EBADENGINE` warnings on distro Node 12).
144
+ `npm install -g omnish` on Node below 22.13 will fail by design — use the installer above (ignore `EBADENGINE` warnings on old distro Node).
130
145
 
131
146
  **Single phone:** omnish runs on a PC or server; you link it like WhatsApp Web (one QR scan on your phone). See [Quick start — One phone with WhatsApp](docs/guides/quick-start.md#one-phone-with-whatsapp).
132
147
 
@@ -0,0 +1,133 @@
1
+ # omnish bootstrap installer for Windows — Node 22.13+ then npm install -g omnish
2
+ # Canonical URL: https://platform.omnish.dev/action/install-omnish.ps1
3
+ # Usage: irm https://platform.omnish.dev/action/install-omnish.ps1 | iex
4
+
5
+ $ErrorActionPreference = "Stop"
6
+
7
+ $OmnishSpec = if ($env:OMNISH_NPM_SPEC) { $env:OMNISH_NPM_SPEC } else { "omnish" }
8
+ $NodeMajor = if ($env:OMNISH_NODE_MAJOR) { $env:OMNISH_NODE_MAJOR } else { "22" }
9
+ $InstallScriptUrl = "https://platform.omnish.dev/action/install-omnish.ps1"
10
+
11
+ function Write-Banner {
12
+ Write-Host ""
13
+ Write-Host " omnish — allowlisted inbox → your real shell"
14
+ Write-Host " ────────────────────────────────────────────"
15
+ Write-Host " WhatsApp / Telegram / 20+ channels. No AI layer."
16
+ Write-Host ""
17
+ }
18
+
19
+ function Write-Step([string]$Message) {
20
+ Write-Host ""
21
+ Write-Host "▸ $Message" -ForegroundColor Cyan
22
+ }
23
+
24
+ function Get-NodeVersionLabel {
25
+ try {
26
+ return (node -v)
27
+ } catch {
28
+ return "(not installed)"
29
+ }
30
+ }
31
+
32
+ function Test-NodeVersionOk {
33
+ try {
34
+ $raw = (node -v) -replace '^v', ''
35
+ $parts = $raw.Split('.')
36
+ if ($parts.Count -lt 2) { return $false }
37
+ $maj = [int]$parts[0]
38
+ $min = [int]$parts[1]
39
+ return ($maj -gt 22) -or ($maj -eq 22 -and $min -ge 13)
40
+ } catch {
41
+ return $false
42
+ }
43
+ }
44
+
45
+ function Install-Omnish {
46
+ Write-Step "Installing omnish CLI (npm install -g $OmnishSpec) …"
47
+ npm install -g $OmnishSpec
48
+ Write-Host ""
49
+ try {
50
+ $ver = omnish --version 2>$null
51
+ if ($ver) { Write-Host "✓ omnish $ver" -ForegroundColor Green }
52
+ else { Write-Host "✓ omnish installed (reopen PowerShell if omnish not found)" -ForegroundColor Green }
53
+ } catch {
54
+ Write-Host "✓ omnish installed (reopen PowerShell if omnish not found)" -ForegroundColor Green
55
+ }
56
+ Write-Host ""
57
+ Write-Host @"
58
+ You're ready. Run these next (≈2 minutes to first command):
59
+
60
+ omnish link Link WhatsApp (QR) or Telegram (--tg <token>)
61
+ omnish allow +E164 Allow your phone number
62
+ omnish start Run the gateway in the background
63
+
64
+ Then message yourself: !pwd or !ls
65
+
66
+ Docs: https://omnish.dev · Help: omnish --help
67
+ "@
68
+ }
69
+
70
+ function Try-NvmWindows {
71
+ $nvm = Get-Command nvm -ErrorAction SilentlyContinue
72
+ if (-not $nvm) { return $false }
73
+ Write-Step "Upgrading Node via nvm-windows ($NodeMajor) …"
74
+ nvm install $NodeMajor
75
+ nvm use $NodeMajor
76
+ return $true
77
+ }
78
+
79
+ function Try-WingetNode {
80
+ $winget = Get-Command winget -ErrorAction SilentlyContinue
81
+ if (-not $winget) { return $false }
82
+ Write-Step "Installing Node.js LTS via winget …"
83
+ winget install --id OpenJS.NodeJS.LTS -e --accept-source-agreements --accept-package-agreements
84
+ $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
85
+ return $true
86
+ }
87
+
88
+ function Show-ManualHelp {
89
+ Write-Host ""
90
+ Write-Host "omnish needs Node.js 22.13 or newer."
91
+ Write-Host "You have: $(Get-NodeVersionLabel)"
92
+ Write-Host ""
93
+ Write-Host "Automatic upgrade failed. Pick one path:"
94
+ Write-Host ""
95
+ Write-Host " nvm-windows (recommended):"
96
+ Write-Host " nvm install $NodeMajor"
97
+ Write-Host " nvm use $NodeMajor"
98
+ Write-Host " npm install -g $OmnishSpec"
99
+ Write-Host ""
100
+ Write-Host " winget:"
101
+ Write-Host " winget install OpenJS.NodeJS.LTS"
102
+ Write-Host " npm install -g $OmnishSpec"
103
+ Write-Host ""
104
+ Write-Host " Official installer:"
105
+ Write-Host " https://nodejs.org/en/download"
106
+ Write-Host ""
107
+ Write-Host " Re-run the guided installer:"
108
+ Write-Host " irm $InstallScriptUrl | iex"
109
+ Write-Host ""
110
+ }
111
+
112
+ Write-Banner
113
+ Write-Step "Checking Node.js (need 22.13+, you have $(Get-NodeVersionLabel))"
114
+
115
+ if ((Get-Command omnish -ErrorAction SilentlyContinue) -and (Test-NodeVersionOk)) {
116
+ Write-Host "omnish is already installed."
117
+ try { omnish --version } catch {}
118
+ Write-Host "To upgrade: npm install -g omnish@latest"
119
+ exit 0
120
+ }
121
+
122
+ if (Test-NodeVersionOk) {
123
+ Install-Omnish
124
+ exit 0
125
+ }
126
+
127
+ if ((Try-NvmWindows -or Try-WingetNode) -and (Test-NodeVersionOk)) {
128
+ Install-Omnish
129
+ exit 0
130
+ }
131
+
132
+ Show-ManualHelp
133
+ exit 1
@@ -115,6 +115,17 @@ try_fnm() {
115
115
  return 1
116
116
  }
117
117
 
118
+ try_homebrew() {
119
+ if [[ "$(uname -s)" != "Darwin" ]] || ! command -v brew >/dev/null 2>&1; then
120
+ return 1
121
+ fi
122
+ step "Upgrading Node via Homebrew node@${NODE_MAJOR} …"
123
+ brew install "node@${NODE_MAJOR}"
124
+ brew link --overwrite --force "node@${NODE_MAJOR}"
125
+ hash -r || true
126
+ return 0
127
+ }
128
+
118
129
  try_nodesource() {
119
130
  if ! is_debian_ubuntu; then
120
131
  return 1
@@ -196,6 +207,12 @@ main() {
196
207
  fi
197
208
  fi
198
209
 
210
+ # macOS — Homebrew before nvm when available.
211
+ if [[ "$(uname -s)" == "Darwin" ]] && try_homebrew && node_version_ok; then
212
+ install_omnish
213
+ exit 0
214
+ fi
215
+
199
216
  if try_nvm || try_fnm; then
200
217
  if node_version_ok; then
201
218
  install_omnish
Binary file
Binary file