Skip to content

CJHwong/slacker.sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

slacker.sh

A portable, agent-friendly Slack CLI. It's plain bash and leans only on tools you almost certainly already have (jq and curl), so there's no MCP server, language runtime, or SDK to install; drop the scripts anywhere and run.

Each command is one intention that composes several Slack Web API calls into one fully-resolved XML payload — IDs become names, mentions and links decoded, reactions and files folded in, thread sizes shown, timestamps humanized — so an agent gets the whole picture in one call, with no follow-up ID-chasing.

$ slacker.sh read-channel '#general' --limit 3
<channel name="general" id="C0743D6UF">
  <message author="Alice Lee" time="2026-06-14 10:02" replies="2">
    <text>shipping the release today, thanks @Bob and #release-mgmt</text>
    <reactions><reaction emoji="rocket" count="2" by="Bob, Carol"/></reactions>
  </message>
</channel>

Install

curl -fsSL https://raw.githubusercontent.com/CJHwong/slacker.sh/main/install.sh | bash

This installs the skill to ~/.claude/skills/slacker-sh (it fetches the repo and copies the payload). Or clone and run it yourself: git clone https://github.com/CJHwong/slacker.sh.git && ./slacker.sh/install.sh. Then add a Slack user token (xoxp-…) — follow the setup guide to create the app and get one:

echo 'SLACKER_SH_TOKEN=xoxp-…' > ~/.claude/skills/slacker-sh/.env
~/.claude/skills/slacker-sh/slacker.sh whois @yourname    # verify -> a <user> record

Requirements: bash, jq, curl (checked at startup). To call it as plain slacker.sh, symlink it onto your PATH. The installed copy is self-contained, so you can delete the clone afterward.

Updating

Re-run the installer — it reinstalls the latest:

curl -fsSL https://raw.githubusercontent.com/CJHwong/slacker.sh/main/install.sh | bash

Docs

  • Commands, output markers, gotchasSKILL.md. The authoritative reference; it's also what the agent reads.
  • Create the Slack appreference/setup.md: manifest, scopes, token.
  • Design rationale & limitations.dev/PLAN.md.

Configuration

Env var Effect
SLACKER_SH_TOKEN the xoxp-… user token (required)
SLACKER_SH_SIGNATURE sent-message footer (on by default), shown as a small-gray context line. Set empty / 0 / off to remove it, or a string to use your own footer text instead of the default Sent using github.com/CJHwong/slacker.sh
SLACKER_CACHE_TTL users/channels cache TTL, seconds (default 3600)
SLACKER_CONCURRENCY parallel thread fetches for --threads (default 8)
SLACKER_SH_NO_UPDATE_CHECK set 1 to silence the update notice
SLACKER_SH path to slacker.sh, if not invoking it by full path

Development

The repo root is the skill (what install.sh ships); .dev/ is dev-only.

./.dev/tests/run.sh                      # offline unit + live round-trips (self-DM, cleaned up)
SLACKER_SKIP_LIVE=1 ./.dev/tests/run.sh  # unit only (no token)
./.dev/tests/unit.sh                     # just the offline unit tests
shellcheck -x slacker.sh lib/*.sh actions/*.sh install.sh .dev/tests/*.sh

About

Portable, agent-friendly Slack CLI: one-intention commands that return fully-resolved XML. Pure bash + jq + curl, no MCP server.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors