Slack Daemon Control
Control the autonomous Slack daemon via scripts/D-Bus.
Inputs
| Input |
Type |
Default |
Purpose |
action |
string |
required |
start, stop, status, pending, approve, approve_all, reject, history, send, reload |
message_id |
string |
- |
For approve/reject |
target |
string |
- |
For send: C123 (channel), U123 (user), @username |
channel |
string |
- |
Alias for target |
message |
string |
- |
For send |
thread |
string |
- |
Thread ts for send |
limit |
int |
50 |
For history |
filter_channel |
string |
- |
History channel filter |
filter_user |
string |
- |
History user filter |
filter_status |
string |
- |
History status filter |
enable_llm |
bool |
false |
Enable LLM for start |
verbose |
bool |
false |
Verbose for start |
Workflow
1. Validate
- Valid actions: start, stop, status, pending, approve, approve_all, reject, history, send, reload
- approve/reject require
message_id
- send requires
target (or channel) and message
2. Execute
Run scripts/slack_control.py or scripts/slack_daemon.py:
- start:
python slack_daemon.py (with --llm, --verbose if set); check PID file; use systemd-cat for journald
- stop:
slack_control.py stop
- status:
slack_control.py status
- pending:
slack_control.py pending -v
- approve:
slack_control.py approve <message_id>
- approve_all:
slack_control.py approve-all
- reject:
slack_control.py reject <message_id>
- history:
slack_control.py history -n <limit> -c/-u/-s filters -v
- send:
slack_control.py send <target> <message> (optional -t thread)
- reload:
slack_control.py reload
3. Memory
memory_session_log("Slack daemon {action}", "Success: {result}")
- If start/stop/status: update
memory/state/slack_daemon.yaml with status, pid, timestamps
Notes
- Daemon logs:
journalctl --user -t bot-slack -f
- PID file:
/tmp/slack-daemon.pid
Quick Examples
skill_run("slack_daemon_control", '{"action": "start"}')
skill_run("slack_daemon_control", '{"action": "status"}')
skill_run("slack_daemon_control", '{"action": "pending"}')
skill_run("slack_daemon_control", '{"action": "approve", "message_id": "xxx"}')
skill_run("slack_daemon_control", '{"action": "send", "target": "C123", "message": "Hi!"}')
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: slack-daemon-control3description: Control the autonomous Slack daemon via D-Bus/scripts - start, stop, status, pending, approve, approve_all, reject, history, send, reload. Use when user says "start slack daemon", "slack daemon status", "approve pending". Use when this capability is needed.4---56# Slack Daemon Control78Control the autonomous Slack daemon via scripts/D-Bus.910## Inputs1112| Input | Type | Default | Purpose |13|-------|------|---------|---------|14| `action` | string | required | start, stop, status, pending, approve, approve_all, reject, history, send, reload |15| `message_id` | string | - | For approve/reject |16| `target` | string | - | For send: C123 (channel), U123 (user), @username |17| `channel` | string | - | Alias for target |18| `message` | string | - | For send |19| `thread` | string | - | Thread ts for send |20| `limit` | int | 50 | For history |21| `filter_channel` | string | - | History channel filter |22| `filter_user` | string | - | History user filter |23| `filter_status` | string | - | History status filter |24| `enable_llm` | bool | false | Enable LLM for start |25| `verbose` | bool | false | Verbose for start |2627## Workflow2829### 1. Validate30- Valid actions: start, stop, status, pending, approve, approve_all, reject, history, send, reload31- approve/reject require `message_id`32- send requires `target` (or `channel`) and `message`3334### 2. Execute35Run `scripts/slack_control.py` or `scripts/slack_daemon.py`:36- **start**: `python slack_daemon.py` (with --llm, --verbose if set); check PID file; use systemd-cat for journald37- **stop**: `slack_control.py stop`38- **status**: `slack_control.py status`39- **pending**: `slack_control.py pending -v`40- **approve**: `slack_control.py approve <message_id>`41- **approve_all**: `slack_control.py approve-all`42- **reject**: `slack_control.py reject <message_id>`43- **history**: `slack_control.py history -n <limit> -c/-u/-s filters -v`44- **send**: `slack_control.py send <target> <message>` (optional -t thread)45- **reload**: `slack_control.py reload`4647### 3. Memory48- `memory_session_log("Slack daemon {action}", "Success: {result}")`49- If start/stop/status: update `memory/state/slack_daemon.yaml` with status, pid, timestamps5051## Notes5253- Daemon logs: `journalctl --user -t bot-slack -f`54- PID file: `/tmp/slack-daemon.pid`5556## Quick Examples5758```59skill_run("slack_daemon_control", '{"action": "start"}')60skill_run("slack_daemon_control", '{"action": "status"}')61skill_run("slack_daemon_control", '{"action": "pending"}')62skill_run("slack_daemon_control", '{"action": "approve", "message_id": "xxx"}')63skill_run("slack_daemon_control", '{"action": "send", "target": "C123", "message": "Hi!"}')64```6566---67> Converted and distributed by [TomeVault](https://tomevault.io/claim/dmzoneill) — claim your Tome and manage your conversions.68<!-- tomevault:4.0:skill_md:2026-04-15 -->