Skip to content

Commit ac3388d

Browse files
author
Splash Agent
committed
feat: polish Telegram UX, rewrite README — 2.2.1
1 parent 950e49a commit ac3388d

3 files changed

Lines changed: 183 additions & 195 deletions

File tree

README.md

Lines changed: 39 additions & 189 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
╚══════╝╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
1010
```
1111

12-
### 💧 Splash — Autonomous Agent Platform
12+
### Splash — Autonomous Agent Platform
1313

14-
*TypeScript monorepo · 10-phase agent loop · multi-provider · Ink TUI · background runs*
14+
*A production-grade, self-improving, multi-provider agent platform that is simple, fast, beautiful, and safe.*
1515

1616
[![node](https://img.shields.io/badge/node-%E2%89%A520-2dd4bf?style=flat-square)]()
1717
[![tests](https://img.shields.io/badge/tests-93%20passing-22c55e?style=flat-square)]()
@@ -21,18 +21,10 @@
2121

2222
---
2323

24-
## What is Splash?
24+
## 60-Second Demo
2525

2626
Splash is a **local-first autonomous agent** you call from any directory. One global config file, one command — `splash` — and it builds, edits, debugs, runs shells, reads the web, drives bots, whatever the task needs.
2727

28-
Under the hood: a **10-phase agent loop** (intake → understand → plan → context → tool-select → execute → verify → correct → finalize → persist) over a **multi-provider router** (OpenRouter/Kimi, Claude, GPT, Gemini, DeepSeek, Ollama), backed by a **persistent run store** you can inspect live in an Ink TUI.
29-
30-
It's designed to be dead simple — install it, drop a key, go.
31-
32-
---
33-
34-
## Quick Start
35-
3628
```bash
3729
# 1. Install via npm (works natively on Windows, macOS, and Linux)
3830
npm install -g splash-agent
@@ -44,75 +36,56 @@ splash init # pick provider, paste key, pick model, pick safety
4436
splash "summarize this folder"
4537
splash "build a FastAPI todo service" --background
4638
splash tui # live dashboard
47-
# 3. Advanced Features
48-
splash voice # interactive STT/TTS loop
49-
splash swarm "task" # parallel sub-agents
50-
splash antigravity start # spawn background daemon
5139
```
5240

5341
No `pnpm dev`. No per-project `.env`. Just `splash`.
5442

5543
---
5644

57-
## Features
45+
## Provider Matrix
5846

59-
| | |
60-
|---|---|
61-
| **Global CLI** | One binary. Works from any cwd. `~/.splash/config.json` holds keys + defaults. |
62-
| **Multi-Provider** | OpenRouter (default — unlocks Kimi K2 / DeepSeek / Qwen / Claude / GPT), Anthropic, OpenAI, Gemini, DeepSeek, local Ollama. |
63-
| **10-Phase Loop** | Plan → execute → verify → self-correct. Per-step retry budget. Tool-call trace. |
64-
| **Background Runs** | `splash "..." --background` detaches. Inspect with `splash runs` or attach via TUI. |
65-
| **Ink TUI** | Live dashboard: runs list, task graph, resources, streaming logs, keyboard controls. |
66-
| **Platform Bots** | Telegram, Slack, WhatsApp (Twilio), Messenger (Meta), Discord — shared agent behind all. |
67-
| **Safety Engine** | Pattern-based policy with `strict` / `standard` / `permissive` modes, per-action confirmations. |
68-
| **Persistent Memory** | File-backed memory of successful tool strategies across runs. |
69-
| **18 Built-in Skills** | repo-analysis, code-edit, task-queue, test-runner, debugger, pr-creator, docs-generator, web-scraper, data-analyst, sql-builder, python-runner, shell-runner, and more. |
70-
| **Swarm & Voice** | `splash swarm` spawns parallel research agents. `splash voice` drops you into a Whisper STT / Edge TTS audio chat loop. |
71-
| **Self-Improvement**| `splash self-improve` scans recent logs and permanently alters agent behavior by writing to `~/.splash/learnings.md`. |
72-
| **Antigravity Daemon**| `splash antigravity start` detaches a daemon to poll `~/.splash/queue.json` for autonomous execution of queued tasks. |
47+
| Provider | Access | Models | Free Tier? | Best For |
48+
|---|---|---|---|---|
49+
| **OpenRouter** | API Key | 300+ | Yes | Massive catalog, cheap/free models, fast testing |
50+
| **Claude** | API Key | Opus, Sonnet, Haiku | No | Coding, complex reasoning, large context |
51+
| **OpenAI** | API Key | GPT-4o, o3, o4-mini | No | General purpose, reliable tool calling |
52+
| **Gemini** | API Key | 2.5 Pro, 2.5 Flash | Yes | Huge context windows, fast |
53+
| **DeepSeek** | API Key | R1, V3 | Yes | Strong reasoning, extremely affordable |
54+
| **Ollama** | Local | Llama3, Mistral, Qwen | Yes | Complete privacy, offline use, no API keys |
7355

7456
---
7557

76-
## Commands
77-
78-
### Core
58+
## Command Reference
7959

8060
| Command | What it does |
8161
|---|---|
82-
| `splash` | Interactive chat (defaults to chat when no args) |
62+
| **Run** | |
8363
| `splash "do X"` | One-shot task, foreground |
84-
| `splash "do X" --background` | Detached run; returns an id |
85-
| `splash init` | 30-second wizard → writes `~/.splash/config.json` |
86-
| `splash tui` | Open the live TUI dashboard |
87-
| `splash voice` | Interactive continuous audio STT/TTS loop |
88-
| `splash swarm <task>` | Spawns 3 parallel sub-agents to synthesize an answer |
89-
| `splash antigravity start` | Starts background polling daemon for `TaskQueueSkill` |
90-
| `splash self-improve` | Analyze recent runs to permanently extract behavior rules |
91-
| `splash help` | Show full help |
92-
93-
### Runs
94-
95-
| Command | What it does |
96-
|---|---|
97-
| `splash runs list [--json]` | Show active/recent runs |
98-
| `splash runs logs <id> [--follow]` | Tail events for a run |
99-
| `splash runs attach <id>` | Open a run in the TUI |
100-
| `splash runs stop <id>` | Cancel a running run |
101-
| `splash runs retry <id> [-b]` | Re-run a finished task |
102-
| `splash runs show <id>` | Full JSON record |
103-
104-
### Config
105-
106-
| Command | What it does |
107-
|---|---|
108-
| `splash config list` | Show effective config (keys redacted) |
109-
| `splash config doctor [--json]` | Verify keys, write perms, provider reachability |
110-
| `splash config preset fast\|balanced\|safe` | Apply a profile |
111-
| `splash config set <key> <val>` | Set `defaultProvider`, `defaultModel`, `safetyMode` |
64+
| `splash "do X" --background` | Detached background run; returns an id |
65+
| **Config** | |
66+
| `splash config list/get/set/doctor/preset` | Manage system configuration |
11267
| `splash config set-key <provider> <key>` | Save a provider API key |
113-
| `splash config set-bot <bot> <field> <val>` | Save a bot credential |
68+
| `splash config set-bot <bot> <field> <val>`| Save a bot credential |
69+
| **Providers** | |
70+
| `splash providers list` | Show configured providers + health status |
71+
| `splash providers test <name>` | Ping provider API, report latency |
72+
| **Skills** | |
73+
| `splash skills list` | Manage skills |
74+
| **Memory** | |
75+
| `splash memory list/search/export` | Memory operations |
76+
| **Runs** | |
77+
| `splash runs list/logs/stop/retry/attach` | Run management |
78+
| `splash runs show <id>` | Full JSON record |
79+
| **System** | |
80+
| `splash init` | 5-step setup wizard |
81+
| `splash maintenance [--apply]` | Self-check: config drift, skill failures, provider health |
82+
| `splash self-improve` | Analyze recent runs, write learnings |
83+
| **Advanced** | |
84+
| `splash voice` | Interactive STT/TTS loop |
85+
| `splash swarm <task>` | Spawns parallel sub-agents to synthesize an answer |
86+
| `splash antigravity start` | Starts background polling daemon |
11487

115-
### Platforms
88+
### Platform Bots
11689

11790
`splash telegram` · `splash slack` · `splash whatsapp` · `splash messenger` · `splash discord`
11891

@@ -123,7 +96,7 @@ Each reads its credentials from `~/.splash/config.json` (or env). Webhook ports:
12396
## The TUI
12497

12598
```
126-
┌─ 💧 Splash · Autonomous Agent Dashboard ──── ≈ ─┐
99+
┌─ Splash · Autonomous Agent Dashboard ─────── ≈ ─┐
127100
│ │
128101
│ ┌── Runs ───┐ ┌── Task Graph ────────────────┐ │
129102
│ │ ▸ ◌ build │ │ ✓ intake ✓ plan ◉ execute │ │
@@ -146,42 +119,13 @@ Each reads its credentials from `~/.splash/config.json` (or env). Webhook ports:
146119

