{"repo":"helmcode/bender","free":true,"listed":false,"github":"https://github.com/helmcode/bender","clone":"git clone https://github.com/helmcode/bender.git","description":"Open-source tool that connects Slack to Claude Code in headless mode","language":"Python","stars":28,"topics":["ai-agents","claude-code","slack"],"license":"MIT","category":"chat-messaging","readme_excerpt":"Bender Open-source framework that connects Slack to Claude Code in headless mode. Bender provides a thin orchestration layer: receives messages from Slack, invokes Claude Code CLI, maintains conversational context using session management, and exposes an HTTP API for external triggers. Bender is completely agnostic — it has no business logic, no predefined agent roles, and no integrations beyond Slack and Claude Code. Users inject their own behavior through CLAUDE.md files, skills, and agent team definitions. Architecture Session Model Each Slack thread maps to exactly one Claude Code session, enabling multi-turn conversations: - New @Bender mention creates a new thread + new Claude Code session - Reply in a Bender thread resumes the existing session with --resume - External API call creates a new thread + new Claude Code session - Sessions persist on disk ( /.claude/projects/ ) and survive process restarts Requirements - Python 3.12+ - uv (package manager) - Claude Code CLI installed and in PATH - A Slack app configured with Socket Mode Installation Configuration Environment Variables Slack App Setup 1. Create a new Slack app at api.slack.com/apps 2. Enable Socket Mode and generate an App-Level Token ( xapp-... ) 3. Add the following Bot Token Scopes : - app mentions:read — Listen for @Bender mentions - chat:write — Post messages and thread replies - channels:history — Read messages in public channels - groups:history — Read messages in private channels (if needed) 4. Subscr","default_branch":null,"files":null,"tree":[],"storefront":"/r/helmcode","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/helmcode/bender/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}