GitHub - slate-ai/slate: An AI-Workspace with a built-in web browser for macOS

3 min read Original article ↗

Slate Logo

An AI-Workspace with a built-in web browser for macOS
Browse the web and chat with AI in one unified, beautiful interface.

Download Now


Slate – AI search results for best running shoes for men


Slate is an open-sourced AI-Workspace with a built-in Browser.

Most browsers bolt AI on as an afterthought to a browser. Slate follows an opposite approach, where it's an AI-assistant first and browser is an extension to that.

How it works:

  1. Ask AI about "best road running shoes for men"
  2. AI searches and synthesizes results
  3. Open interesting sources in the same session
  4. Continue asking follow-ups with full context

Chat, browse, research—all in one place.

Features

AI as a First-Class Citizen

  • 4 AI providers — Anthropic Claude, OpenAI, Google Gemini, and local models via Ollama
  • Real-time streaming with live markdown rendering as responses arrive
  • Web search — Claude and Gemini can search the web and cite sources inline
  • Branch conversations — fork any message into a new tab to explore different directions
  • Per-tab AI context — each tab maintains its own independent conversation history

Full Web Browsing

  • Built on WebKit — standards-compliant, fast, and power-efficient
  • Find in page, download manager, audio detection
  • Content blocking — ads and trackers blocked out of the box
  • Site security info — SSL details for every page
  • Seamless tab switching between AI chat and web pages

Sessions & Tab Management

  • Sessions group related tabs into focused workspaces
  • Specialized tab types: Chat, Shopping, Research, News, Travel, Science, Image Search
  • Sidebar with drag-and-drop reordering, search, favorites, and pinned sessions
  • Auto-archive — inactive sessions fade to the archive, pinned and favorite sessions stay put
  • Restore any archived session instantly

Beautiful, Minimal UI

  • Glass morphism design — ultra-thin materials and gradient backgrounds
  • 9 built-in color themes
  • Lottie-animated typing indicators
  • Fully keyboard-driven — Cmd+T for new sessions, native macOS shortcuts throughout

Everything Else

  • Secure API key storage via Keychain
  • Auto-updates powered by GitHub Releases
  • Multi-step onboarding wizard
  • Can be set as your default browser

Getting Started

Requirements

  • macOS 15.2 or later
  • Xcode 16 or later
  • An API key for at least one supported AI provider

Build from Source

git clone https://github.com/your-username/slate.git
cd slate
open slate.xcodeproj

Press ⌘+R in Xcode to build and run.

Adding AI Keys

Open Settings → AI Models inside the app and enter your API keys. They are stored securely in the system Keychain — never on disk or in the cloud.

Provider Where to get a key
Anthropic Claude console.anthropic.com
OpenAI platform.openai.com
Google Gemini aistudio.google.com
Ollama ollama.com (runs locally, no key needed)

Architecture

Slate is a native SwiftUI app structured around three layers:

slate/
├── Views/          # SwiftUI views and components
│   └── Supporting/ # Reusable sub-components
├── Models/         # SwiftData models, configuration, state managers
├── Integrations/   # AI provider clients, WebKit integration, auto-update
└── Extensions/     # Swift extensions

Key Technologies

  • SwiftUI + SwiftData for the UI and persistence layer
  • WebKit for web browsing
  • Combine for reactive state
  • MarkdownUI for rich markdown rendering
  • DotLottie for animations
  • Swift Algorithms for collection utilities

Data Model

  • Session → has many Tabs
  • Tab → has one AI (for chat tabs) or a URL (for web tabs)
  • AI → has many ChatMessages (cascade deleted)

See CLAUDE.md for a deeper architectural walkthrough.


Contributing

Contributions are welcome. To get started:

  1. Fork the repo and create a branch from main
  2. Make your changes — keep them focused and minimal
  3. Open a pull request with a clear description of the problem and solution

Please open an issue first for significant changes so we can align on direction before you invest the time.

Development Commands

Action Shortcut
Build ⌘+B
Run ⌘+R
Test ⌘+U
Clean ⌘+Shift+K

Tests live in slateTests/ and use Swift Testing.