Loading repository dataβ¦
Loading repository dataβ¦
filippofinke / repository
π€ Service to automatically update Slack status based on a schedule and configurable rules.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Lightweight Python service to automatically update Slack status based on a schedule and configurable rules.
This project lets you define status messages, emojis, and schedule rules so a small scheduler updates your Slack presence automatically. It supports both a local Python setup and a Docker-based deployment.
config.yml (example provided)docker-compose.yml for containerized deploymentPrerequisites
pip for installing dependenciesusers.profile:write scopeInstall dependencies
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Create configuration
cp config.example.yml config.yml
config.yml and set your Slack token and schedules. At minimum set slack.token and one schedules entry.Run locally
# run the small app which starts the scheduler
python slack_status.py
The service will read config.yml from the repository root by default.
Open config.example.yml (renamed to config.yml) to see available settings.
Simple time-based status updates with day constraints:
slack_token: "your-slack-token-here"
intervals:
- time: "07:30"
days: "weekdays"
presence: "auto"
status_text: "Working"
status_emoji: ":white_check_mark:"
- time: "12:00"
days: "weekdays"
presence: "away"
status_text: "Out for the day"
status_emoji: ":x:"
Schedule statuses for specific days or time ranges:
slack_token: "your-slack-token-here"
intervals:
# Weekday working hours
- time: "09:00"
days: "weekdays"
presence: "auto"
status_text: "Working"
status_emoji: ":computer:"
# Weekend status
- time: "09:00"
days: "weekends"
presence: "away"
status_text: "Out of Office"
status_emoji: ":palm_tree:"
# Specific days
- time: "18:00"
days: ["monday", "wednesday", "friday"]
presence: "away"
status_text: "Gym time"
status_emoji: ":muscle:"
# Time range constraints (only active during specific hours)
- time: "10:00"
days: ["friday"]
time_range:
start: "10:00"
end: "16:00"
presence: "auto"
status_text: "Friday focus time"
status_emoji: ":dart:"
Each interval supports the following fields:
time (required): Time in HH:MM format when the status should be setdays (required): Day constraints - can be:
"weekdays" - Monday through Friday"weekends" - Saturday and Sunday["monday", "tuesday", ...] - Specific days of the weektime_range (optional): Time range when the status is active
start: Start time in HH:MM formatend: End time in HH:MM formatpresence: Slack presence ("auto" or "away")status_text: Custom status messagestatus_emoji: Status emoji (e.g., :computer:)Note: Time ranges can cross midnight (e.g., start: "22:00", end: "06:00").
Security note: Do not commit real tokens into git. Prefer environment variables or secrets.
Build and run with Docker Compose
docker compose build
docker compose up -d
Environment variables
Set the token via environment variables or a mounted config.yml. Example docker-compose.yml in this repo demonstrates usage.
docker compose logs -f.users.profile:write scope.π€ Filippo Finke