Human-in-the-Loop Task Manager for AI Agents
Team Collaboration

A Shared Room,
Not a Shared Login

Connect a workspace to Slack and AgentRQ provisions one private channel for it. Everyone you invite can create tasks, steer agents mid-run, and approve or deny what an agent wants to do — with every action signed by the teammate who took it.

A shared AgentRQ workspace channel in Slack — task threads, replies, and a linked GitHub PR, visible to the whole team

A real workspace channel — every task posted as its own thread, replies and agent output syncing back, the whole team watching the same run.

How It Works

One authorization by the owner, one channel per workspace, and a normal Slack invite for everyone else.

1

Authorize Once

The workspace owner hits Settings → Slack → Link Slack Channel. AgentRQ runs the OAuth flow, auto-provisions a private channel named agentrq-<workspace>-<id>, joins it, and invites the installer. No manual channel creation, no bot-invite step to forget.

2

Invite the Team

It's a real private Slack channel, so growing the team is a normal Invite teammates click. No AgentRQ seat to provision, no second login to create. If someone can see the channel, they can work the workspace.

3

Anyone Can Act

Start work with /t, steer a running task by replying @agentrq in its thread, and settle approvals with the buttons AgentRQ posts inline. Every one of those is attributed to whoever did it.

Work the Workspace Without Leaving the Conversation

The people who need to unblock an agent are usually not the person who filed the task. Slack already knows who they are.

Create a task
/t "Bump the plugin patch version" "Publish a patch of dsh-plugin-agentrq and open a PR"
The slash command creates the task in whichever workspace this channel is linked to, and AgentRQ posts it straight back as a new thread. Pass one string for a quick task, or two quoted strings for an explicit title and description.
Steer a running task
@agentrq go ahead and merge once CI is green
A mention inside a task thread routes to that task, exactly as if it had been typed into the AgentRQ composer — attachments included; files you drop in the thread are pulled down and land on the task. Mentions outside a task thread are ignored, so your normal channel chatter is never picked up.
Attribution

Every Action, Signed by the Person Who Took It

This is the part that makes shared use safe rather than merely convenient. Under the hood every Slack-originated action carries the Slack user who sent it, kept separate from the workspace owner's underlying AgentRQ account.

A reply from the channel shows up in the AgentRQ task thread labeled with the teammate who wrote it — not a generic "Slack", and not the owner's name. Approvals carry the same attribution, and it lands in the channel where the conversation happened, not buried in a log somewhere.

The result is a plain, permanent record of who signed off on what, readable by anyone in the room without opening AgentRQ at all.

Approved by @dana
A single command, cleared to run.
🚀
Approved (Allow All Commands) by @sam
The agent gets a longer leash for this task.
Rejected by @alex
Stopped before it ran, with a name on the call.
🔧
Allowed by @jordan
An MCP tool call, approved from the thread.

First Click Wins

The hard part of letting a whole team approve things is making sure nobody approves the same thing twice.

Buttons Land in the Thread

When a task needs a decision, AgentRQ posts Allow, Allow All Commands and Reject right in the thread. An MCP tool request gets its own Allow / Deny pair, captioned with the tool being requested.

The Message Updates in Place

The moment someone decides, the buttons are replaced by the outcome and the name attached to it. There is nothing left for a second teammate to click five minutes later — no double-processing, no "wait, did someone already approve this?"

The Web UI Stays in Sync

A decision made in Slack is flagged on the request itself, so a teammate watching the same task in their browser sees it resolved instead of a stale prompt waiting on an answer that already came.

One Workspace, One Channel

Each AgentRQ workspace maps to exactly one private Slack channel, and that boundary is the whole tenancy model: a workspace's tasks, replies, and file attachments only ever reach its own channel. Two projects in the same Slack workspace stay cleanly separated.

Leave the channel field blank and AgentRQ provisions one for you. Prefer to run it through a channel you already have? Enter the channel ID and name manually instead — the link is saved either way, and can be removed from the same panel.

The Slack Connection panel in AgentRQ workspace settings — authorizing provisions a private channel and joins it automatically

Shared Access, Not Loose Access

Opening a workspace to a team is only worth doing if the door is a real one.

Encrypted Tokens
Slack bot tokens are AES-256-GCM encrypted at rest and decrypted only for the call that needs them.
Signed Requests
Every inbound event, interaction, and slash command is verified against Slack's HMAC-SHA256 signature before anything runs.
Replay Protection
Requests with a timestamp older than five minutes are rejected outright, so a captured payload can't be replayed later.
Narrow Scopes
The bot asks for what it needs and nothing more: create and read private channels, post messages, register /t, and read mentions of itself.

Why This Is the Point, Not a Feature

The usual failure mode for shared automation tooling is a shared login. One person owns the account and everyone else either gets a separate setup or borrows the owner's session and hopes nothing collides. Neither option survives contact with a team.

None of this requires a teammate to have opened AgentRQ even once. They need to be in a Slack channel and they need to know how to type @agentrq. The workspace context, the task history, the agent doing the work — all of it is already there, running underneath, and attributed correctly no matter who reaches in to steer it.

That's the actual shape of team collaboration on agent-run work: not a shared login someone hands around, not a separate account per teammate, but one channel the team already lives in, where anyone can act and everyone can see exactly who did.

Free During Beta

Bring the Whole Team Into the Loop

Connect a workspace to Slack, invite the people who actually make the calls, and stop being the only person who can unblock an agent.

More Features