Skip to content
Not just live chats

Connect your tools.Give your agents memory.

Feed GitHub, Slack, Discord, docs, support tickets, email, and workflow events into Statewave as durable episodic memory — so your agents recall projects, customers, communities, and decisions, not just the last few chat turns.

Modular packages — install only what you need. The full connector lineup — including the new Jira and database source connectors — is published on npm.

MCP server
GitHub
GitLab
Bitbucket
Gitea / Forgejo
Azure DevOps
Slack
Discord
n8n
Zapier
Zendesk
Intercom
Freshdesk
Markdown / docs
Notion
Gmail
Jira
Database

Connectors & integrations

One contract, many sources

Every connector normalizes its source events into the same Statewave episode shape — so agents query memory by subject (repo:, customer:, community:, contact:) without caring which tool the data came from.

Modular architecture

Modular by design

Connectors live in their own monorepo and ship as separate packages. Install only what you need — using GitHub doesn’t pull in Slack, Notion, or Gmail dependencies, and credentials are scoped per connector.

  • Per-connector credentials — no “all-or-nothing” token bag
  • Dry-run-first by default — preview mapped episodes before any ingestion
  • Built-in best-effort redaction for emails, phone numbers, and common API keys
  • Stable idempotency keys — re-running a sync deduplicates instead of double-storing

The convenience meta-package @statewavedev/connectors re-exports the official connectors for the rare case where you want them all at once. It is not required for normal usage.

install — pick what you need
# Pick what you need — every package is independent
npm install @statewavedev/connectors-github
npm install @statewavedev/connectors-jira
npm install @statewavedev/connectors-database
npm install @statewavedev/connectors-markdown
npm install @statewavedev/connectors-slack
npm install @statewavedev/connectors-n8n
npm install @statewavedev/connectors-zapier
npm install @statewavedev/mcp-server

Track the rollout in the connectors roadmap. Source lives in the monorepo.

Quick start

Dry-run first, ingest second

Every connector supports --dry-run — mapped episodes are printed without being sent anywhere. The CLI refuses to ingest unless STATEWAVE_URL is set.

01

Try GitHub repo memory

Docs
terminal
statewave-connectors sync github \
  --repo smaramwbc/statewave \
  --subject repo:smaramwbc/statewave \
  --dry-run
02

Sync local docs and ADRs

Docs
terminal
statewave-connectors sync markdown \
  --path ./docs \
  --subject repo:smaramwbc/statewave \
  --dry-run
03

Start the MCP server

Docs
terminal
statewave-connectors mcp start

FAQ

Frequently asked questions

What does a Statewave connector actually do?

It normalizes one source system’s events into the same Statewave episode shape, written under a stable subject prefix — repo:owner/name for code, customer: for support, community: for chat, contact: for mail. Because every connector emits the same contract, an agent queries memory by subject without knowing which tool a fact came from, and the compiler and the ranking model treat a Jira ticket and a Slack thread identically.

Which sources can I ingest today?

GitHub (issues, pull requests, comments, reviews, releases), Jira, Slack, Discord, Notion, Zendesk, Intercom, Freshdesk, Gmail, n8n, Zapier, SQL databases, and local Markdown docs, ADRs, and RFCs. The MCP server runs the other direction: it exposes Statewave itself to Copilot, Claude, Cursor, and any MCP-compatible client. All of them ship as separate packages under Apache-2.0.

Do I have to install the whole suite?

No — that is why they are modular packages rather than one binary. Install only the connectors for the systems you actually run, and add more later without touching the runtime or migrating anything: a new source appends new episodes under its own subjects, and existing compiled memories are untouched. A repo-memory-only deployment is just the GitHub and Markdown packages.

How much of my Slack does the connector read?

Only what you allow. It authenticates with a bot token and requires an explicit --channels allowlist, then pulls channel and thread history and subscribes to the Events API for messages, reactions, and pins. Direct messages (dm:<user>) and group DMs (mpim:<channel>) are opt-in behind --include-dms and --include-mpim, and stay off unless you pass them. Per-memory sensitivity labels and the policy engine then govern who can read the result.

Answers last checked against the Statewave docs and repositories on .

CONNECTORS

Start with one connector.
Add more when you're ready

The core stays clean. Connectors are optional, modular, independently versioned, and never required to use Statewave.

Building your own connector? Read the connector contract to understand the shared interface, episode model and dry-run workflow.