> ## Documentation Index
> Fetch the complete documentation index at: https://docs.remyx.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrations

> Connect GitHub, Linear, Jira, Slack, and Claude Code to your Remyx workspace

# Integrations

Remyx connects to the tools your team already uses. Experiments link to PRs, tickets, and Slack conversations — and changes flow bidirectionally via webhooks.

Navigate to **Connectors** in the sidebar to manage your integrations.

***

## Available Integrations

<CardGroup cols={3}>
  <Card title="GitHub" icon="github">
    PR linking, status sync, webhook-driven updates
  </Card>

  <Card title="Linear" icon="square-check">
    Auto ticket creation, label actions, status sync
  </Card>

  <Card title="Jira" icon="ticket">
    Auto ticket creation, webhook sync, status updates
  </Card>

  <Card title="Slack" icon="hashtag">
    Managed AI agent for natural language experiment interaction
  </Card>

  <Card title="Claude Code" icon="terminal">
    AI-powered implementation via MCP server
  </Card>

  <Card title="More coming" icon="ellipsis">
    Statsig, LaunchDarkly, MLflow, and more
  </Card>
</CardGroup>

***

<h2 id="github">
  GitHub
</h2>

### What It Does

* **PR linking**: Experiments track which PR implements them. PR status (open, merged, closed) syncs to the experiment.
* **Webhook sync**: When a PR is merged or closed, the experiment status updates automatically.
* **Repo file tree access**: The launch context builder fetches your repo structure to generate implementation plans with real file paths.

### Setup

1. Go to **Connectors** in the sidebar
2. Click **Connect** on the GitHub card
3. Authorize the Remyx GitHub App for your organization
4. Select which repositories to grant access to

<Note>
  The GitHub integration uses OAuth, not a personal access token. Your token is encrypted at rest and used only for API calls on your behalf.
</Note>

### How It Works

When you create an experiment with a target repository, Remyx uses your GitHub connection to:

1. Fetch the repo file tree for the launch context
2. Link PRs created by Claude Code back to the experiment
3. Receive webhook events when PR status changes

You can also manually add a PR link in the experiment detail sidebar under **Resources**.

***

<h2 id="linear">
  Linear
</h2>

### What It Does

* **Auto ticket creation**: When you create an experiment, Remyx creates a corresponding Linear issue in your connected project.
* **Bidirectional status sync**: Status changes in Linear update the experiment in Remyx, and vice versa.
* **Label actions**: Add labels like `ship`, `abandon`, or `iterate` in Linear to trigger experiment state changes.
* **@remyx mentions**: Mention `@remyx` in a Linear comment to interact with the Remyx agent directly from your ticket.

### Setup

1. Go to **Connectors** in the sidebar
2. Click **Connect** on the Linear card
3. Authorize Remyx with read, write, and admin scopes
4. In **Project Settings** for your project, select which Linear project to link

<Warning>
  The `admin` scope is required for webhook registration. Remyx creates a webhook subscription in your Linear workspace to receive real-time updates. Without this scope, bidirectional sync won't work.
</Warning>

### Webhook Events

| Linear Event                    | Remyx Action                                   |
| ------------------------------- | ---------------------------------------------- |
| Issue status changed            | Experiment status updated                      |
| Label added (`ship`, `abandon`) | Decision state updated                         |
| Comment with `@remyx`           | Managed agent responds with experiment context |
| Issue deleted                   | Ticket link removed from experiment            |

***

<h2 id="jira">
  Jira
</h2>

### What It Does

Same bidirectional sync as Linear, adapted for Jira Cloud:

* Auto issue creation in your connected Jira project
* Status transitions sync both directions
* Webhook-driven updates via Jira's v3 webhook API

### Setup

1. Go to **Connectors** in the sidebar
2. Click **Connect** on the Jira card
3. Authorize via Atlassian OAuth 2.0 (3LO) with `offline_access`, `read:jira-work`, `write:jira-work`, and `manage:jira-webhook` scopes
4. Select your Jira site and project

<Note>
  Jira Cloud v3 webhooks don't use HMAC signing. Remyx verifies inbound webhooks using the `X-Atlassian-Webhook-Identifier` header instead.
</Note>

### Token Refresh

Jira OAuth tokens expire. Remyx automatically refreshes expired tokens before making API calls. If you see auth errors, disconnect and reconnect at **Connectors** to get a fresh token pair.

***

<h2 id="slack">
  Slack
</h2>

### What It Does

The Remyx Slack integration gives your team a managed AI agent that lives in your Slack workspace. Mention `@Remyx` in any channel where the bot is invited, and it will:

* Show your latest research digest
* List and filter experiments
* Create new experiments
* Log decisions on existing experiments
* Answer questions about experiment status

### Setup

1. Go to **Connectors** in the sidebar
2. Click **Connect** on the Slack card
3. Install the Remyx AI app to your workspace via OAuth
4. Select a default channel for digest delivery
5. Invite `@Remyx` to any channels where your team discusses experiments

### Example Interactions

```
@remyx show me today's digest
```

