{"id":18055673,"url":"https://github.com/mustansirzia/slack-beam","last_synced_at":"2026-01-27T04:32:57.834Z","repository":{"id":260226847,"uuid":"880647325","full_name":"MustansirZia/slack-beam","owner":"MustansirZia","description":"☄️ SlackBeam is a self-hostable slack bot that helps teams generate social media content for X (formerly Twitter) directly from Slack. ","archived":false,"fork":false,"pushed_at":"2024-10-30T18:37:36.000Z","size":14965,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-18T15:10:01.414Z","etag":null,"topics":["ai","claude-3","docker","langchain","python","slack","slackbot","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MustansirZia.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-30T04:57:54.000Z","updated_at":"2024-12-01T09:20:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"3282a628-b21f-492f-a809-17215b13ea7e","html_url":"https://github.com/MustansirZia/slack-beam","commit_stats":null,"previous_names":["mustansirzia/slack-beam"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MustansirZia%2Fslack-beam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MustansirZia%2Fslack-beam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MustansirZia%2Fslack-beam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MustansirZia%2Fslack-beam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MustansirZia","download_url":"https://codeload.github.com/MustansirZia/slack-beam/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230292806,"owners_count":18203649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude-3","docker","langchain","python","slack","slackbot","sqlite"],"created_at":"2024-10-31T01:11:06.983Z","updated_at":"2026-01-27T04:32:57.806Z","avatar_url":"https://github.com/MustansirZia.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ☄️ SlackBeam\n\nSlackBeam is a self-hostable slack bot that helps teams generate social media content for X (formerly Twitter) directly from Slack. The bot uses AI-powered text generation to create post suggestions and provides an interactive interface for managing and publishing content.\n\nhttps://github.com/user-attachments/assets/d0ee3160-dad3-4061-8c53-afdad5c16ef4\n\n[![Publish Docker image](https://github.com/MustansirZia/slack-beam/actions/workflows/publish.yml/badge.svg?branch=main)](https://github.com/MustansirZia/slack-beam/actions/workflows/publish.yml)\n[![Docker Image Version](https://img.shields.io/docker/v/mustansirzia/slack-beam)](https://hub.docker.com/r/mustansirzia/slack-beam/tags)\n[![Docker Image Size](https://img.shields.io/docker/image-size/mustansirzia/slack-beam)](https://hub.docker.com/repository/docker/mustansirzia/slack-beam/tags)\n\n## Instructions\n\n### 1. Start\nA. Install **[Docker](https://www.docker.com)**.\n\nB. Run the following script:\n```bash\n# Download the prompt file.\nwget https://github.com/MustansirZia/slack-beam/raw/refs/heads/main/x_prompts.json 2\u003e/dev/null\n\n# Make changes to the prompt file.\n# vi x_prompts.json\n\n# Start the container.\nsudo docker run \\\n     -p 80:8000 \\\n     -e 'SLACK_BOT_TOKEN=\u003cSLACK_BOT_TOKEN\u003e' \\\n     -e 'SLACK_SIGNING_SECRET=\u003cSLACK_SIGNING_SECRET\u003e' \\\n     -e 'ANTHROPIC_API_KEY=\u003cANTHROPIC_API_KEY\u003e' \\\n     -e 'X_CONSUMER_KEY=\u003cX_CONSUMER_KEY\u003e' \\\n     -e 'X_CONSUMER_SECRET=\u003cX_CONSUMER_SECRET\u003e' \\\n     -e 'X_ACCESS_TOKEN=\u003cX_ACCESS_TOKEN\u003e' \\\n     -e 'X_ACCESS_TOKEN_SECRET=\u003cX_ACCESS_TOKEN_SECRET\u003e' \\\n     -d \\\n     --restart unless-stopped \\\n     -v $(pwd)/x_prompts.json:/app/x_prompts.json \\\n     mustansirzia/slack-beam:latest\n```\n### 2. Configure Slack App\n\n[![Configure Slack App](https://img.youtube.com/vi/ysUBZQzlBUI/maxresdefault.jpg?q=50)](https://www.youtube.com/watch?v=ysUBZQzlBUI)\n^ Add the app to your Slack workspace **after** you do this.\n\n### 3. Use SlackBeam!\n\n\u003chr /\u003e\n\n## Technical Stack\n- [Python 3.12](https://www.python.org) - Runtime.\n- [Claude 3.5 Sonnet](https://www.anthropic.com/news/claude-3-5-sonnet) - Gen AI Model. \n- [Langchain](https://python.langchain.com) - LLM Tooling.\n- [SQLite](https://www.sqlite.org) - Persistent Storage for Suggestions and Conversations.\n- [SQLAlchemy](https://www.sqlalchemy.org) - ORM for Storage.\n- [Flask](https://flask.palletsprojects.com) - HTTP Framework.\n- [Gunicorn](https://gunicorn.org) - WSGI HTTP Server. \n- [Bolt](https://api.slack.com/bolt) - Slack Integration Framework.\n\n## Features\n\n- Generate suggestions for X via a Slack command.\n- Multiple post type templates available that are driven by configurable prompts.\n- Batch generation of post suggestions.\n- Post a suggestion you like to X directly via Slack.\n\n## Environment Variables\n\n1. **Slack Credentials**\n   - `SLACK_BOT_TOKEN`: OAuth token for your Slack bot\n   - `SLACK_SIGNING_SECRET`: Verification secret for Slack API\n   \n   To obtain these:\n   1. Go to [Slack API Dashboard](https://api.slack.com/apps)\n   2. Create a new app or select existing app\n   3. Under \"OAuth \u0026 Permissions\", install app to workspace and copy the \"Bot User OAuth Token\"\n   4. Find the \"Signing Secret\" under \"Basic Information\"\n\n2. **Anthropic API Access**\n   - `ANTHROPIC_API_KEY`: Authentication key for Claude API\n   - `ANTHROPIC_MODEL_NAME`: Anthropic model name. _If not provided defaults to_ `claude-3-5-sonnet-20241022`.\n\n   To obtain API key:\n   1. Visit [Anthropic Console](https://console.anthropic.com/)\n   2. Create an account or sign in\n   3. Navigate to API Keys section\n   4. Generate a new API key\n\n3. **X (Twitter) API Credentials**\n   - `X_CONSUMER_KEY`: API Key for X application\n   - `X_CONSUMER_SECRET`: API Secret for X application\n   - `X_ACCESS_TOKEN`: OAuth 1.0a access token\n   - `X_ACCESS_TOKEN_SECRET`: OAuth 1.0a access token secret\n   \n   To obtain these:\n   1. Go to [X Developer Portal](https://developer.twitter.com/en/portal/dashboard)\n   2. Create a developer account if you haven't already\n   3. Create a new project and app (select \"OAuth 1.0a\" type)\n   4. Under \"Keys and Tokens\":\n      - Find \"API Key and Secret\" for consumer credentials\n      - Generate \"Access Token and Secret\" under User authentication tokens\n   5. Ensure your app has \"Read and Write\" permissions\n\n## License\nMIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmustansirzia%2Fslack-beam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmustansirzia%2Fslack-beam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmustansirzia%2Fslack-beam/lists"}