xyne-spaces is a free, open source collaboration & communication project written in TypeScript and released under Apache-2.0. It has 684 GitHub stars, 527 forks and 514 open issues, and was last pushed 2 hours ago. On this registry it ranks #48 of 58 tracked projects in Collaboration & Communication, with 5 head-to-head comparisons available.

What is xyne-spaces?

Xyne Spaces is an open-source "AI Org-OS" — an Apache-2.0, TypeScript collaboration platform that keeps an organization's context in one permission-aware store and serves it back to both people and AI agents, making it a fit for teams that want human and agent work running over the same company knowledge rather than across a dozen disconnected tools.

What it is

Xyne Spaces sits in the Business Software / Collaboration & Communication category and describes itself as an organization's context layer, with collaborative apps built around it. Connectors bring in what an organization already knows — Slack, Google Workspace, Microsoft 365 and more — normalised into a store built for both records and retrieval, and served back to people and agents through permission-aware org-context APIs, so every caller receives exactly the slice it is allowed to see. Around that core sit the org apps — Call, Claw, Agentic Search, Automations, Customer Support Desk, Chat, Canvas and Tickets — adopted as an organization chooses. The repository records 684 stars and 527 forks, and the project breaks into four stacks: Context, Collaboration, Agentic workflows and Org productivity apps.

The concrete problem it addresses is fragmented context. Rather than piecing together what the organization knows from a dozen tools whenever a person or an agent needs it, the platform normalises, deduplicates, threads and indexes that material in one place. Access control is enforced at the data layer rather than bolted on: reads are scoped to the acting user, writes pass through the same permission layer, and agents inherit the access of the person invoking them, so there is no privileged bypass. Work done inside the apps lands in the same context store, filtered by the same model.

Key capabilities

  • Connectors for Slack, Google Workspace and Microsoft 365 that normalise incoming material into a store built for records and retrieval.
  • Bulk import of existing history from Jira, Confluence and Slack, with deduplication, threading and indexing applied to the imported corpus.
  • Permission-aware org-context APIs that serve each caller only the slice of context it is permitted to see.
  • Hybrid retrieval across conversations, documents, tickets and call transcripts, with one index backing both the search box and an agent's context lookups.
  • An isolated agent sandbox in which Claw agents hold no credentials of their own, reach context through the same permission checks as the UI, and pause for explicit approval.
  • An MCP tools surface for connecting agents to the platform.
  • Org apps that are real-time and shared by default, so people and agents work in the same threads, tickets and canvases.

Who uses it and how

  • Organizations already running on Slack, Google Workspace or Microsoft 365 that want that knowledge normalised into one index instead of queried tool by tool.
  • Teams with existing history in Jira, Confluence or Slack that needs to be brought across rather than abandoned.
  • Support and operational teams that adopt the Customer Support Desk and Tickets apps alongside the shared context store.
  • Teams that roll out incrementally, since the org apps are adopted as an organization chooses, and agent builders working through the MCP tools surface and the sandbox.

Getting started

The README provides a Quickstart section for setup and points to a hosted instance at https://spaces.xyne.ai. The excerpt available here does not name a package, container image or Compose file, so those specifics would need to be confirmed from the linked Quickstart and documentation.

How it compares

The facts supplied for this entry do not name any comparable or competing product, and no list of paid tools that Xyne Spaces replaces is provided. It therefore stands alone in this registry under Business Software / Collaboration & Communication.

When to use it — and when not to

Self-hosting means running the platform, wiring the connectors to Slack, Google Workspace or Microsoft 365, importing existing history and exposing an MCP tools surface to agents, so a team should expect real operational work rather than a drop-in install. Organizations that do not use those source systems, or that want a single-player tool rather than a shared context layer, are not the intended audience. The repository also carries 514 open issues against 684 stars, no release or versioning information is given, and the documentation excerpt supplied here stops mid-sentence on the agent approval workflow, so the full documentation is worth reading before committing.

project readme (upstream, from github) — read inline

Xyne Spaces