```
@remyx create experiment "Query expansion for ambiguous tickets" 
  with hypothesis "LLM-generated query variations will improve first-response relevance"
  targeting resolution-rate
  tagged retrieval, query-expansion
```

```
@remyx log decision on "Hybrid search" — Ship to 100%. 
Three retrieval experiments now, all positive. This is our best direction.
```

```
@remyx what experiments are running in Customer Support AI?
```

### Scheduled Digests

Configure a daily research digest to post automatically to a Slack channel:

1. In the Remyx app, go to **Account** > **Workflows**
2. Set the delivery time, timezone, and target channel
3. Select which Research Interests to include

The digest runs on a Celery Beat schedule and posts formatted recommendations to your channel every day.

***

<h2 id="claude-code">
  Claude Code (MCP Server)
</h2>

### What It Does

Remyx exposes its ExperimentOps tools via the [Model Context Protocol (MCP)](https://modelcontextprotocol.io). Any MCP-compatible client — including Claude Code, Claude Desktop, and Cursor — can connect and use Remyx tools natively.

This enables AI-assisted experiment workflows: Claude Code can read your experiment context, generate an implementation PR, and update the experiment status — all through natural tool calls.

### Setup

1. Go to **Connectors** in the sidebar
2. Click the gear icon on the **Claude Code** card to view setup instructions
3. Add the Remyx MCP server to your Claude Code config:

```json theme={null}
{
  "mcpServers": {
    "remyx": {
      "type": "http",
      "url": "https://mcp.remyx.ai/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_REMYX_API_KEY"
      }
    }
  }
}
```

4. Click **Test Connection** to verify

<Info>
  Your Remyx API key is available at **Account** > **API Access** in the Remyx app, or at [engine.remyx.ai/account](https://engine.remyx.ai/account).
</Info>

### Available MCP Tools

Once connected, the following tools are available to your MCP client:

| Tool                            | Description                                     |
| ------------------------------- | ----------------------------------------------- |
| `get_digest`                    | Get today's research recommendations            |
| `list_interests`                | List your Research Interests                    |
| `refresh_interests`             | Trigger a fresh paper ranking                   |
| `get_papers`                    | Get papers for a specific interest              |
| `create_experiment`             | Create a new experiment                         |
| `get_experiments`               | List experiments with optional filters          |
| `update_experiment`             | Update experiment fields                        |
| `log_decision`                  | Record a decision on an experiment              |
| `get_experiment_context`        | Get the full context for implementation         |
| `run_experiment_implementation` | Trigger the Claude Code implementation pipeline |
| `get_validation_results`        | Get validation results for an experiment        |
| `close_loop`                    | Close the experiment loop with final results    |

See the [MCP Server](/resources/mcp-server) page for detailed tool documentation.

***

## Identity Resolution

When you connect an integration, Remyx links your external identity (GitHub username, Linear user, Jira account) to your Remyx account. This enables:

* **Webhook attribution**: When you change a ticket in Linear, Remyx knows which Remyx user made the change
* **Token resolution**: Outbound API calls (posting comments, creating tickets) use your OAuth token
* **Cross-platform context**: The experiment detail view shows who did what, regardless of which tool they used

Identity linking happens automatically during the OAuth flow. Remyx fetches your external profile (GitHub `/user`, Linear `viewer`, Jira `/myself`) and stores the mapping.

***

## Security

* All OAuth tokens are **encrypted at rest** using Fernet symmetric encryption
* Tokens are stored in the `integration_connections` table with provider-specific data in a JSONB column
* Webhook payloads are verified via **HMAC signatures** (GitHub, Linear) or **header verification** (Jira Cloud v3)
* Rate limiting: 100 webhook events per minute per workspace
* Replay protection: 10-minute TTL on webhook event IDs
* Service-to-service communication between the MCP server and engine uses short-lived JWTs (5-minute TTL)

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Integration shows 'Connected' but tickets aren't being created">
    Check that your project has a linked project in **Project Settings**. Ticket creation requires knowing which Linear project or Jira board to create the issue in.
  </Accordion>

  <Accordion title="Webhook events aren't syncing">
    Verify that the webhook subscription exists in your external tool. For Linear, check **Settings > API > Webhooks**. For GitHub, check **Settings > Webhooks** on your repo. Remyx registers webhooks automatically on first experiment creation, but if the subscription was deleted, you may need to disconnect and reconnect.
  </Accordion>

  <Accordion title="Jira auth errors after token expiry">
    Jira OAuth tokens expire and need refresh. If auto-refresh fails, disconnect and reconnect at **Connectors** to get a fresh token pair. Make sure the `offline_access` scope was granted during authorization.
  </Accordion>

  <Accordion title="Claude Code can't connect to MCP server">
    Verify your config uses `"type": "http"` (not `"sse"`) and the URL is `https://mcp.remyx.ai/mcp`. Check that your API key is valid at **Account > API Access**.
  </Accordion>
</AccordionGroup>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="MCP Server" icon="server" href="/resources/mcp-server">
    Detailed MCP tool documentation
  </Card>

  <Card title="Experiment Dashboard" icon="chart-line" href="/resources/dashboard">
    See integrations in the experiment workflow
  </Card>
</CardGroup>