147120
---
148121

149-
## Architecture
150-
151-
```
152-
bin/splash.mjs ← global launcher (resolves tsx, preserves cwd)
153-
examples/cli.ts ← CLI router: chat | tui | runs | config | platforms
154-
packages/
155-
utils/ Result<T,E>, logger, theme (banner, spinners, droplet frames)
156-
config/ schema + loader + ~/.splash store
157-
safety/ pattern-based policy engine
158-
memory/ file-backed persistent memory
159-
providers/ Claude / OpenAI / Gemini / Ollama / OpenRouter router
160-
connectors/ fs / terminal / database / http / browser / git
161-
skills/ 18 reusable task recipes
162-
core/
163-
agent-loop.ts 10-phase orchestrator
164-
runs/
165-
events.ts typed RunEvent union
166-
run-store.ts ~/.splash/runs + ndjson logs (schema v1)
167-
run-manager.ts lifecycle + background worker
168-
tui/app.tsx Ink dashboard
169-
bots/ telegram / slack / whatsapp / messenger / discord
170-
```
171-
172-
**Run lifecycle:** `queued → running → succeeded | failed | cancelled`
173-
174-
Each transition is written to the persistent store. Events stream via append-only ndjson so both the CLI (`runs logs --follow`) and the TUI subscribe to the same source.
175-
176-
---
177-
178122
## Configuration
179123

