Parwe/ˈpɑr·ʋi/
●Open source · built on Matrix · coming soon

Every conversation. One place.

Parwe/ˈpɑr·ʋi/|said par-vi — Finnish for a flock

Parwe is a communication hub you run yourself — all of your organisation’s messaging in one app. Native channels with the UX your team already knows, and everything else bridged in and shown natively: Slack and Teams first, with Google Chat, email and intranet news on the same path. No licence fees, and no data leaving your servers.

Self-hosted·Closed federation·AGPLv3 + Apache-2.0

Status: in early development — the stack below is running in a private pilot. First public release lands in this org. No installable release yet. · Contact author

The problem

Your people should not have to care which platform a conversation lives on.

Most organisations run two or three chat tools at once, plus an intranet nobody reads. The cost is not the licences — it is the daily tax of checking four places and losing the thread between them.

Parwe is being built to put all of it in one client. Native channels are first-class Matrix rooms. Conversations that still live in Slack or Teams arrive through official APIs and render as ordinary messages, with a small origin indicator and nothing else to learn. When a platform behind the wall changes, the chat experience does not.

01Native

Channels, threads, reactions, files, voice messages, search. Familiar on day one.

02Bridged

Slack and Teams first, through official APIs — Google Chat and email next on the same path.

03Feed

Intranet news targeted by team or site, delivered where people already are.

04Swarm

One click from a channel to voice and video, on your own LiveKit.

Origin indicator

Bridged, not embedded.

A bridged message is a real message in your homeserver: searchable, quotable, kept under your retention policy. The only difference a person sees is one quiet label — and the fact that some formatting cannot survive the trip.

  • Parwe Relay talks to the official Slack and Microsoft Graph APIs.
  • No scraping, no unofficial clients, no shared credentials.
  • Turn a bridge off and the history stays behind in Parwe.
Same room, three origins
Sanna Koski09:14

Native message. No label, because there is nothing to explain.

Marko Virta09:16via Slack

Arrived through Relay. Same weight, same typography, one label.

Elina Aho09:21via Teams

Replying in a thread works across the bridge in both directions.

Bridge palette
Slack Microsoft Teams SharePoint news Google Chat Email digest RSS & webhooks Telegram IRC & XMPP

Solid = being built first. Outlined = same architecture, official APIs, on the roadmap.

Architecture

Standard Matrix components, no proprietary core.

Everything below runs on infrastructure you control. Closed federation by default: your homeserver talks to your domains only.

Clients

Parwe WebReact
Parwe DesktopElectron
Parwe MobileiOS · Android
Matrix client-server API
over TLS

Parwe Serveryour infrastructure

Synapsehomeserver

Rooms, timelines, state, optional per-room end-to-end encryption. Federation closed to your domains.

MASOIDC SSO
PostgreSQLstate store
S3media repo
Sygnalpush gateway
Element Call + LiveKitswarms

Integrations

Parwe Relaybridge
Slack API · Microsoft Graph
Parwe Feednews
SharePoint, targeted by team or site
Outbound only, over
official vendor APIs
AGPLv3 · Apache-2.0 no data leaves your servers · federation closed by default
Agents

Agents are members, not integrations.

Parwe is being designed so that AI agents join the hub the way people do: as first-class members with their own identity, presence and permissions — invited to a channel, and removed, like anyone else.

Own identity

A real member with its own name, avatar and access. You always know who — or what — said it.

Full audit trail

Everything an agent does is an ordinary event in the timeline: visible, searchable, retained under the same policy. No invisible automation.

Human gates

Agents propose; people approve. A decision is one reaction in the channel, recorded like any other message.

Whole-hub context

Summarise a bridged Teams thread, watch a feed, draft a reply into Slack — it is all one inbox, so agents see all of it.

Your models. Agents run on your infrastructure with your keys — cloud models or local ones. Conversations never leave your servers to think. Different agents can run different models — and a channel’s policy can pin its agents to models that run in your own racks. Voice messages are transcribed in-house: a local speech model turns them into searchable text, and the audio never leaves your servers.

Self-hosting

Your conversations, your servers.

The reason to run a hub yourself is not cost. It is knowing where the messages are.

Closed federation

Your homeserver talks to your domains only. Nothing replicates to a public network.

Your identity provider

OIDC through Matrix Authentication Service. Leavers lose access when HR says so.

Retention you set

Per-room policies in your database, with exports that satisfy an auditor.

No licence fees

AGPLv3 and Apache-2.0. Read the code, fork it, run it for as many people as you like.

architecture locked core stack in private pilot clients & relay in development agents: designed, not yet built first release: compose quickstart
Run it

Up on your own hardware in an afternoon.

Compose file for a pilot, Helm chart for production. Bring your own Postgres, S3 bucket and identity provider, or start with the bundled defaults and move them later.

This is what the first release will look like — there is no installable release yet.

Quickstartfirst release preview
$ git clone https://github.com/parwe-oss/parwe.git
$ cd parwe && docker compose up -d

parwe web ready on :8080
synapse healthy · mas connected to your idp
relay: 2 slack workspaces, 1 teams tenant
Docker Composepilot
Helm chartproduction
Postgres + S3bring your own