🚀 Next-generation browser that generates UI from Socket Agent APIs using LLMs.
Instead of serving static HTML/CSS, Socket Browser discovers Socket Agent APIs and uses AI to generate appropriate user interfaces on-the-fly. Built with Tauri and Rust for maximum performance and minimal resource usage.
- 🔍 Auto-Discovery: Automatically discovers Socket Agent APIs via
.well-known/socket-agent - 🤖 AI UI Generation: Uses LLMs to generate contextual interfaces through render service
- 💰 Built-in Wallet: Solana wallet with BIP-39 support for micropayments
- 🔐 Authentication: Integrated with socketagent.id for user accounts and credits
- ⚡ Fast & Light: Native performance with small bundle size (10-50MB)
- 🦀 Rust Backend: Type-safe, memory-safe backend with Tauri
- 🎨 Adaptive Design: UI adapts to the purpose of each API
- Rust 1.90+ (
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) - Node.js 16+ (for frontend dependencies)
- System dependencies (Linux):
# Ubuntu/Debian sudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
-
Clone and install dependencies:
git clone <repo-url> cd socketbrowser npm install
-
Run in development mode:
npm run tauri:dev
-
Build for production:
npm run tauri:build
-
Start socketagent.id (authentication service):
cd ../socketagent.id ./socketagent-id # Runs on http://localhost:8080
-
Start socketbrowser-api (render service):
cd ../socketbrowser-api ./api # Runs on http://localhost:8000
-
Try a Socket Agent API:
- Enter any Socket Agent API URL in the address bar
- Sign in with socketagent.id to generate UIs
- The browser will discover and generate an interface
- Discovery: Browser fetches
/.well-known/socket-agentdescriptor from the API - Authentication: User signs in via socketagent.id for render credits
- Generation: Render service uses LLM to create contextual HTML interface
- Interaction: Generated UI elements make real API calls transparently
- Display: Results shown in real-time with adaptive layouts
┌──────────────────────────────────────────────────────────────┐
│ Frontend (ui/) │
│ HTML/CSS/JS with ES6 modules │
└────────────────────┬─────────────────────────────────────────┘
│ Tauri invoke()
┌────────────────────▼─────────────────────────────────────────┐
│ Rust Backend (src-tauri/src/) │
│ • Wallet (Solana, AES-256-GCM, BIP-39) │
│ • Storage (Thread-safe JSON) │
│ • API Discovery & Client │
│ • Auth Client (socketagent.id) │
│ • Render Client (socketbrowser-api) │
└────┬──────────────────┬──────────────────┬───────────────────┘
│ │ │
│ │ │
┌────▼────────┐ ┌─────▼─────────┐ ┌────▼──────────────┐
│ Socket │ │ socketagent.id │ │ socketbrowser-api │
│ Agent APIs │ │ (Auth Service) │ │ (Render Service) │
└─────────────┘ └────────────────┘ └───────────────────┘
- Backend: Rust (Tauri 2.0, Tokio, Reqwest)
- Wallet: Solana SDK, AES-256-GCM, PBKDF2, BIP-39
- Frontend: Vanilla JavaScript (ES6 modules)
- Auth: socketagent.id (JWT-style tokens)
- Render: socketbrowser-api (LLM proxy service)
socketbrowser/
├── ui/ # Frontend
│ ├── index.html
│ ├── css/style.css
│ └── js/
│ ├── main.js # App entry
│ ├── tauri-api.js # Rust command wrappers
│ ├── wallet-ui.js # Wallet interface
│ └── auth-ui.js # Auth interface
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── main.rs # Tauri app
│ │ ├── wallet/ # Solana wallet
│ │ ├── storage/ # Persistent storage
│ │ ├── api/ # API discovery & client
│ │ ├── auth/ # socketagent.id client
│ │ └── llm/ # Render API client
│ ├── Cargo.toml
│ └── tauri.conf.json
└── package.json
# Development with hot reload
npm run tauri:dev
# Build optimized binary
npm run tauri:build
# Check Rust code
cd src-tauri && cargo check
# Run Rust tests
cd src-tauri && cargo testSocket Browser includes a built-in Solana wallet:
- Generation: Create new wallet with 12-word recovery phrase
- Import: From mnemonic or private key (base58)
- Security: AES-256-GCM encryption with PBKDF2 (100k iterations)
- Features: Balance queries, transaction signing
- Network: Solana mainnet-beta
Access wallet via the 💰 button in the top-right corner.
Sign in with socketagent.id to generate UIs:
- Click the 👤 button in the top-right
- Create an account or sign in
- Tokens are stored locally and refreshed automatically
- Each UI generation consumes 1 render credit
The browser connects to these services by default:
- socketagent.id:
https://socketagent.io(authentication) - socketbrowser-api:
http://localhost:8000(render service)
To change these, edit the Rust source:
- Auth URL:
src-tauri/src/auth/mod.rs - Render URL:
src-tauri/src/llm/mod.rs
Compared to the previous Electron version:
| Metric | Electron | Tauri | Improvement |
|---|---|---|---|
| Bundle Size | 150-300MB | 10-50MB | 90% smaller |
| Memory Usage | ~200MB | ~60MB | 70% less |
| Startup Time | 2-3 sec | <1 sec | 3x faster |
| Backend | Node.js | Rust | Type-safe |
Socket Browser demonstrates the future of web interaction:
- APIs describe their capabilities in machine-readable formats
- Browsers intelligently generate appropriate interfaces
- No more static HTML - everything is dynamic and contextual
- Universal accessibility through AI-generated UIs
- Decentralized, open protocols for API discovery
BSD-3-Clause License - see LICENSE file for details.
Copyright (c) 2025 socketagent