Skip to content

Manage Chickpea from Slack

Create and change Agents by asking in Slack, and know what applies right away, what waits for your approval, and what comes back as a link.

Updated View as Markdown

@Chickpea is the system Agent that administers your workspace from inside Slack. Where Admin is the browser app and the management MCP server is the door a coding agent uses, Slack is the door you already have open, and all three run the same service with the same permissions behind them. This page covers what you can change by asking, what applies the moment you ask, what comes back as a proposal to approve, and what comes back as a link because a secret can never travel through a Slack message.

Prerequisites

  • A full member account in the Slack workspace. Chickpea provisions eligible full members automatically the first time they interact with an Agent. Guests and Slack Connect users are not provisioned.
  • @Chickpea in the conversation. Mention it in a channel it belongs to, or send it a direct message. For a private channel, run /invite @Chickpea in Slack first.
  • A role that covers the change. Members create Agents and edit the Agents whose edit policy allows it. Admins and Owners also inspect and change model providers. Only an Owner changes another member’s role or status.

Ask @Chickpea

@Chickpea creates Agents and edits any Agent you are permitted to edit.

@Chickpea make me a support agent that answers billing questions and knows our refund policy

That one message creates the Agent and starts publishing its handle. Asked in a channel, the new Agent is granted that channel and no other. Asked in a DM, it gets no channel reach. The Agent then introduces itself in the same thread under its own name and handle, with a View Agent link and up to three Connect X links for connectors you named or clearly implied.

What you can ask for:

  • Create an Agent, then archive or restore it later.
  • Change an Agent’s instructions, model, handle, or edit policy.
  • Publish an Agent to a channel, or take that channel back.
  • Import a skill from a public GitHub repository, a GitHub tree URL, or a skills.sh link, and enable, disable, or remove a skill it already has.
  • Read and edit an Agent’s memory.
  • Create, edit, pause, resume, disable, or run a schedule now.
  • Look at current state: Agents, skills, connections, repositories, channels, and provider availability.

Schedules read like ordinary requests, and the word “schedule” is not required.

@Chickpea post a summary of open billing threads in this channel every weekday at 9am

A schedule created in a channel posts its results as a new channel message. It posts into the thread only when you ask for that specifically, so the acknowledgement you get here does not decide where future runs land. “Check this again in 5 minutes” is a schedule too.

Ask an Agent about itself

Mention an Agent by its handle and it manages itself, still bound by your permissions. Its own instructions, skills, model, presence, edit policy, connections, repositories, memory, channel reach, and schedules are all in scope.

@support add a skill from https://github.com/acme/skills/tree/main/refunds

Anything that crosses to another Agent, or needs workspace authority, comes back as a bounded handoff rather than the other Agent’s configuration:

Mention @Chickpea in this thread and ask it to continue the same request. Chickpea will re-check your permissions before inspecting or changing anything.

What applies right away

Minor reversible writes may proceed without confirmation. A request is its own approval only when the service can derive the exact command from your current message and prove it authorized, reversible, local to this deployment, and free of authority, reach, credential, capability, or third-party effects.

  • One new Agent, standalone. Creation never silently adds a connection, a repository, a schedule, or channel reach beyond the channel you asked in. An Agent whose edit policy is all_workspace_members is the exception and waits for your approval.
  • One named skill enabled, disabled, or removed. Chickpea reads the Agent’s current state, preserves every other skill, and returns a receipt and an undo.
  • One exact skill import whose source URL appears in the message you send. Chickpea pins the inspected commit before fetching SKILL.md. A source holding several skills comes back as names, descriptions, and source URLs with nothing changed; post the one you want. Skills that ship scripts are rejected, because Chickpea’s inline skills cannot execute imported files.
  • Schedules: create, edit, pause, resume, disable, and run now. Deleting a schedule is deliberately not on this list.
  • Memory edits, written against the memory’s current revision. If the memory changed since Chickpea read it, the write fails with The Agent memory changed. rather than overwrite.

Approve a proposal

