2 releases
new 0.1.1 | Dec 19, 2024 |
---|---|
0.1.0 | Dec 18, 2024 |
#295 in Web programming
29KB
329 lines
Slack CLI
This is a CLI tool for sending messages to Slack channels. It supports sending text messages, blocks, and attachments using the Slack API.
Installation
Make sure the SLACK_TOKEN
environment variable is set with your Slack bot token.
export SLACK_TOKEN=xoxb-your-slack-bot-token
via cargo install
cargo install slack-cli
slack --help
via source
- Clone the repository.
- Install dependencies and compile the code using
cargo build --release
. - cargo run -p slack-cli
Usage
General Command
slack <COMMAND> [OPTIONS]
Commands
slack send <message>
Send a message to a Slack channel.
Arguments
--channel
(-c
) - The Slack channel to send the message to. Accepts either the channel name (e.g.,#general
) or the channel ID.--kind
(-k
) - The type of message to send. Options are:text
- A simple text message.block
- A message with block elements (provide a JSON object).attachment
- A message with attachments (provide a JSON object).
<message>
- The content of the message. Forblock
orattachment
, provide a valid JSON object.
Example Usage
Send a text message:
slack send --channel general --kind text "Hello, Slack!"
slack send --channel=#general --kind text "Hello, Slack!"
slack send --channel "#general" --kind text "Hello, Slack!"
Send a block message:
slack send --channel general --kind block '[{"type": "section", "text": {"type": "mrkdwn", "text": "*Hello, Slack!*"}}]'
Send an attachment message:
slack send --channel general --kind attachment '[{"color":"#f2c744","blocks":[{"type":"section","text":{"type":"mrkdwn","text":"*Hello, Slack!*"}}]}]'
Environment Variables
SLACK_TOKEN
: Required. The token for authenticating with the Slack API. Set this in your environment or use a.env
file for local development.
Error Handling
Ensure that all required options are provided and that the SLACK_TOKEN
environment variable is set. The CLI will display meaningful error messages if these requirements are not met.
Dependencies
~8–19MB
~256K SLoC