The org OS — your organization's context layer, with collaborative apps built around it. Real-time, permission-aware and built for agents.

At the center: your org's context. Connectors bring in what your organization already knows — Slack, Google Workspace, Microsoft 365 and more — normalised into a store built for records and retrieval, and served back to your people and your agents through permission-aware org-context APIs, so every caller gets exactly the slice they're allowed to see.

Around that core sit the org apps — Call · Claw · Agentic Search · Automations · Customer Support Desk · Chat · Canvas · Tickets — adopted as you choose, where your team can do the work directly. Work done in them lands straight in the same context store — with each read and write filtered through the same permission model.

Quickstart · Community · Architecture · Agents · MCP tools · Documentation · Contributing · License · PRs welcome

📁 Table of Contents

Why Xyne Spaces?

Context is the foundation. Every conversation, decision, ticket, document, and call adds to your organization’s understanding of what it knows, how it works, and where it’s going. Query responses, automation, and agents are only as good as the context they can reach.

That context has to live in one place — normalized, indexed, and served through one interface — rather than pieced together from a dozen tools every time a person or agent needs it.

The apps build the context as work happens. They are agent-first and collaboration-first: real-time and shared by default, with people and agents working together in the same threads, tickets, and canvases.

Accessing context — through search or agents — must respect the permissions of the underlying work, so access control is enforced at the data layer:

  • Reads respect user permissions. Queries are scoped to the acting user, returning only the context they’re allowed to access.
  • Writes are enforced centrally. Mutations go through the same permission layer, so access rules apply consistently across apps and features.
  • Agents inherit the user’s access. Agents act as the person invoking them, so they can only search, read, and act on context that person can access. There is no privileged bypass.

What can I do with Xyne Spaces?

Xyne Spaces breaks down into four stacks:

  • Context — the store at the center: connectors bring in what the org knows, and permission-aware APIs serve it back.
  • Collaboration — real-time work with your team: Chat, Call, Canvas.
  • Agentic workflows — Claw agents, Agentic Search and Automations, all working from the same context.
  • Org productivity apps — Customer Support Desk and Tickets for the day-to-day running of the org.
Bring your org's context into one place

Sync conversations, tickets, email and calendars from the tools you already use, or bulk import history from Jira, Confluence and Slack. Everything is normalized, deduplicated, threaded and indexed for hybrid search.

Search across everything you're allowed to see

Hybrid retrieval over the full corpus — conversations, documents, tickets, call transcripts — scoped to the person asking. The same index backs both the search box and an agent's context lookups.

Run agents that actually have context

Agents run inside an isolated sandbox with no credentials of their own, reach your context through the same permission checks as the UI, and pause for explicit approval before doing anything that writes. They can search, summarize, triage, draft, review code and act across connected systems.

Work in real time, collaboratively

Channels, threads, tickets, boards, calls and collaborative canvases. The client keeps a live local replica rather than polling, so edits appear instantly.

Automate the routine work

Scheduled agent runs, ticket triage and classification, entity extraction, draft replies, SLA and deadline tracking, recaps and daily briefs — background jobs rather than things someone has to remember.


Architecture

Agents and the sandbox

Agents here run real code — they read repositories, execute shell commands, call internal APIs and write files. That is the point, and it is also the risk. So the agent plane is split across three tiers, and the split is the security model:

the tier that runs untrusted code holds no secrets, and the tier that holds every secret runs no untrusted code.

The gateway holds everything. claw-auth verifies the HMAC-signed webhook from Spaces, resolves the agent and its credentials, dispatches the run, and then executes every external tool call itself through /mcp/call. It also owns the backing stores — Postgres for agents and credentials, Redis and BullMQ for scheduled jobs and run recovery, GCS for session checkpoints.

The runtime has no secrets and no shell. The xyne-claw pod runs the LLM agent loop and a set of path-scoped filesystem tools. It cannot reach a connected system directly: it posts a tool name and parameters back to the gateway with a short-lived HMAC session token and receives only the result. A compromised run yields no reusable secret, because none was ever there.

