Early development

A private, decentralized browser with local AI built in.

The browser is one part of the app, next to local AI, projects, notes, and a peer-to-peer web.

Morph is built so your data stays yours, and nothing leaks.

What Morph is

Morph is a private, decentralized browser with local AI built in. It is a research assistant, a rubber duck, and a journaler: a place for both short-term and long-term work on the web.

The desktop shell is a host for swappable components. Browsing is one of those components, sitting next to chat, notes, projects, and the people you are connected to.

It is standards-based, with pages rendered in the system web view on every platform. A Rust core owns your identity, data, networking, and AI. The UI only draws the screen and handles input.

Features

These are the parts Morph is designed around. Some are already in progress; others are planned in the project priorities.

A standards-based browser

Pages render in the system web view: WebKit on Linux, WKWebView on Apple platforms, WebView2 on Windows, and Android WebView. The browser is one component of the app, not the whole app.

Local AI

Local models are on by default, with one switch to turn them off. Morph starts as a chat partner and rubber duck. Later it becomes a Student that can learn from the browsing you opt into, and a Researcher that keeps research journals across the web, your peers, and your chats.

Projects and code spaces

Projects include templates, notes, a code editor, and code spaces — groups of repos and folders. They are Rust first. A project can be private (the default) or public, and gated or open. Public projects can be served over ordinary HTTPS at your own dynamic DNS name.

A peer-to-peer web on Weirdnet

You get one key identity, shared with Muninn. Peer sites live at weirdnet-morph://. Relays help reach devices that DNS cannot, and Grindvakt dynamic DNS can tie a domain name to your browser.

Notes, a journal, chat, and forums

Write notes and a journal, and talk with the people you are connected to. Forums stay Morph-only.

Your own look and layout

Components can be themed and swapped to fit how you work. A later drag-and-drop layout mode will let you place components and choose what is shown by default.

Sandboxed extensions

Extensions are downloaded and installed only with your permission, signed by the author's key. Each one runs in its own sandboxed process. The first SDK is Rust; other compiled languages can use the same gRPC contract.

Signed updates, never forced

Updates come through Salty Gull. They are signed, and they are never forced: you opt in to each update, or opt in to all of them.

How it's built

A Rust 2024 core owns identity, data, networking, and AI. The shells draw the screen and route input; they do not hold keys or business logic. Anything both shells need lives in a Morph crate that can be tested without a display.

On the desktop, the shell is written in Rust with GPUI, Zed's UI framework. Linux comes first; macOS and Windows on GPUI are planned. On mobile, the shell stays Flutter, on Android, iOS, and F-Droid. Both shells sit on the same Rust crates. Pages use the system web view on every platform.

Platforms and status

Morph is in early development. Phase 1 of the GPUI desktop shell is in progress, with Linux first.

Linux desktop
The current focus. The GPUI shell is being built so you can browse, use tabs and the address bar, and type in pages and popups.
macOS and Windows
Planned on the same GPUI shell, after Linux is solid. Not started yet.
Android, iOS, and F-Droid
The Flutter mobile shell stays. It shares the same Rust core as desktop.
License
BSD 3-Clause. Source is on GitHub .

Install

Arch Linux

The morph and morph-bin packages are coming with the first build. They will be published on the WeirdBrains TAUR server. Until that build is ready, install from source using the steps in the repository README.

From source

Clone the repository and follow the README for current build steps. The GPUI desktop work is happening on main. You will need Rust 1.99 or newer. Flutter 3.50 (Dart 3.14) is required for the mobile app, and for the current Flutter shell on main until the GPUI shell lands.

git clone https://github.com/WeirdBrains/morph.git
cd morph

On Arch, the GPUI desktop shell will need these system libraries:

sudo pacman -S --needed webkit2gtk-4.1 gtk3 libxkbcommon-x11 vulkan-icd-loader

Once the desktop crate is in the tree, the intended command is:

cargo run -p morph-desktop --release

Until then, the README covers building the existing Flutter app in app/.