180124
Config precedence (lowest → highest):
181125

182126
1. Schema defaults
183127
2. `~/.splash/config.json`
184-
3. `.env` in cwd + `SPLASH_*` / `ALPCLAW_*` env vars
128+
3. `.env` in cwd + `SPLASH_*` env vars
185129
4. Explicit `loadConfig()` overrides
186130

187131
**Env var names:** `SPLASH_DEFAULT_PROVIDER`, `SPLASH_DEFAULT_MODEL`, `SPLASH_SAFETY_MODE`, `SPLASH_MEMORY_PATH`, `SPLASH_LOG_LEVEL`.
@@ -190,100 +134,6 @@ Config precedence (lowest → highest):
190134

191135
---
192136

193-
## Presets
194-
195-
```bash
196-
splash config preset fast # permissive safety, Kimi K2, foreground
197-
splash config preset balanced # standard safety (default)
198-
splash config preset safe # strict safety, confirms every action
199-
```
200-
201-
---
202-
203-
## Doctor
204-
205-
```bash
206-
splash config doctor
207-
```
208-
209-
Checks:
210-
- ✓ Provider key present
211-
- ✓ Config dir writable
212-
- ✓ Runs dir writable
213-
- ✓ Default provider reachable
214-
215-
Prints `fix:` hints for each failing check. Add `--json` for automation-friendly output.
216-
217-
---
218-
219-
## Background Runs in 3 Commands
220-
221-
```bash
222-
# 1. Start a task in the background
223-
splash "refactor auth module to use JWT" --background
224-
# → run_abc123 started (background)
225-
226-
# 2. Check status
227-
splash runs list
228-
# → run_abc123 running "refactor auth module..." 12s
229-
230-
# 3. Attach in the TUI
231-
splash tui
232-
# → live dashboard with logs, task graph, controls
233-
```
234-
235-
### Troubleshooting Runs
236-
237-
| Problem | Fix |
238-
|---|---|
239-
| Stuck run (status never changes) | `splash runs stop <id>` then `splash runs retry <id>` |
240-
| Corrupted run file | Delete `~/.splash/runs/<id>.json` and `~/.splash/logs/<id>.ndjson` |
241-
| Non-TTY environment (CI, SSH pipe) | All commands fall back to plain text. Use `--json` for structured output. |
242-
| TUI won't render | Ensure terminal supports 256-color. Set `TERM=xterm-256color`. Falls back to run list. |
243-
244-
---
245-
246-
## Development
247-
248-
```bash
249-
pnpm install # install all workspace deps
250-
pnpm test # vitest — 93 tests across 12 test files
251-
pnpm -r run build # type-check + build all 8 packages
252-
pnpm dev # same as `splash` without the global link
253-
```
254-
255-
### Project Structure
256-
257-
| Package | Purpose |
258-
|---|---|
259-
| `@alpclaw/utils` | Result type, logger, theme (banner, spinners, animations) |
260-
| `@alpclaw/config` | Schema, loader, `~/.splash` global store |
261-
| `@alpclaw/safety` | Pattern-based policy engine |
262-
| `@alpclaw/memory` | File-backed persistent memory |
263-
| `@alpclaw/providers` | Multi-provider router (6 providers) |
264-
| `@alpclaw/connectors` | fs / terminal / database / http / browser / git |
265-
| `@alpclaw/skills` | 18 built-in task recipes |
266-
| `@alpclaw/core` | Agent loop, RunManager, TUI |
267-
268-
---
269-
270-
## Goals & Non-Goals
271-
272-
**Goals:** Production-grade. Local-first. Fast first-run. Observable. Extensible (drop a new skill or connector in one file).
273-
274-
**Non-goals (this phase):**
275-
- Multi-host distributed orchestration
276-
- Cloud-hosted run registry
277-
- Web UI
278-
279-
---
280-
281-
## Legacy Name
282-
283-
Splash is the rebrand of **AlpClaw**. The `alpclaw` binary and `ALPCLAW_*` env vars still work — they delegate to `splash`. Legacy `~/.alpclaw/config.json` is auto-migrated on first read.
284-
285-
---
286-
287137
## License
288138

289139
MIT

0 commit comments

Comments
 (0)