A macOS browser with a built-in assistant.
Ask the assistant to search, read websites, and use the tabs you have open. It can click, type, and scroll. Click the page to stop the assistant and continue browsing yourself.
Install · Features · Build · Contribute
Requires macOS 26 or later and Apple silicon.
Download the disk image from the latest release, open it, and drag Linen to Applications. The app checks for updates automatically and asks before downloading.
This README describes the current source. See the release notes for changes in published versions.
- Browse in separate windows with tabs, folders, pins, and split view. Move tabs between windows and restore your windows after relaunch. Search your history and resume downloads. Play media in Picture in Picture and view synced lyrics.
- Group your tabs into spaces. Switch spaces from the sidebar, swipe between them, or press ⌃1 to ⌃9.
- Choose the Standard or Minimal window style in the View menu.
- Import bookmarks from another browser's HTML export in Settings › General.
- Choose Open Link in New Window from a link's context menu. Hold Option to open it in a new private window. These actions are also available for history and frequent sites.
- Type a request to the assistant in the address field or hold ⌥Space to speak.
Use
@to include a tab. You can also attach files and review the assistant's actions in Agent Activity. - Hold Shift while hovering over a link to read a summary, or Shift-click to preview the page.
- Connect GitHub in the side panel to follow pull requests, checks, reviews, and unread GitHub notifications. Save your own search filters. Linen checks for updates while it's open, even without GitHub tabs. Sign-in needs a configured build. See GitHub setup.
- Save passwords, payment cards, and contact details in Settings › Autofill. Unlock saved passwords and cards with Touch ID or your Mac password. To sign in with a passkey, follow the macOS sign-in prompt.
- Install extensions from the Chrome Web Store or Firefox Add-ons. Use the iCloud Passwords extension to fill passwords from the Passwords app.
- Let a space share sign-ins and data with another space, or keep its own cookies, history, tabs, permissions, and extensions. Press ⇧⌘N to open a private window. Closing it ends that private session.
Use Apple Intelligence on your Mac, add a provider API key, or connect to a local server such as Ollama or LM Studio. Supported providers include OpenAI, Anthropic, Gemini, DeepSeek, Groq, Mistral, OpenRouter, and xAI.
External assistants, such as Claude Code, can use Linen through its MCP server after you allow them. They follow the same website permissions as Linen's assistant.
- Set the assistant's access for each website and enable its tools in Settings › Assistant. The assistant asks before making purchases, sending information, or signing in. It cannot fill passwords or card numbers. You can fill these with browser autofill.
- API keys stay in Keychain. Linen sends each key only to its provider. Submitted messages, shared page content, and attachments go to the selected model.
- On-device voice converts speech to text on your Mac. OpenAI dictation and voice conversations send microphone audio to OpenAI. OpenAI reading aloud sends the text to OpenAI. Each OpenAI voice feature is off until you select it in Settings › Voice.
- Private browsing does not save history, tabs, or assistant transcripts.
- Linen blocks known third-party trackers by default. Extensions can block additional trackers.
The assistant uses AI and can make mistakes. Check important information. Report vulnerabilities privately through Security.
Requires Xcode 27.0 or later.
git clone https://github.com/kavoye/linen-browser.git
cd linen-browser
open Linen.xcodeprojSelect the Linen target, set your team in Signing & Capabilities, then build
and run the Linen scheme. Dependencies resolve automatically.
If your team lacks the passkey entitlement, remove this entry from
Linen/Resources/Linen.entitlements. Passkeys will be unavailable in that
build.
<key>com.apple.developer.web-browser.public-key-credential</key>
<true/>Use a signed build for Keychain access. See Contributing for test commands and development guidelines, Architecture for the code structure, and Releasing for distribution.
Linen is licensed under Apache 2.0. Provider logos belong to their owners.
Linen uses Sparkle, AnyLanguageModel, and other open source packages. Full credits and license texts are in Settings › About and Acknowledgements.json.
