open-index/open-npm huggingface dataset:
npm package: @susu-eng/do-together
Description: OpenClaw plugin that watches your Trakt history, ingests episode transcripts into memory, and sends conversation starters.
Latest version: 2.0.4

# DoTogether

OpenClaw plugin that watches your Trakt history, ingests episode transcripts into memory, and sends conversation starters.

## Install

```bash
openclaw plugins install @susu-eng/do-together
```

## Configure

You'll need a [Trakt API app](https://trakt.tv/oauth/applications) for the client ID and secret.

```bash
openclaw config set plugins.entries.do-together.config.traktClientId '${TRAKT_CLIENT_ID}'
openclaw config set plugins.entries.do-together.config.traktClientSecret '${TRAKT_CLIENT_SECRET}'
openclaw config set plugins.entries.do-together.config.deliveryChannel telegram
openclaw config set plugins.entries.do-together.config.deliveryTo "user:123456789"
```

Set the environment variables:

```bash
export TRAKT_CLIENT_ID="your-trakt-client-id"
export TRAKT_CLIENT_SECRET="your-trakt-client-secret"
```

Then authenticate with Trakt:

```bash
openclaw do-together auth
```

### Optional: transcript fallbacks

If a web transcript isn't found, the plugin can fall back to other sources:

- **Exa neural search** — `openclaw config set plugins.entries.do-together.config.exaApiKey 'your-key'`
- **TMDB synopsis** — `openclaw config set plugins.entries.do-together.config.tmdbApiKey 'your-key'`

## How it works

1. **Detection** — Polls Trakt API every 5 minutes for new episode scrobbles
2. **Transcript acquisition** — Searches the web for full transcripts (subslikescript, foreverdreaming, etc). Falls back to Exa neural search, then TMDB synopsis
3. **Ingestion** — Spawns a subagent that reads the transcript, breaks it into scenes, stores facts in memory via `memory_add`, searches for connections to prior episodes and user knowledge via `memory_search`, and generates insights
4. **Message** — After ingestion, the subagent composes a casual conversation-starter and delivers it via the configured channel

The agent forms its own perspective on the episode through the memory interrogation process, so the message reflects genuine observations rather than generic reactions.

## CLI commands

- `openclaw do-together auth` — Authenticate with Trakt (device code flow)