Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SHELL := /bin/bash

.PHONY: all engine engine-http3 engine-test proxy proxy-test platform-install python-check viz-test smoke docker clean help
.PHONY: all engine engine-http3 engine-test proxy proxy-gui proxy-test platform-install python-check viz-test smoke docker clean help

all: engine ## Build the execution engine (default)

Expand All @@ -20,6 +20,9 @@ engine-test: ## Run the engine's unit tests
proxy: ## Build the intercepting proxy + MCP server -> proxy-rs/target/release/offat-proxy
cd proxy-rs && cargo build --release

proxy-gui: ## Build the intercepting proxy with the cross-platform desktop GUI (offat-proxy gui)
cd proxy-rs && cargo build --release --features gui

proxy-test: ## Run the proxy's unit tests
cd proxy-rs && cargo test

Expand Down
15 changes: 15 additions & 0 deletions docs/proxy.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,21 @@ count. Press `/` to filter history with the same expression language the rules u
`?` shows help, `q` quits. It reads the flow store read-only and never alters
traffic.

## Desktop GUI (cross-platform, opt-in)

```bash
cargo build --release --features gui
offat-proxy gui --scope api.example.test
```

A native window (egui/eframe) that runs on Linux, macOS and Windows, with the same
live flow list, detail pane, scope/rule status and expression filter as the
terminal UI, plus mouse selection. The GUI is an **opt-in build feature** so the
default binary stays a lean, cross-platform CLI with no windowing dependencies —
the CLI, the terminal UI (`tui`) and MCP all work everywhere without it. A build
without the feature still recognises the `gui` command and tells you how to enable
it.

## Rules and filters (live block / allow / tag / match-replace)

A small, safe expression interpreter ("bambdas") matches flows and acts on them
Expand Down
Loading
Loading