Chickpea is a self-hosted Slack app that gives your workspace AI teammates. You address them by name, @support or @revops, and each one has its own instructions, memory, connected accounts, and list of channels it may work in. Where hosted assistants run on the vendor’s infrastructure with the vendor’s model, Chickpea runs in your Cloudflare account or on your own server, pointed at whichever model provider you choose. This page covers what a workspace gets, where it runs and what it costs, what it is built on, and what it is not.
What you get
One deployment holds any number of Agents. Every Agent comes with the same parts.
- A real Slack handle. Each Agent is a zero-member Slack user group, so
@supportautocompletes like a person, and every reply is posted under the Agent’s own name and avatar. - Its own instructions and model. Anthropic, OpenAI, OpenRouter, or Cloudflare Workers AI, pinned per Agent. A cheap fast model for triage, a strong one for the Agent that writes.
- Its own memory. One memory per Agent, shared across its DMs and every granted channel, editable and deletable in Admin.
- Connected accounts. Team accounts and personal accounts, each owned by one Agent. 35 connector presets, plus native API and MCP for anything with an HTTP API or a remote MCP server.
- Repositories. GitHub repositories granted through a GitHub App, with short-lived tokens scoped to the grant. An optional coding sandbox on Cloudflare for Agents that need a real checkout, package installs, and tests.
- Skills. Imported from a GitHub repository or a
skills.shlink, previewed before anything is installed. - Schedules. Recurring or one-time work, set up by asking in Slack, delivered to a granted channel or a private DM thread.
- Slack-native answers. Streamed replies, a native sortable table when the data earns one, task cards for multi-step work, and Slack’s under-composer status showing what the Agent is doing. Attached images, PDFs, and text files are read; a file can inform an answer but cannot authorize an action.
You set all of it up by asking. @Chickpea, the app itself, creates and edits Agents in conversation, and the same controls exist in Admin and over an MCP server for coding agents.
Here is what it looks like from inside a channel:
@growthwhich pages lost impressions in Search Console last month?
@growth checks Search Console, cross-references Google Analytics, and answers in the thread. Everyone in the channel sees the answer, and anyone can pick it up later without starting over. Ask it to change a HubSpot record and it confirms with you first.
A fresh deployment starts with no Agents of your own. @Chickpea is there from the first minute, and it creates the first teammate with you in Slack.
Where it runs and what it costs
Chickpea is licensed under Apache 2.0. There is no per-seat pricing and no metering. You pay your model provider directly for API usage, and your infrastructure bill is whatever your own hosting costs.
| Target | What runs there | What it costs you |
|---|---|---|
| Cloudflare | A Worker with Durable Objects, a D1 database, and the Workers AI binding, deployed with one button. | Workers Paid is required. Workers, Durable Objects, D1, Workers AI, and the optional coding sandbox may incur costs on your account. |
| Node | One process with SQLite files on a host you supervise. | Whatever that host costs. |
Cloudflare deployments can run keyless on Workers AI from the first minute. Provider keys for Anthropic, OpenAI, or OpenRouter are added when you want them.
Chickpea sends six anonymous, content-free product events to measure adoption. It sends no messages, prompts, tool data, or customer identity, and the operator can turn it off completely.
Why it works this way
Your team already uses AI all day, one person at a time in a private tab, and the answer stays in that one person’s history. Putting the AI in the channel fixes that, as long as it can be addressed by name and answers under its own name.
The hosted versions of this idea run on the vendor’s infrastructure, with the vendor’s model, on the vendor’s schedule. For many teams that trade is fine. Some teams cannot make it, for reasons of policy or data, and they have mostly gone without. Chickpea is for those teams.
Being self-hosted only matters if the thing you are hosting is governable, which is why Chickpea is built around Agents rather than one bot with every tool attached. A single bot means every channel it is in has every credential it holds, and everything it learns anywhere it can say anywhere. Each Chickpea Agent keeps its own accounts and its own channels, so the support Agent cannot read finance’s inbox; nobody ever gave it to them. If you need a wall between two jobs, make a second Agent.
What it is built on
Chickpea has no agent loop of its own. Every Agent runs on Flue, the Apache-licensed open agent framework from the Astro team, now part of Cloudflare, which supplies durable sessions, tools, skills, subagents, and MCP on both targets. Flue in turn runs on Pi, the open agent harness also behind OpenClaw, which supplies the model providers. Chickpea is the Slack product, the authority model, and Admin on top of those layers.
What it is not
- Not a hosted service. You deploy it, you update it, and your model traffic goes to the provider you chose. The Deploy to Cloudflare button clones the repository into your account rather than forking it, so updates are manual.
- Not multi-workspace. One deployment serves one Slack workspace.
- Not a channel reader. A top-level message that mentions no one is dropped before any model is involved. Chickpea does not sit in your channels forming opinions.
- Not the same on both targets. Schedules and the coding sandbox run on Cloudflare only. Node is a single-host deployment with no scheduler and no container tier.
Next steps
- Get started on Cloudflare: deploy, connect Slack, and get the first reply.
- How Chickpea works: one mention end to end, the rules that never bend, and the layers underneath.
- Security model: the guarantees behind the walls described here.