Two kinds of change arrive as a frozen read-only proposal: anything the Agent inferred rather than you stated, and anything that changes what an Agent can do, reach, or delete. Nothing applies until you approve it. Confirmation is required to:

  • delete an Agent or a schedule;
  • change a member’s role or status;
  • remove or replace credentials;
  • expand capability scope, meaning connections, MCP servers, repositories, edit policy, or Slack presence;
  • disable an Agent that is published to a channel;
  • archive or restore an Agent, or grant or revoke channel reach; or
  • overwrite an existing Agent from a recipe.

Chickpea posts the preview and waits. Reply in the same thread with one of these exact words to approve the pending proposal: approve, approved, confirm, apply it, apply this, create it, create this. A leading mention and a trailing period or exclamation mark are ignored. Chickpea matches these before any model runs, so keep the reply to the word alone; a longer sentence reaches the Agent as ordinary conversation.

The same person must approve from the same thread. Proposals do not expire, and a newer proposal from the same person, conversation, and Agent supersedes the older pending one. Approval applies the frozen operations exactly, including any detail the preview truncated to fit Slack, and it cannot reinterpret them. If the target’s revision, your permissions, or the acting Agent changed in between, the proposal goes stale before its first write and you get:

I couldn’t apply that proposal because it is no longer current. Ask me to prepare an updated proposal.

Ask for a fresh proposal at that point rather than repeating the old approval.

Undo a change

Say undo in the thread. In Slack the request has to be explicit, so a clause beginning with “undo” or “please undo” is what Chickpea looks for. It reverses one eligible change at the exact revision that change produced, which means a later edit to the same object retires the undo. If nothing is eligible, the answer is No undo action is available. If the reverse of the change has itself become consequential, undo returns a proposal instead of skipping the approval step.

Credentials never enter model context or the tool arguments the model writes. The model picks a connection by ID and the secret goes in at egress. So connecting a service, granting a repository, and adding a model provider key all finish in the browser, and the Slack answer is a link.

@support connect our Gmail so you can read the support inbox

The reply carries a Connect Gmail link. What that link is:

  • Locked to one Agent and one connector. The connection belongs only to that Agent. A second Agent needs its own setup even when it authorizes the same external account.
  • Fixed in what it does. The page shows the connector, the target, the requested scopes, and a replacement warning, and it cannot change those values. OAuth connectors redirect to the provider; multi-field credentials use a Chickpea form.
  • Short-lived and single use. It expires after 24 hours. You can revoke it or ask for a fresh one, and reissuing invalidates the previous link.

When setup completes, a non-secret receipt returns to the thread, in the shape of alex@northstar.example has been connected to Gmail connector. The receipt may name the target, scopes, initiator, operation ID, and a provider-supplied account label. It never contains a token, code, key, client secret, header value, or repository installation credential.

Repository access and model provider keys for Anthropic, OpenAI, and OpenRouter follow the same link path. Three things have no Slack lane at all and are done in Admin: the Composio project key, the GitHub App installation, and installing the coding sandbox.

Verify

Chickpea replies with what changed, or with what it could not change and why. Configuration is live for the next Slack event Chickpea admits, including a reply in an existing thread; a reply already in flight finishes on the plan it started with. To see a change take effect, send a new message rather than waiting on the current one.

For a newly created Agent, mention its handle in the channel you created it in and check that the reply arrives in a thread under that Agent’s own name and avatar. If Slack refused to create the handle, Chickpea keeps the Agent and reports the incomplete part once.

On Node

Node runs no scheduler. Chickpea keeps its inspection and shutdown controls there, but no timer fires a schedule, so scheduled work is a Cloudflare feature. Every other management action described on this page behaves the same on both targets.

Next steps

  • In Slack: the rest of this section, including conversations, handles, and channel grants.
  • Agents: what an Agent is made of, and the other two ways to create one.
  • Admin: the browser door, and the only door for the Composio project key, the GitHub App, and the coding sandbox.
  • Authority and confirmation: why a conversation cannot expand what an Agent may do or reach.
Navigation

Type to search…

↑↓ navigate↵ selectEsc close