slick file¶
Upload a file to a Slack channel.
Probationary
the command is implemented and
covered by mock tests, but it's hidden from slick --help and shell
completion. Agent schema and workflow guidance mention it as probationary
and not promoted until live-Slack smoke evidence completes.
file upload¶
Stream from stdin with an explicit filename and title:
Reply in a thread with the upload:
Flags¶
Flags
| Flag | Value | Description |
|---|---|---|
-c, --channel |
<CHANNEL> |
Channel ID, name, or alias |
-f, --file |
<FILE> |
Path to upload or - for stdin |
-N, --filename |
<NAME> |
Filename for stdin or override |
-T, --title |
<TITLE> |
Slack file title |
-m, --message |
<TEXT> |
Initial comment |
-b, --blocks |
Treat upload message as raw Block Kit JSON | |
-t, --thread |
<TS> |
Thread timestamp |
-n, --dry-run |
Preview without uploading |
Attribution flags
Accepted by the four mutating commands (message send, message edit,
reply, file upload):
| Flag | Value | Description |
|---|---|---|
--[no-]attribution |
Toggle attribution for this command | |
--attribution-label |
<LABEL> |
Override attribution label |
--attribution-emoji |
<EMOJI> |
Override attribution emoji |
--attribution-message |
<TEXT> |
Override attribution message |
Progress and diagnostics go to stderr; stdout stays reserved for command data.
Output¶
Human (real upload — post-v0.4.0 the JSON fields now match the Slack file
object shape: file_id → id, file_name → name, size_human dropped
in favour of human-mode-only formatting of the numeric
size):
Human (--dry-run). id is the literal "dry-run" and the event carries
dry_run=true; no Slack call is made:
Slack's files.completeUploadExternal does not populate permalink in the
upload response; slick attempts to resolve it with files.info after upload.
If that lookup fails, permalink stays absent.
Common errors¶
| Error | Cause | Fix |
|---|---|---|
not_in_channel (not_found, exit 2) |
App/user is not a member of the channel. | Add the bot, or use a user-token profile. |
validation_error: --file is required |
Missing --file. |
Provide the path or - for stdin. |
validation_error: --filename required for stdin |
Stdin upload with no filename. | Pass --filename. |
missing_scope (auth_failure, exit 1) |
Token lacks files:write. |
Use the files or full manifest preset. |
See also¶
message— send a message without uploading a file.manifest—filespreset enablesfiles:write.- Slack API methods:
files.getUploadURLExternal,files.completeUploadExternal,files.info.