🌿 Wyndle-您的Slack对话助手
*“我必须乐于助人!我乐于助人非常重要!”*
使用AI和高性能DuckDB存储将您的Slack数据转换为智能个人助理。
  
✨ 特性
🧠 人工智能驱动的智能
- 智能摘要:“埃米尔没什么急事!他祝你节日快乐”,而不是原始信息转储
- 优先级管理:自动识别需要您关注的紧急程度
- 关系分析:了解所有情境下的对话动态和结果
⚡ 高性能数据管道
- DuckDB存储:用于亚毫秒级查询性能的列式数据库
- 连续同步:具有智能速率限制的后台加载器(尊重Slack的45次通话/分钟)
- 人类可读:所有数据都使用真实姓名,而不是神秘的ID
🔗 MCP集成
- 模型上下文协议:与Raycast、OpenAI和其他AI工具无缝协作
- 自然查询:问“需要我注意什么?”并获得可操作的见解
- 可配置的:智能机器人过滤和可定制的响应样式
🚀 快速开始
先决条件
- Python 3.10+
- UV包管理器(推荐)或pip
- 带有机器人令牌的Slack工作区
安装
# Clone the repository
git clone https://github.com/yourusername/wyndle.git
cd wyndle
# Install dependencies
uv sync
# Configure your setup
cp config/config.example.yaml config/config.yaml
cp .env.example .env
# Edit your configuration files
# - Add your Slack API tokens to .env
# - Configure channels to monitor in config/config.yaml⚠️ 重要:确保设置您的SLACK_USER_KEY和OPENAI_API_KEY在.env在运行数据加载器之前。数据库架构将在首次运行时自动创建。
配置
- Slack机器人设置:使用以下范围创建Slack应用程序:
channels:history, groups:history, im:history, mpim:history
users:read, channels:read- 环境变量:添加到
.env:
SLACK_USER_KEY=xoxp-your-user-token-here- 信道选择:编辑
config/config.yaml:
slack:
channels:
- general
- engineering
- data-team
ignored_bots:
- slackbot
- github
- jira用法
# One-time data load
uv run wyndle-pipeline --dataloader
# Start continuous background sync daemon
uv run wyndle-loader start --workers 5
# Check daemon status
uv run wyndle-loader status
# Stop daemon
uv run wyndle-loader stop
# Restart daemon with different worker count
uv run wyndle-loader restart --workers 3
# Launch MCP server for AI integration
uv run wyndle-server
# View database statistics
uv run wyndle-pipeline --database-stats🎯 Raycast集成
安装说明
- 在Raycast中安装MCP扩展
- 打开Raycast - 转到扩展→ Store - 搜索“MCP”并安装MCP扩展
- 安装MCP服务器
- 首先完成上述安装步骤 - 确保你有你的 .env 使用API密钥配置的文件
- 将Wyndle添加到Raycast
- 打开光线投射MCP设置 - 点击“添加MCP服务器” - 命令: /scripts/run-wyndle.sh - 名字: Wyndle - 保存配置
Wyndle Raycast Integration Demo
用法
配置后,您可以直接在Raycast中与Wyndle交互:
@Wyndle please look at my squad channel, make a list of action points for me and add them as todo's with @todoist
@Wyndle anything to follow up on today?
@Wyndle summarize my latest interaction with Emil B
@Wyndle show me what's happening in the data team channel this weekWyndle将提供智能、上下文感知的响应,并可以与Todoist等其他Raycast扩展集成以进行任务管理。
💬 AI集成示例
使用Raycast
"What needs my attention?"
→ 🔥 **Urgent**: Sarah needs feedback on design mockups
→ 📅 **This Week**: Confirm availability for bi-weekly data meetings
"Summarize my interaction with John"
→ ✅ **Project complete** - John thanked you for the pipeline work and signed off与OpenAI/Claude合作
MCP服务器提供以下智能工具:
content_get_user_interactions()-关系摘要productivity_list_followups()-行动项目和优先事项content_get_channel_activity()-团队/项目情报
🏗️ 建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Slack API │───▶│ DuckDB │───▶│ MCP Server │
│ │ │ (Columnar) │ │ (FastMCP) │
│ • Rate Limited │ │ • Human Names │ │ • AI Assistant │
│ • Continuous │ │ • Sub-ms Query │ │ • Smart Filter │
│ • Smart Sync │ │ • 70% Smaller │ │ • Raycast Ready │
└─────────────────┘ └─────────────────┘ └─────────────────┘关键组件
src/ingest/-具有速率限制的连续数据管道src/data/-具有名称解析的DuckDB存储层src/server.py-个人助理MCP服务器src/cli.py-命令行界面src/slack_client/-Slack API集成src/analysis/-写作风格与组织分析
🧪 发展
运行测试
# Run minimal test suite
uv run pytest tests/
# Type checking
uv run mypy src/
# Code quality
uv run ruff check .
uv run ruff format .🤝 贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 通过测试进行更改
- 运行测试套件(
uv run pytest) - 提交拉取请求
📝 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
📊 演出
- 查询速度:DuckDB列式存储的亚毫秒响应时间
- 内存使用:约300MB恒定占用空间,高效压缩
- 存储:比同等SQLite数据库小70%
- 速率限制:尊重Slack的API限制,智能退让
______________________________________________________________________
🌿 "I must be helpful!" - Transform your Slack chaos into AI-powered insights
Made with ❤️ for productive teams everywhere
