Tiny CLI data aggregator for Slack + GitHub for user's footprint.
If I were to use this, I would probably do that to gather inputs I could later process to find mentionworthy items to a CV, to create a backed dataset for Gergely Orosz's inspired items. Then maybe process the results with something like described in Achievement bank. I would create the bank on monthly/quarterly bases based on the total evaluated period lenght, as it might yield better results.
- Slack messages written by the target human
- Slack messages that explicitly ping them as
<@USERID> - Whole Slack threads when one of those messages lives in a thread
- GitHub commits for the configured GitHub handle across the configured repos
It writes stuff to:
OUTPUT_DIR/YYYY-MM/slack.jsonlOUTPUT_DIR/YYYY-MM/github.jsonlOUTPUT_DIR/YYYY-MM/manifest.json
- Go
1.25+ ghinstalled and logged in- Slack token + cookie in env
gh auth login
gh auth statusFast path:
./swaydh auth-env --workspace your-workspaceThat opens the browser dance and spits out exports like:
export SLACK_TOKEN="xoxc-..."
export SLACK_COOKIE="xoxd-..."If you insist on raw gremlin mode, get them from an authenticated Slack browser session:
JSON.parse(localStorage.localConfig_v2).teams[document.location.pathname.match(/^\/client\/([A-Z0-9]+)/)[1]].tokenThen grab cookie d and put it in SLACK_COOKIE.
cp .env.example .envExample:
SLACK_TOKEN=xoxc-...
SLACK_COOKIE=xoxd-...
SLACK_USER_HANDLE=alice
SLACK_USER_ID=U0123456789
GITHUB_USER_HANDLE=alice
REPOS=org/repo-a,org/repo-b
TIME_FROM=2026-01-01
TIME_TO=2026-04-01
OUTPUT_DIR=outSLACK_USER_ID is optional, but giving it saves the tool from having to go look it up.
go build -o swaydh .If .env exists in the repo root, commands load it automatically. Use --env-file if you want to be fancy.
Checks whether this whole scheme could theoretically work before you waste your afternoon.
./swaydh smoke-test./swaydh preview --month 2026-02Re-run and overwrite that month:
./swaydh preview --month 2026-02 --force./swaydh runOverwrite already-generated months:
./swaydh run --forceUse a different env file:
./swaydh run --env-file /path/to/file.envgo build -o swaydh .
./swaydh auth-env --workspace your-workspace
./swaydh smoke-test
./swaydh preview --month 2026-02
./swaydh runAfter the monthly output exists, you can feed it into the achievement-bank thing:
docs/achievement-bank-manual.mddocs/achievement-bank-prompt.md
That step is for generating a reusable achievement bank, not a resume, not a monthly diary, not LinkedIn fanfic.
slack.jsonl: one JSON object per matched conversation unitgithub.jsonl: one JSON object per commitmanifest.json: metadata about that month's run
- Slack mentions means real Slack mentions, not plain text name-dropping
- Results only cover conversations visible to the authenticated Slack account
- Free Slack may refuse to cough up stuff older than 90 days
TIME_TOis exclusivepreview --month YYYY-MMhas to fall insideTIME_FROMandTIME_TO- If your org hates automated Slack access, maybe do not become the main character