Bash lives behind a hypervisor. Anything that needs a real shell runs in a Kata Containers QEMU microVM with its own kernel, driven by the gateway through sandbox-* control-plane calls. That VM has egress closed — no network, no gateway credentials — so it is safe by isolation rather than by permission. Setup lives in apps/xyne-claw/infra/kata/.

Writes need a human. Read tools run freely. Tools that create a ticket, schedule a call, edit a canvas or send a message as you post an approve/decline card in the thread and wait for a click. The distinction is identity, not danger: acting as the bot is autonomous, acting as you needs your consent.


Quickstart

Prerequisites — Node.js 22.x, pnpm 10.15.0, and a container runtime with Compose.

On macOS we recommend OrbStack — lighter and faster than Docker Desktop. Install it with Homebrew (or download from orbstack.dev) and launch it once so the daemon starts:

brew install orbstack
open -a OrbStack

Docker Desktop and Podman also work. Details in Prerequisites — or, for a machine with nothing installed yet, follow Local Setup end to end.

git clone https://github.com/juspay/xyne-spaces.git
cd xyne-spaces
pnpm run up
What pnpm run up does

Each phase runs serially and stops at the first failure. Every phase is idempotent, so re-running it on an existing checkout is safe — and you can run any phase on its own.

Phase What it does
pnpm run env:setup Copies each app's .env.example into place — never overwrites an existing file
pnpm run setup Installs workspace dependencies and builds the shared packages
pnpm run secrets Generates the local secrets that ship as set-me placeholders
pnpm run services Asks which features you need, checks ports, starts infrastructure containers, runs migrations, seeds the databases
pnpm run dev Asks which apps to run, then opens them in a multi-pane process TUI (one pane per app, restart any one with r)

The pickers remember previous answers, and both stages check that the ports they need are free before starting — naming the process that holds a busy one. Scripted runs skip every prompt (pnpm run bootstrap:raw, XYNE_DEV_APPS=all pnpm run dev).

The bootstrap phases and validate use Xyne Doctor. In an interactive terminal, a nonzero exit can package a redacted local failure report and hand it to Claude Code or Codex without leaving the terminal. Plain and automated runs keep normal output without persisting a report. See Xyne Doctor for safety behavior and a demo.

Once it finishes:

Service URL
Dashboard http://localhost:5173
Backend API http://localhost:3001
API reference API_DOCUMENTATION.md
Xyne Claw http://localhost:3002
Claw Auth http://localhost:3003

Sign in locally with [email protected] / xynelocal@123.

Stuck? → Troubleshooting. Configuring model providers? → AI providers.


Connectors

Context arrives two ways. Live sync is continuous — webhooks in, scheduled pulls out. Migration is a one-time bulk import of history. Both end in the same place: normalized records in PostgreSQL, indexed into Vespa, behind the same ACLs as everything else.

Connector Type Brings in
Slack Live sync + migration Channels, threads, messages; ticket intake from Slack
Gmail / Google Workspace Live sync Mail, attachments, calendar
Microsoft 365 Live sync Mail and calendar
Jira Migration Projects, issues and history
Confluence Migration Spaces, page trees and attachments

The pipeline is platform-agnostic: each connector is an adapter — resolve, authenticate, transform, sync — and everything after it is shared. Adding a platform means writing an adapter, not touching the pipeline. Credentials are stored encrypted and decrypted only at the moment of use.

→ Adapter contract: apps/backend/src/integrations/README.md


Org apps

Eight apps, adopted independently. All of them read and write through the same context store and permission model.

App What it does
Call Team calls with recordings; transcripts are indexed into the context store.
Claw Sandboxed agents that read repositories, run code and call tools on connected systems; actions taken as you require approval.
Agentic Search Search across conversations, documents, tickets and call transcripts, scoped to the person asking; the same retrieval backs agents' context lookups.
Automations Scheduled agent runs and background jobs: ticket triage and classification, entity extraction, draft replies, SLA tracking, recaps.
Customer Support Desk Ticket intake, queues and triage.
Chat Channels, threads and DMs, live-synced.
Canvas Collaborative documents, drafted and reviewed together in real time.
Tickets Tickets and boards for planning and tracking work.

