slack-personal
- Repo stars 4
- Author repo slack-personal
slack-personal
Personal Slack workspace access via extracted session tokens (xoxc- + xoxd-). No Slack app creation or workspace admin approval needed.
Setup
One-time: bash scripts/setup.sh
Three auth methods:
- Auto-extract from Slack desktop app — default, zero interaction (macOS/Linux, app must be closed)
- Browser extraction (guided DevTools steps)
- Manual paste (if you already have tokens)
uv pins Python 3.11 automatically (needed for slacktokens LevelDB dep).
Credentials stored at ~/.config/slack-personal/credentials.json (mode 600).
CLI: scripts/sg.py
# Auth
sg auth # auto-extract from desktop app
sg auth --browser # browser extraction guide
sg auth --manual # paste tokens manually
# Browse
sg workspaces # list accessible workspaces
sg channels [--limit N] # list all channels with unread counts
sg info [channel-id] # channel details or self info
# Read
sg read <channel-id> [--limit 20] # read messages
sg search "query" [--sort timestamp] # search across everything
sg unread [--limit 30] # unread summary
# Files
sg files [--channel C] [--limit 20] # list shared files
sg download <file-url> [-o dir] # download a file
# Export
sg export <channel-id> [--since 7d] [-o file.md]
Channel identifiers
Use channel IDs (from sg channels). Format: C... (public), G... (private/group DM), D... (DM).
Safety
- Read-only — no send/post/delete commands
- Session tokens = full account access. Never expose credentials.json
- Uses unsupported auth method (session tokens, not OAuth). Works but not officially blessed by Slack
- Token valid ~1 year (d cookie TTL). Re-extract when expired
Rate limits
Built-in retry on 429. Tier 2 methods (search): 20/min. Tier 3 (history): 50/min.
Integration with OpenClaw
cd /path/to/slack-personal && uv run sg search "keyword" --limit 10
cd /path/to/slack-personal && uv run sg unread- Fluxly category
- Engineering
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @000alen · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Plug-and-play
- External API key
- No requirement detected
- Detected OS requirements
- macOS · Linux
- Runtime requirements
- Python >=3.11
- Detected file/system behavior
-
- Read-only
- Write / modify
- Detected network behavior
- Local-only
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. One-time: bash scripts/setup.sh Three auth methods: Auto-extract from Slack desktop app — default, zero interaction (macOS/Linux, app must be closed)
CLI: scripts/sg.py
Use channel IDs (from sg channels). Format: C... (public), G... (private/group DM), D... (DM).
Read-only — no send/post/delete commands Session tokens = full account access. Never expose credentials.json Uses unsupported auth method (session tokens, not OAuth). Works but not officially blessed by Slack
Built-in retry on 429. Tier 2 methods (search): 20/min. Tier 3 (history): 50/min.
Integration with OpenClaw
# slack-personal
Personal Slack workspace access via extracted session tokens (`xoxc-` + `xoxd-`). No Slack app creation or workspace admin approval needed.
## Setup
One-time: `bash scripts/setup.sh`
Three auth methods:
1. **Auto-extract** from Slack desktop app — default, zero interaction (macOS/Linux, app must be closed)
2. **Browser extraction** (guided DevTools steps)
3. **Manual paste** (if you already have tokens)
uv pins Python 3.11 automatically (needed for slacktokens LevelDB dep).
Credentials stored at `~/.config/slack-personal/credentials.json` (mode 600).
## CLI: `scripts/sg.py`
```bash
# Auth
sg auth # auto-extract from desktop app
sg auth --browser # browser extraction guide
sg auth --manual # paste tokens manually
# Browse
sg workspaces # list accessible workspaces
sg channels [--limit N] # list all channels with unread counts
sg info [channel-id] # channel details or self info
# Read
sg read <channel-id> [--limit 20] # read messages
sg search "query" [--sort timestamp] # search across everything
sg unread [--limit 30] # unread summary
# Files
sg files [--channel C] [--limit 20] # list shared files
sg download <file-url> [-o dir] # download a file
# Export
sg export <channel-id> [--since 7d] [-o file.md]
```
## Channel identifiers
Use channel IDs (from `sg channels`). Format: `C...` (public), `G...` (private/group DM), `D...` (DM).
## Safety
- **Read-only** — no send/post/delete commands
- Session tokens = full account access. Never expose credentials.json
- Uses unsupported auth method (session tokens, not OAuth). Works but not officially blessed by Slack
- Token valid ~1 year (d cookie TTL). Re-extract when expired
## Rate limits
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> Setup → CLI: scripts/sg.py → Channel identifiers → Safety → Rate limits → Integration with OpenClaw
terms -> Auto-extract · Browser extraction · Manual paste · Read-only
files/cmd -> xoxc- · xoxd- · bash scripts/setup.sh · ~/.config/slack-personal/credentials.json · scripts/sg.py · sg channels · C... · G...
body sha256 -> 6e39a18a9e59
Decide Fit First
Design Intent
How To Use It
Boundaries And Review