Integrations

Supported AI coding tools and external service integrations including Claude Code, Cursor, Codex CLI, Gemini CLI, GitHub, and Slack.

Stoa integrates with AI coding tools, GitHub, and Slack. The CLI automatically captures sessions from supported tools, while the web platform provides GitHub browsing and Slack notifications.

AI Coding Tools

The Stoa CLI automatically captures sessions from the following AI coding tools. No configuration is needed. Just run intent init in your project and use your AI tools as normal.

Claude Code

The primary and most deeply integrated tool.

How it works:

  • The CLI monitors ~/.claude/projects/{project-path}/*.jsonl
  • Extracts user prompts, agent replies, and file operations
  • Detects 15+ file-editing tools (Write, Edit, MultiEdit, Read, etc.)
  • Correlates file changes to specific exchanges
  • Generates decision enrichments with intent, approach, and impact

What's captured:

  • Full sessions with tool calls
  • File operations with content hashes
  • User prompts and agent responses
  • Timing information for correlation

Cursor CLI

How it works:

  • The CLI monitors Cursor's session output in Claude Code format
  • Extracts Chat and Composer sessions
  • Captures file operations and edits

What's captured:

  • Chat and Composer sessions
  • File operations with context
  • User prompts and AI responses

Codex CLI

How it works:

  • The CLI monitors Codex CLI session output
  • Extracts exchanges and file operations

What's captured:

  • Session data with file operations
  • User prompts and responses
  • Code modifications with context

Gemini CLI

How it works:

  • The CLI monitors Gemini CLI session output
  • Extracts exchanges and file operations

What's captured:

  • Session data with file operations
  • User prompts and responses
  • Code modifications with context

Supported Tool Detection

The session parser detects the following file-editing tools from AI sessions:

ToolDescription
WriteWrite new file content
EditEdit existing file
MultiEditMultiple edits in one operation
ReadRead file content
CreateFileCreate a new file
UpdateFileUpdate file content
ReplaceInFileFind and replace in file
InsertCodeBlockInsert code at a location
SearchReplaceSearch and replace operations
FileEditGeneric file edit
PatchFileApply patches
ApplyDiffApply diff patches
WriteToFileWrite to file
ReplaceFileReplace entire file
DeleteFileDelete a file

GitHub Integration

Connect GitHub repositories to browse code in Stoa and use it as context for the AI agent.

Setup

  1. Install the Stoa GitHub App on your GitHub organization or personal account via OAuth.
  2. Select specific repositories to grant access to.
  3. Import repositories from the GitHub Import dialog in a Space or project view.

Capabilities

FeatureStatus
Browse repository filesAvailable
Syntax-highlighted code viewingAvailable
AI agent context from GitHub filesAvailable
Public and private repositoriesAvailable
Read-only file access (default)Available
Promote GitHub files to editable CRDTAvailable
Creating commits from StoaPlanned
Creating PRs from StoaPlanned
Branch switching after importPlanned

How It Works

  • Files are fetched via the GitHub API (not cloned locally)
  • A read-only badge appears in the editor header for GitHub files
  • You can promote a GitHub file into the workspace to make it editable (no GitHub write-back)
  • Both local workspace files and GitHub files appear in a merged file list
  • The AI agent can reference GitHub files when building context

Slack Integration

Send decision notifications to Slack channels.

Setup

# Configure Slack
intent configure slack --oauth-token xoxb-... --channel "#intent-decisions"

# Or use environment variables
export SLACK_OAUTH_TOKEN=xoxb-...
export SLACK_CHANNEL="#intent-decisions"

What Gets Sent

  • Decision enrichments (when a new decision is captured)
  • Exchange details (optionally, with postExchangeDetails: true)
  • Document sync notifications (when watched files change)

Document Sync

Watch specific directories and notify Slack when files change:

{
  "slack": {
    "docSync": {
      "enabled": true,
      "watchedDirs": ["docs/", "README.md"]
    }
  }
}

Controls

# Enable/disable
intent configure slack --enable
intent configure slack --disable

# Disable via environment
export INTENT_SLACK_DISABLED=1

# Project or global scope
intent configure slack --scope project
intent configure slack --scope global

What's Next