Your agent posts to Slack.
The full Slack Web API from your terminal: 306 methods and 33 skills, posting as a named bot, never as you. One workspace where you are allowed to install a bot. Ten minutes once you have the token.
Slack is where your team talks. This blueprint gives your agent a way in: a small command-line tool that reads, searches and posts, always as its own named bot, never as you. You create one Slack app, install it to a workspace you control, type its token once, and from then on you say what you want in plain words: "summarise that thread before I reply", "find the messages about the outage", "post this update to the test channel". Your agent runs the commands. You say yes before anything is posted where people will see it.
slack-cli connected to one workspace, with 306 API methods and 33 skills: post, thread, search, upload, react, and a raw call for anything not wrapped yet.
A bot with its own name. Nobody confuses an agent's post with something you typed, and there is no server to keep running: a CLI on a token just works after a restart.
One app in Slack's dashboard with the smallest scopes that do the job, one token typed by you, one auth test that proves it. Read first; a test channel for the first post.
You create the app and hold the token. Your agent posts, reads and searches; you say yes before anything goes to a real channel, gets archived, invited or removed.
Bring one workspace and one bot. Here's the shape.
Perks come with The Lab and get claimed from your dashboard: no second account, no second login. Open Perks, search for Slack, read the terms, claim the code. Then come back here.
Open Perks →Search the library for Slack
One Slack workspace where you are allowed to create and install an app. Your own is simplest; a company workspace only if the admins let you install apps. In Slack's app dashboard you create a new app, pick the workspace, and add the bot scopes. For a first read-and-write smoke test the blueprint lists ten: chat:write, channels:read, channels:history, groups:read, groups:history, im:read, im:history, reactions:write, files:write, users:read. Start with the smallest set that supports what you want; you can add more later.
Install the app to the workspace and copy the Bot User OAuth Token. It starts with xoxb-. That token is the bot's identity, so it gets typed into your terminal by you, and it never goes anywhere else.
Your agent will tell you exactly where to type it. You type it there, yourself. Anything you save or share uses the blueprint's placeholders (xoxb-PASTE_BOT_TOKEN_HERE, <YOUR_WORKSPACE_NAME>, <CHANNEL_ID>) on purpose.
What happens in the ten minutes?
Five steps. Your agent does the typing, except the part in your browser; here is what goes by on the screen so none of it is a stranger.
- It installs the toolkit. One Python package,
slack-toolkit. That is where theslack-clicommand comes from. - You make the app, in the browser. Slack's app dashboard: new app, your workspace, the bot scopes, install, copy the token. Your agent narrates; you click.
- It asks you for the token, once. You type it into the terminal yourself. The CLI saves it as a local profile called
student, set as the default, and never asks again. - It checks the pipe. An auth test that returns the bot's name and workspace, then a list of ten conversations. If those two come back, the connection is real.
- It installs the 33 skills, then you restart. Into your app's skill folder, so
/slack-postand friends exist from the next session on.
python3 -m pip install slack-toolkit slack-cli config set-profile student --bot-token "xoxb-PASTE_BOT_TOKEN_HERE" --workspace-name "<YOUR_WORKSPACE_NAME>" slack-cli config set-default student slack-cli api auth.test slack-cli conversations list --limit 10 slack-cli skills install
If the auth test fails, the token was pasted with a space or the app was never installed to the workspace. Those are the two.
The commands are identical. The install and the auth test cross the network, so in Codex's sandbox those steps ask before they run. Say yes.
What you can ask your agent, from now on
Six asks that work on day one. Each one reaches for a skill the toolkit installed. Copy, paste, read what comes back.
Use /slack-post to draft an update about [the thing] for the test channel I name. Show me the draft first; post only after I say go.
Use /slack-thread to summarise this thread in five plain sentences, then tell me the one thing that still needs an answer: [paste the thread link].
Use /slack-search to find recent messages about [the topic], newest first, and quote the three that matter.
Use /slack-file-upload to upload this local report to the test channel, with one line saying what it is. Ask before uploading.
Use /slack-dynamic to find the right Slack API method for [what I want], and explain what it would do before calling anything.
Use /slack-api-expert to plan this raw API call, show me the parameters first, and wait for my yes.
Words you now own
- Bot token. The
xoxb-string that is the bot's identity. You type it once; it lives in a local profile. - Scope. One permission the bot has, such as
chat:write. The app only gets the scopes you add. - Channel ID. Slack's internal name for a channel, a code rather than the # name. Commands take the code; the blueprint keeps it a placeholder in anything shared.
- Thread. The replies under one message. The skills can read a thread whole and reply inside it.
- Block Kit. Slack's way of laying out a richer message.
/slack-postcan build one. - Raw API call. Any of the 306 methods, called directly when no wrapped command exists for it. Always with the parameters shown first.
Before you post anything
Four habits the blueprint asks for, because a bot that can post can also post in the wrong place.
- A test channel first. The first post goes somewhere nobody minds. Make one for the bot.
- The smallest scopes. Add a scope when a workflow needs it, not before.
- A person says yes before anything loud. Posting to a real channel, archiving, inviting, removing, or changing many things at once: your agent asks, you answer.
- Nothing from Slack goes into git. No exports, no message archives, no channel or user IDs, no tokens. Ask your agent to search any Slack-related file for
xoxb-and IDs before it is committed.
Your workbench is private, and this is still the rule. Placeholders in anything you save; the real values live in the profile on your machine.
Fair questions
No. Every post comes from the bot, under the bot's name. That is the point: nobody mistakes an agent's message for yours.
Only if you are allowed to install apps there. If you are not, use a workspace you own; a free one takes two minutes to create.
No. Not scheduled, and it does not need one: the files are complete on their own. If a Tuesday ever walks it live, that session links from this page.