Developer documentation
Start here
Section titled “Start here”git clone https://github.com/shaharia-lab/slackcli.gitcd slackclibun installpre-commit install # do not skip thisbun run dev --help| Page | What it covers |
|---|---|
| Development setup | Toolchain, pre-commit hooks, signed commits, the everyday loop |
| Architecture | Dual auth, SlackClient dispatch, workspace storage, browser capture |
| Project structure | What each file in src/ is responsible for |
| Testing | Layout, conventions, and how to write a test that belongs here |
| Build and release | Version injection, CI, tagging, Homebrew tap |
| Adding a command | A worked example, end to end |
| Website | The Astro site in web/, and how docs become pages |
The short version
Section titled “The short version”- TypeScript on Bun. No transpile step in development —
bun run devruns the source. Ships as a single compiled binary per platform. - Commands parse and print;
src/lib/does the work. If something is worth testing, it does not belong insrc/commands/. - Two auth types, one seam.
SlackClient.request()dispatches to the Slack SDK or to rawfetchbased onauth_type. Add API calls there. - Four dependencies (
@slack/web-api,commander,chalk,ora) and a 150 MB binary budget. New dependencies need a real justification.
Before opening a pull request
Section titled “Before opening a pull request”This repository’s contribution policy is stricter than most and is binding on human and AI contributors alike:
- An issue must exist first, filed with one of the issue templates (bug report, feature request, improvement) and stating WHAT, WHY, and optionally HOW. Blank issues are disabled.
- The issue must carry the
ready-for-prlabel before a PR is opened. - The PR must link that issue and follow the PR template, checklist included — a workflow enforces the link.
- Type-check, tests, and pre-commit hooks pass; commits are signed.
Full text: CONTRIBUTING.md, and the constitution at the top of CLAUDE.md.
Security issues go through SECURITY.md, never a public issue.