Loom is a remote-first coding-agent environment.

A Rust backend owns agent sessions, tool execution, workspace state, and model integrations. A GPUI client runs natively or in the browser and attaches to a local or remote backend.

Loom is pre-1.0, so interfaces, configuration, and on-disk state can change between releases. The security and trust model describes what a worker can reach and what it stores; read it before using Loom with sensitive data or exposing it beyond a trusted boundary.

Open the browser client Connects to a backend you specify.
The Loom browser client showing a shared session: a direction one person gave the agent, the agent's reply, and a peer chat exchange between two people, with the message composer below.
The browser client, connected to a backend, showing a session shared by two people. Full size

What it does

Clients and backend

The native app embeds a worker, so it can run a session without a separate server. The browser client is the same GPUI interface compiled to WebAssembly; it connects to a backend over the Loom protocol. Either client can attach to a backend on another machine.

loom-server is that backend as a standalone process, and loom-cli is a headless client of the same protocol.

Shared sessions

A session can have more than one person attached. People sign in with GitHub and appear on the session's roster with a role and their presence: online, away, or offline.

Owner
Grants and revokes access, sets roles, selects the provider credential for later runs, and sets the session's approval policy.
Participant
Sends agent directions and answers, approves or rejects pending actions, controls runs, and uses terminals, tasks, and edits.
Observer
Reads the session, its runs, roster, and revisions, and can request a higher role.

Each direction, answer, approval, and run action is attributed to the person who gave it, and actions are ordered against the revision they were decided on, so an action on a stale revision is rejected rather than applied twice.

Peer chat is addressed with @people or @name. It is stored with the session history, is never sent to the model, and does not start or continue a run.

Run it

The native client is built with Cargo (Rust 1.99 or newer). From the repository root:

cargo run -p loom-ui -- --demo
cargo run -p loom-ui -- --project /path/to/project

--demo starts the client without a provider; the second command opens a project directory. Linux system packages and other build notes are in Build and run.

For browser development, ./scripts/dev-wasm.sh serves a backend and the browser client on loopback. It needs Trunk and the wasm32-unknown-unknown target.

The deterministic demo runs without a backend or a provider credential.

Documentation

License

Loom is open source. Individual crates declare their license in Cargo.toml: the reusable core crates are GPL-3.0-only; loom-protocol and loom-server are AGPL-3.0-only.