Skip to content

BuildNot yet confirmed elsewhere1 publisher2 min readPublished

The Slack CLI that skips admin approval keeps live tokens in a file your agent can read

An unofficial open-source CLI captures Slack session tokens through an ordinary browser login and writes them to disk. The approval step it removes was the one place anyone else got a look.

The Engineer · Build desk

How we use AISend a correction

What happened

  • An unofficial open-source CLI called SlackCLI puts Slack reads and writes behind a single binary with JSON output, aimed at agents that can run shell commands.
  • Those credentials are written to ~/.config/slackcli/workspaces.json at mode 0600, and the author says nothing leaves the machine.
  • A second auth path takes a bot token instead, presented as the option for a server or a CI job.
  • Read coverage includes workspace search with Slack's own operators and reading a Canvas back as Markdown.

Why it matters

  • exposure Granting an agent shell access and granting it your Slack identity become the same act, because the token file is readable by anything running as you.
  • constraint With no scopes chosen at login, there is no smaller version to negotiate afterwards; the only lever left is killing the session, which takes the human's access with it.
  • precedent Shipping a safety boundary as a line of prompt text normalises a control no audit can verify and no model is obliged to honour.

File mode 0600 on `~/.config/slackcli/workspaces.json` [1] answers a question nobody was asking. It keeps other local accounts out. It has nothing to say about a process running as you, which is exactly what an agent handed shell access is [9][17].

The volume matters more than the permissions. One `auth login-auto` run opens a browser, takes an ordinary Slack sign-in, and captures session tokens for every workspace on that account [6]. Somebody in four workspaces produces four sets of live credentials from one login, in one file [16]. And because the whole point of the path is to skip building a Slack app and picking OAuth scopes [3], nothing on the way in narrows what those credentials can do: they carry whatever that person can read, including whatever the workspace search operators return across history [10][15].

The suggested integration is a prompt block that sorts commands into reads, which always take `--json`, and writes, which are labelled "ask me first" [9]. That is a request to a model, not a permission boundary; the binary is the same binary in both halves of the list [18]. Nearby, the same page notes that an empty search result still exits 0, so callers should check the data rather than the status code [12]. An agent that branches on exit status will read "found nothing" as "went fine".

The governable version of this ships in the same tool. There is a bot-token path for a server or a CI job [7], a `--workspace` flag to select an identity deliberately [8], and the author's own advice that Slack access is real access and automation should get its own bot-token profile [13]. That path is visible to an admin and revocable without touching a human's session. It also requires the conversation the headline promises you can skip [3]. Both roads are in the README; which one a team takes depends on who reads it first, the developer with an agent that stalled at the Slack boundary or the person who owns workspace access.

Worth being clear about the evidence. This is one post, published by the project's own side, with install instructions pointing at its own Homebrew tap [14]. The tool is unofficial and not supported by Slack Technologies [4]. The claim that nothing leaves your machine [1] is the author's, and it is the claim a security owner would most want verified independently, because it is unfalsifiable from the writeup alone. Read the token-capture code, not the bullet list about clean streams.

What to watch

  • Whether Slack treats third-party capture of browser session tokens as a policy violation, and whether admin-forced sign-out becomes the standard response.
  • Whether the project adds per-workspace consent at login or a genuinely read-only mode, instead of taking every workspace on the account.
  • Whether endpoint tooling starts treating ~/.config/slackcli/workspaces.json as a credential store worth alerting on.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence24
Adoption
Insufficient
Hype gap+46
Incentives84
Confidence38
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    The post states that nothing leaves your machine and that credentials land in ~/.config/slackcli/workspaces.json with file mode 0600.

    ReportedSupportedSource: SlackCLI author, dev.to2 sources— create a free account to open themView cited source
  2. [2]

    SlackCLI is described as a single open-source binary that talks to Slack from the terminal, with every read command supporting JSON output.

    ReportedSupportedSource: dev.to post introducing SlackCLIView cited source
  3. [3]

    Per the post, getting an agent into Slack normally means building a Slack app, picking OAuth scopes, and waiting for an admin to approve it.

    ReportedSupportedView cited source

Sources

1 independent publisher whose own reporting we read for this story.

  1. dev.to

    1 article · August 23, 2026

    Let Your AI Agent Use Slack: One CLI, No Slack App Needed

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

Loading related stories