Skip to main content
Integrations are on the v0.5.0 roadmap and not yet available in production.

Overview

3ngram uses a standardized adapter pattern for third-party integrations: auth > sync > extract > remember > surface. Each integration (GitHub, Basecamp, Linear) implements the same abstract interface for consistent auth flows, sync scheduling, and memory extraction.

Data flow

  1. OAuth Connect: User initiates connection, backend exchanges code for tokens (encrypted at rest with Fernet)
  2. Sync: Initial full sync, then cursor-based incremental syncs every 15 minutes
  3. Extract: Adapter-specific parsing. PRs become commitments, issues become decisions, etc.
  4. Remember: Extracted items stored as standard 3ngram memories, deduplicated by source ID
  5. Surface: Integration memories appear in dashboard, MCP recall, digests, and nudges

Planned providers

ProviderSource dataMemory types
GitHubPRs, reviews, issuesCommitments, decisions, context
BasecampTodos, messages, check-insCommitments, blockers, decisions
LinearIssues, comments, cyclesCommitments, priorities, context

Configuration

Integrations are gated by INTEGRATIONS_ENABLED=false (default). Each provider requires its own OAuth credentials.

Security

  • Tokens encrypted at rest with Fernet (key derived from JWT_SECRET via HKDF)
  • RLS policies enforce user isolation on integration data
  • Sync status tracked per-integration to prevent duplicate processing