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:
| Tool | Description |
|---|---|
Write | Write new file content |
Edit | Edit existing file |
MultiEdit | Multiple edits in one operation |
Read | Read file content |
CreateFile | Create a new file |
UpdateFile | Update file content |
ReplaceInFile | Find and replace in file |
InsertCodeBlock | Insert code at a location |
SearchReplace | Search and replace operations |
FileEdit | Generic file edit |
PatchFile | Apply patches |
ApplyDiff | Apply diff patches |
WriteToFile | Write to file |
ReplaceFile | Replace entire file |
DeleteFile | Delete a file |
GitHub Integration
Connect GitHub repositories to browse code in Stoa and use it as context for the AI agent.
Setup
- Install the Stoa GitHub App on your GitHub organization or personal account via OAuth.
- Select specific repositories to grant access to.
- Import repositories from the GitHub Import dialog in a Space or project view.
Capabilities
| Feature | Status |
|---|---|
| Browse repository files | Available |
| Syntax-highlighted code viewing | Available |
| AI agent context from GitHub files | Available |
| Public and private repositories | Available |
| Read-only file access (default) | Available |
| Promote GitHub files to editable CRDT | Available |
| Creating commits from Stoa | Planned |
| Creating PRs from Stoa | Planned |
| Branch switching after import | Planned |
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