ohwow 0.1.9 → 0.1.10
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/README.md +110 -38
- package/dist/index.js +487 -389
- package/dist/migrations/034-failure-category-trust-level.sql +5 -0
- package/dist/migrations/035-anomaly-alerts.sql +16 -0
- package/dist/web/assets/index-Bdy41GAz.css +1 -0
- package/dist/web/assets/index-BhWfGYMm.js +100 -0
- package/dist/web/index.html +2 -2
- package/package.json +4 -1
- package/dist/web/assets/index-CdHM42bC.css +0 -1
- package/dist/web/assets/index-DQQCP_dY.js +0 -99
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# ohwow
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Send me a message for support at ogsus@ohwow.fun
|
|
4
|
+
|
|
5
|
+
A local AI agent runtime. Free to use with [Ollama](https://ollama.com) for local models. Enterprise features (cloud dashboard sync, WhatsApp, Telegram, scheduling, proactive engine, automations, voice) unlock with an [ohwow.fun](https://ohwow.fun) subscription.
|
|
4
6
|
|
|
5
7
|
## Getting Started
|
|
6
8
|
|
|
@@ -24,28 +26,63 @@ npm install ohwow -g
|
|
|
24
26
|
ohwow
|
|
25
27
|
```
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
## First Launch
|
|
30
|
+
|
|
31
|
+
A setup wizard appears in your terminal. For the free tier, just point it at your Ollama instance. For enterprise features, enter your license key (from the ohwow.fun dashboard, under Settings > License) and your Anthropic API key.
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
Config is saved to `~/.ohwow/config.json`. You only do this once.
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
## What Happens at Startup
|
|
32
36
|
|
|
33
37
|
Once configured, the runtime:
|
|
34
38
|
|
|
35
|
-
1.
|
|
36
|
-
2.
|
|
37
|
-
3.
|
|
38
|
-
4.
|
|
39
|
-
5.
|
|
40
|
-
6.
|
|
39
|
+
1. Loads config from `~/.ohwow/config.json`
|
|
40
|
+
2. Spawns the daemon process
|
|
41
|
+
3. Initializes the local SQLite database
|
|
42
|
+
4. Starts the execution engine, orchestrator, and model router
|
|
43
|
+
5. Connects messaging channels (WhatsApp, Telegram) if configured
|
|
44
|
+
6. Starts the scheduler, proactive engine, and trigger evaluator
|
|
45
|
+
7. Launches the HTTP server (default port 7700)
|
|
46
|
+
8. Connects to the ohwow.fun control plane (enterprise)
|
|
47
|
+
9. Opens a WebSocket for real-time updates
|
|
48
|
+
|
|
49
|
+
From here, agents execute tasks on your hardware using your own API keys. The dashboard sends the work, your machine does the thinking.
|
|
50
|
+
|
|
51
|
+
## CLI Commands
|
|
52
|
+
|
|
53
|
+
| Command | What it does |
|
|
54
|
+
|---|---|
|
|
55
|
+
| `ohwow` | Start the TUI (default) |
|
|
56
|
+
| `ohwow --daemon` | Start daemon in foreground (for systemd/launchd/Docker) |
|
|
57
|
+
| `ohwow stop` | Stop the daemon |
|
|
58
|
+
| `ohwow status` | Check daemon status (PID and port) |
|
|
59
|
+
| `ohwow logs` | Tail daemon logs |
|
|
60
|
+
| `ohwow restart` | Restart the daemon |
|
|
61
|
+
|
|
62
|
+
## TUI
|
|
63
|
+
|
|
64
|
+
The terminal UI opens into a chat interface with tab navigation. Use arrow keys or tab to switch between:
|
|
41
65
|
|
|
42
|
-
|
|
66
|
+
- **Dashboard** — overview of your workspace
|
|
67
|
+
- **Agents** — manage agent configs, memory, and capabilities
|
|
68
|
+
- **Tasks** — view and manage running/completed tasks
|
|
69
|
+
- **Approvals** — review pending items before execution (enterprise)
|
|
70
|
+
- **Activity** — live feed of everything happening
|
|
71
|
+
- **Automations** — webhook-based automation triggers (enterprise)
|
|
72
|
+
- **Contacts** — CRM with leads, customers, partners
|
|
73
|
+
- **Settings** — config, connections, license
|
|
43
74
|
|
|
44
|
-
|
|
75
|
+
Everything you see in the web dashboard is also here, running locally.
|
|
45
76
|
|
|
46
|
-
|
|
77
|
+
## Web UI
|
|
78
|
+
|
|
79
|
+
The runtime serves a built-in React app at `http://localhost:7700`. Same capabilities as the TUI. Useful if you prefer a graphical interface or want to share access with your team on the local network. Override the port with the `OHWOW_PORT` env var.
|
|
80
|
+
|
|
81
|
+
## Orchestrator
|
|
82
|
+
|
|
83
|
+
The orchestrator is a conversational assistant built into the runtime with 40+ tools. Open the Chat tab in the TUI, or use the web UI.
|
|
47
84
|
|
|
48
|
-
You can talk to it naturally
|
|
85
|
+
You can talk to it naturally:
|
|
49
86
|
|
|
50
87
|
| What you say | What happens |
|
|
51
88
|
|---|---|
|
|
@@ -64,7 +101,7 @@ The orchestrator covers: agents, tasks, projects, CRM (contacts, pipeline, event
|
|
|
64
101
|
|
|
65
102
|
### Agent Memory
|
|
66
103
|
|
|
67
|
-
After each task, key facts, skills, and feedback are extracted and stored locally.
|
|
104
|
+
After each task, key facts, skills, and feedback are extracted and stored locally. Memories are periodically consolidated to keep context sharp. On future tasks, relevant memories are retrieved via RAG and compiled into the agent's context. Agents improve the more they work. View any agent's memory from the Agents tab.
|
|
68
105
|
|
|
69
106
|
### Browser Automation
|
|
70
107
|
|
|
@@ -74,42 +111,68 @@ Agents can browse the web using Playwright. Navigation, clicking, form filling,
|
|
|
74
111
|
|
|
75
112
|
Connect WhatsApp through a QR code scan in Settings (no Meta business API needed). Connect Telegram with a bot token. Once connected, incoming messages route to the orchestrator automatically. Your agents can reply, take action, or flag things for your attention. You control which chats are allowed.
|
|
76
113
|
|
|
77
|
-
###
|
|
114
|
+
### Voice
|
|
78
115
|
|
|
79
|
-
|
|
116
|
+
Full voice pipeline with local and cloud options:
|
|
80
117
|
|
|
81
|
-
|
|
118
|
+
- **Speech-to-Text**: Voicebox (Whisper via local FastAPI server), WhisperLocal (via Ollama), or WhisperAPI (OpenAI cloud fallback)
|
|
119
|
+
- **Text-to-Speech**: VoiceboxTTS (local), Piper (local), or OpenAI TTS (cloud fallback)
|
|
82
120
|
|
|
83
|
-
|
|
121
|
+
### A2A Protocol
|
|
84
122
|
|
|
85
|
-
|
|
123
|
+
Connect to external agents using the [A2A protocol](https://google.github.io/A2A/) over JSON-RPC 2.0. Each agent publishes a card at `/.well-known/agent-card.json` describing its capabilities. Trust levels (`read_only`, `execute`, `autonomous`, `admin`) control what external agents can do. Scopes cover tasks, agents, results, and file access. Managed from the A2A tab or through the orchestrator.
|
|
86
124
|
|
|
87
|
-
|
|
125
|
+
### Scheduling and Proactive Engine
|
|
88
126
|
|
|
89
|
-
|
|
127
|
+
Set agents or workflows to run on cron schedules. Create schedules through conversation ("schedule the analyst every Monday at 8am") or from the Schedules tab.
|
|
90
128
|
|
|
91
|
-
|
|
129
|
+
The proactive engine runs every 30 minutes and checks for overdue tasks, aging approvals, and idle agents. It generates nudges (suggestions, not auto-executions) so nothing falls through the cracks.
|
|
130
|
+
|
|
131
|
+
### Goal Planning and Approvals
|
|
132
|
+
|
|
133
|
+
For complex goals, the orchestrator breaks them into multi-step plans with agent assignments and dependencies. Plans start as drafts. You review the steps, approve or reject, and track execution from the Plans tab. Rejected tasks can retry with your feedback included.
|
|
92
134
|
|
|
93
135
|
### Projects and CRM
|
|
94
136
|
|
|
95
137
|
Organize tasks into projects with Kanban boards (backlog, todo, in progress, review, done). The built-in CRM tracks contacts (leads, customers, partners), logs events (calls, emails, meetings), and gives you pipeline analytics. All stored locally.
|
|
96
138
|
|
|
97
|
-
###
|
|
139
|
+
### Automations and Triggers
|
|
140
|
+
|
|
141
|
+
Webhook-based automations that fire on external events. Configure field mapping to extract data from incoming payloads and route it to agents or workflows. Managed from the Automations tab (enterprise).
|
|
98
142
|
|
|
99
|
-
|
|
143
|
+
### Workflows
|
|
144
|
+
|
|
145
|
+
DAG-based multi-agent execution graphs. Define sequences of agent tasks with conditions and branches. Workflows can be triggered manually, on a schedule, or via automation triggers.
|
|
146
|
+
|
|
147
|
+
### MCP Servers
|
|
148
|
+
|
|
149
|
+
Integrate external tools via the [Model Context Protocol](https://modelcontextprotocol.io/). Supports stdio (subprocess) and HTTP (Streamable HTTP) transports. Authentication via OAuth 2.1, bearer tokens, or API keys. MCP tools are auto-adapted to the Anthropic SDK format and can be assigned per-agent or globally.
|
|
150
|
+
|
|
151
|
+
### Code Sandbox
|
|
152
|
+
|
|
153
|
+
Agents can execute JavaScript in an isolated sandbox (Node.js `vm` module). No filesystem, network, or process access. 5-second default timeout, 30-second maximum. Safe globals only (Math, JSON, Date, Array, Object, Map, Set, etc.).
|
|
100
154
|
|
|
101
155
|
### Web Search
|
|
102
156
|
|
|
103
157
|
Agents with web search enabled can search the web during task execution, powered by Anthropic's built-in search tool.
|
|
104
158
|
|
|
159
|
+
### Local Models with Ollama
|
|
160
|
+
|
|
161
|
+
If you run [Ollama](https://ollama.com) locally, the runtime routes lightweight tasks (orchestration, memory extraction) to your local model instead of Claude. The model catalog includes 25+ models across 5 memory tiers with device-aware recommendations. Complex work (planning, agent tasks, browser automation) still goes to Claude. If Ollama goes down, everything falls back to Anthropic automatically.
|
|
162
|
+
|
|
105
163
|
### Offline Mode
|
|
106
164
|
|
|
107
165
|
If ohwow.fun becomes unreachable, the runtime continues with cached agent configs. Tasks still execute, results still store locally. When connectivity returns, everything syncs back up.
|
|
108
166
|
|
|
109
|
-
##
|
|
167
|
+
## Enterprise Mode
|
|
110
168
|
|
|
111
|
-
|
|
169
|
+
Enterprise mode keeps your business data on your infrastructure while syncing operational metadata to the cloud dashboard.
|
|
112
170
|
|
|
171
|
+
**What syncs to the cloud:**
|
|
172
|
+
- Agent configurations (pulled from the dashboard)
|
|
173
|
+
- Task metadata: titles, status, token counts, costs
|
|
174
|
+
|
|
175
|
+
**What stays local:**
|
|
113
176
|
- Prompts and system instructions
|
|
114
177
|
- Agent outputs and full conversations
|
|
115
178
|
- Long-term agent memory
|
|
@@ -117,29 +180,38 @@ The runtime syncs agent configurations from ohwow.fun and reports back only oper
|
|
|
117
180
|
- WhatsApp and Telegram message history
|
|
118
181
|
- Browser session data and screenshots
|
|
119
182
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
## Web UI
|
|
183
|
+
**How it works:**
|
|
123
184
|
|
|
124
|
-
The runtime
|
|
185
|
+
Activate with a license key from the ohwow.fun dashboard (Settings > License). The runtime connects to the control plane via long-polling, receives task dispatches, and sends back status updates. Heartbeats confirm the device is online. Each license is locked to a single device. The cloud dashboard gives you a web interface for managing agents, reviewing tasks, and monitoring your workspace without touching the terminal.
|
|
125
186
|
|
|
126
|
-
## Headless Mode
|
|
187
|
+
## Headless / Daemon Mode
|
|
127
188
|
|
|
128
|
-
For servers, containers, or always-on deployments
|
|
189
|
+
For servers, containers, or always-on deployments:
|
|
129
190
|
|
|
130
191
|
```bash
|
|
131
|
-
ohwow --
|
|
192
|
+
ohwow --daemon
|
|
132
193
|
```
|
|
133
194
|
|
|
134
|
-
|
|
195
|
+
Runs the daemon in the foreground (no TUI). Suitable for systemd, launchd, or Docker. Set `OHWOW_HEADLESS=1` as an alternative. The web UI still runs normally. Configure through environment variables.
|
|
196
|
+
|
|
197
|
+
## Configuration
|
|
198
|
+
|
|
199
|
+
Config lives at `~/.ohwow/config.json`. Key environment variables:
|
|
200
|
+
|
|
201
|
+
| Variable | Purpose |
|
|
202
|
+
|---|---|
|
|
203
|
+
| `OHWOW_PORT` | HTTP server port (default 7700) |
|
|
204
|
+
| `OHWOW_HEADLESS` | Set to `1` for headless mode |
|
|
205
|
+
| `OHWOW_BROWSER_HEADLESS` | Set to `false` to show the browser |
|
|
206
|
+
| `ANTHROPIC_API_KEY` | Anthropic API key for Claude models |
|
|
135
207
|
|
|
136
208
|
## Supported Models
|
|
137
209
|
|
|
138
210
|
| Model | Provider |
|
|
139
|
-
|
|
211
|
+
|---|---|
|
|
140
212
|
| Claude Opus 4.6 | Anthropic |
|
|
141
|
-
| Claude Sonnet 4.
|
|
142
|
-
| Claude Haiku 4 | Anthropic |
|
|
213
|
+
| Claude Sonnet 4.6 | Anthropic |
|
|
214
|
+
| Claude Haiku 4.5 | Anthropic |
|
|
143
215
|
| Any Ollama model | Local |
|
|
144
216
|
|
|
145
217
|
## License
|