You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+22-9Lines changed: 22 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,22 +26,27 @@ flowchart LR
26
26
PX[SOCKS5 Proxy<br/>network policy + MITM]
27
27
end
28
28
29
-
TG[Telegram Bot<br/>approve / deny]
29
+
subgraph Approval["Approval Channels"]
30
+
TG[Telegram<br/>primary]
31
+
WH[HTTP Webhooks]
32
+
end
33
+
30
34
HM[Human]
31
35
UP[Upstream<br/>MCP Servers]
32
36
IN[Internet]
33
37
34
38
OC -- "MCP tool calls" --> GW
35
39
OC -- "all TCP/UDP<br/>(via tun2proxy)" --> PX
36
-
GW --> UP
40
+
GW -- "allowed" --> UP
41
+
GW -. "ask verdict" .-> Approval
37
42
PX -- "phantom -> real<br/>credential swap" --> IN
38
-
PX -. "ask verdict" .-> TG
39
-
TG -. "allow / deny" .-> HM
40
-
HM -. "respond" .-> TG
41
-
TG -. "resolve" .-> PX
43
+
PX -. "ask verdict" .-> Approval
44
+
Approval -. "allow / deny" .-> HM
45
+
HM -. "respond" .-> Approval
46
+
Approval -. "resolve" .-> Sluice
42
47
```
43
48
44
-
**OpenClaw** uses phantom tokens for all API calls. **tun2proxy** routes all traffic to sluice's SOCKS5 proxy (runs as a container in Docker, on the host for Apple Container/macOS VM). **Sluice** evaluates every connection against policy rules (allow / deny / ask). "Ask" verdicts send a Telegram notification with inline buttons. The MITM proxy swaps phantom tokens for real credentials in-flight. Credentials are managed via Telegram or CLI, stored encrypted with age, and hot-reloaded into OpenClaw without restarts.
49
+
**OpenClaw** uses phantom tokens for all API calls. **tun2proxy** routes all traffic to sluice's SOCKS5 proxy (runs as a container in Docker, on the host for Apple Container/macOS VM). Both the MCP gateway and SOCKS5 proxy evaluate requests against policy rules (allow / deny / ask). "Ask" verdicts are broadcast to all configured approval channels (Telegram, HTTP webhooks). The first channel to respond wins. The MITM proxy swaps phantom tokens for real credentials in-flight. Credentials are managed via approval channels or CLI, stored encrypted with age, and hot-reloaded into OpenClaw without restarts.
45
50
46
51
## Quick Start
47
52
@@ -200,9 +205,13 @@ Sluice supports multiple credential backends. Set `provider` in `[vault]` config
200
205
201
206
Chain multiple providers with `providers = ["1password", "age"]`. First provider with the credential wins.
202
207
203
-
## Telegram Bot
208
+
## Approval Channels
209
+
210
+
Sluice broadcasts "ask" verdicts to all configured approval channels. The first channel to respond wins. Other channels get a cancellation notice.
204
211
205
-
Manage sluice from your phone. Approve connections, add credentials, update policy.
212
+
### Telegram (primary)
213
+
214
+
Manage sluice from your phone. Approve connections and tool calls, add credentials, update policy.
206
215
207
216
| Command | Description |
208
217
|---------|-------------|
@@ -214,6 +223,10 @@ Manage sluice from your phone. Approve connections, add credentials, update poli
214
223
|`/status`| Proxy stats and pending approvals |
215
224
|`/audit recent [N]`| Last N audit entries |
216
225
226
+
### HTTP Webhooks
227
+
228
+
REST API on port 3000 for programmatic approval integration. `GET /api/approvals` lists pending requests, `POST /api/approvals/{id}/resolve` resolves them. Use this to build custom approval UIs or integrate with existing workflows.
229
+
217
230
## Audit Log
218
231
219
232
Tamper-evident JSON Lines log with blake3 hash chaining. Every connection, tool call, approval, and denial is recorded.
0 commit comments