MCP tools

Connectors bring context in. MCP tools let an agent act on an external system — different system, different code path, configured per user rather than per workspace.

Claw Auth brokers 50+ MCP integrations. A representative slice:

Category Examples
Code and delivery GitHub, Bitbucket, Sentry, Grafana, Honeycomb, Kibana
Work tracking Asana, Notion, Calendly, Docusign
Data BigQuery, ClickHouse, Databricks, MongoDB, Neo4j
Product and growth Amplitude, Mixpanel, Customer.io, HubSpot, Salesforce, Intercom
Design and docs Figma, Miro, Excalidraw, Webflow
Xyne first-party Spaces context search, ticket and canvas tools, knowledge base, dashboard

A connector only appears for a user once they have connected it, so an agent's available tools are a function of that user's own integrations — and tool sets are scoped per agent rather than handing every run the full catalogue.


Demos

📹 Walkthroughs are being recorded. Links land here as they are published.

Demo What it covers Link
Getting started Clone to running locally in one command coming soon
Spaces tour Channels, threads, tickets, boards and canvases coming soon
Permission-aware context The same search, two users, two different result sets coming soon
Agents in a thread Asking an agent, citations, approving a write action coming soon
Connecting a source Connecting Slack and watching context arrive coming soon
Migrating from Jira / Confluence Preview, mapping and import coming soon

Repository map

xyne-spaces/
├── apps/
│   ├── backend/            REST API, Zero sync server, workers, integrations
│   ├── dashboard/          Web client — React 19 + Vite + Zero
│   ├── dashboard-external/ Externally embeddable dashboard
│   ├── electron/           Desktop wrapper
│   ├── public-web/         Public marketing site
│   ├── site/               Documentation site
│   ├── xyne-claw/          Agent runtime — the sandbox
│   └── xyne-claw-auth/     Identity, credential store, MCP gateway
├── packages/
│   ├── shared/             Zero schema, query ACLs, shared types
│   ├── framework/          Agentic framework library
│   ├── icons/              Icon set
│   └── xyne-claw-mcp/      MCP server + plugin for Xyne Claw agents
├── vespa-core/             Search schemas and deployment
├── docker/                 Container configuration
├── docs/                   Setup documentation
├── scripts/                Bootstrap, seeding and validation scripts
└── tools/                  E2E automation and analysis tooling
Component Stack
Backend Node 22, TypeScript, Express, Prisma, PostgreSQL, Redis, Bull
Sync Zero (Rocicorp), ACL-enforced queries and mutators
Dashboard React 19, Vite, Tailwind, Radix UI, XState, TipTap
Search Vespa
Agents Xyne Claw + Claw Auth, MCP tooling, LiteLLM for model access
Isolation Kata Containers with QEMU microVMs, egress closed

Documentation

Guide
Local setup From a blank machine to a running environment
Prerequisites Versions and tooling you need first
Local development Getting a working environment
Services What the infrastructure containers do
AI providers Configuring model access
Troubleshooting When setup goes wrong
API reference REST API documentation
MCP Gateway integration Claw Auth MCP gateway integration guide

Contributing

Read CONTRIBUTING.md first — it covers what the tooling enforces, so a first pull request does not bounce on something mechanical. In short: branches are fix/* or feature/*, commits are : , and dependencies are added with a --filter.

For anything larger than a small fix, open an issue first so the approach can be agreed before it is written. Participation is governed by our Code of Conduct.

Feature requests and bugs

License

Licensed under the Apache License 2.0.

Frequently asked questions

Is xyne-spaces free to use?

xyne-spaces is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does xyne-spaces do?

The AI Org-OS — a collaborative platform for humans and agents. Explore: https://spaces.xyne.ai

What is xyne-spaces written in?

xyne-spaces is primarily written in TypeScript. Its source is publicly available at https://github.com/juspay/xyne-spaces, and it has 684 GitHub stars.