Integrations
Connect ReasonKit with your existing tools and workflows.
Supported Integrations
Slack
Send analyses to Slack channels.
# Install integration
rk integrations install slack
# Configure
rk integrations configure slack --webhook-url "https://hooks.slack.com/..."
# Use
rk think "question" --notify slack
Slack Bot:
# Bot configuration
slack:
webhook_url: ${SLACK_WEBHOOK_URL}
default_channel: "#decisions"
notify_on: ["complete", "error"]
format: "summary" # full, summary, synthesis-only
Notion
Export analyses to Notion databases.
# Install
rk integrations install notion
# Configure
rk integrations configure notion \
--api-key "secret_..." \
--database-id "abc123..."
# Export
rk think "question" --export notion
Obsidian
Save analyses to your Obsidian vault.
# Configure vault path
rk integrations configure obsidian --vault "~/Documents/Obsidian/MyVault"
# Export with backlinks
rk think "question" --export obsidian --folder "Decisions"
Generated file structure:
MyVault/
Decisions/
2026-01-15-job-offer-analysis.md
- [[ThinkTools]]
- [[Career Decisions]]
Raycast
Quick access via Raycast command.
# Install extension
raycast://extensions/reasonkit/reasonkit
# Or via CLI
rk integrations install raycast
Alfred
Alfred workflow for quick analysis.
# Install workflow
rk integrations install alfred
Keyword: rk <question> or think <question>
IDE Integrations
VS Code
// settings.json
{
"reasonkit.autoAnalyze": false,
"reasonkit.profile": "balanced",
"reasonkit.keybinding": "cmd+shift+r"
}
Commands:
ReasonKit: Analyze SelectionReasonKit: Analyze CommentReasonKit: Quick Question
JetBrains
Plugin available in JetBrains Marketplace.
Preferences > Plugins > Marketplace > Search "ReasonKit"
Vim/Neovim
-- init.lua
require('reasonkit').setup({
profile = 'balanced',
format = 'markdown',
keymap = '<leader>rk',
})
-- Usage: Select text, press <leader>rk
Webhook Integration
Send analysis results to any webhook endpoint.
# Configure webhook
rk integrations configure webhook \
--url "https://your-endpoint.com/hook" \
--secret "your-secret"
# Use
rk think "question" --notify webhook
Webhook payload:
{
"event": "analysis_complete",
"timestamp": "2026-01-15T10:30:00Z",
"data": {
"question": "...",
"profile": "balanced",
"synthesis": "...",
"full_results": {...}
},
"signature": "sha256=..."
}
Zapier
Connect ReasonKit to 5000+ apps via Zapier.
# Trigger: New Analysis Complete
# Actions: Google Sheets, Email, Slack, etc.
trigger:
type: webhook
url: https://hooks.zapier.com/...
actions:
- type: google_sheets
spreadsheet: "Decision Log"
row:
question: "{{question}}"
synthesis: "{{synthesis}}"
date: "{{timestamp}}"
n8n
Self-hosted workflow automation.
{
"nodes": [
{
"name": "ReasonKit Analysis",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "http://localhost:9100/api/v1/think",
"body": {
"question": "={{$json.question}}",
"profile": "balanced"
}
}
}
]
}
API Keys & Security
Environment Variables
# Store integration credentials
export SLACK_WEBHOOK_URL="..."
export NOTION_API_KEY="..."
export OBSIDIAN_VAULT_PATH="..."
Credential Storage
# Use system keychain
rk credentials store slack-webhook "https://hooks.slack.com/..."
# List stored credentials
rk credentials list
# Remove credential
rk credentials remove slack-webhook
Custom Integrations
Build your own integration:
#![allow(unused)]
fn main() {
use reasonkit::integrations::{Integration, IntegrationConfig};
pub struct MyIntegration {
config: MyConfig,
}
impl Integration for MyIntegration {
async fn on_analysis_complete(&self, result: &AnalysisResult) -> Result<()> {
// Your logic here
}
async fn on_error(&self, error: &Error) -> Result<()> {
// Error handling
}
}
}