ShoulderTap is a self-hosted, open-source service you run yourself. It is distributed as the
shouldertap Python package with the shtap command-line tool. There is no hosted product to sign up for — you run the engine, own the data, and point your agents at it.The loop
ContextRequest. The engine deduplicates it, routes it to the right expert from a registry, and drafts a Slack DM. The expert replies in plain language. An LLM structures that reply into a ContextProposal, which lands in an approval queue. Once a human accepts it, the proposal is delivered back to the consumer to write into a system of record, and the expert is told their answer was accepted and attributed to them.
If no reply arrives within escalation_after (default 2 hours), ShoulderTap re-asks the expert’s configured escalation target. If nothing arrives within give_up_after (default 24 hours), the request fails with reason timeout.
Who it’s for
ShoulderTap is for teams building AI agents that keep hitting the same wall: questions no document answers.- Agent and RAG builders who need a human-in-the-loop escape hatch for their agent’s low-confidence path, instead of guessing or giving up.
- Data and platform teams who own a system of record — a data catalog, glossary, or knowledge base — and want expert answers captured into it with provenance, not lost in Slack threads.
- Anyone running MCP-capable agents who wants to tap a human expert with no custom integration, via the built-in MCP server.
The safety promise, to your experts
Every outbound ask — with no code path that skips this — contains, in order: a self-identification (“I’m ShoulderTap, an automated assistant”; it never pretends to be a person), who’s asking and why, the question (drafted to be answerable from memory), effort framing (“a one-or-two sentence reply is all that’s needed”), an attribution promise (the answer is recorded with the expert’s name after human review — never written back automatically unless a consumer explicitly opts intoauto_accept), and an opt-out (reply mute to stop receiving asks, or skip to pass this one along).
Rate limits and quiet hours are enforced before every send, not just documented.
Get started
Quickstart
Run the whole loop in your terminal in about 90 seconds — no Slack required.
Concepts
The vocabulary: requests, proposals, experts, consumers, kinds, and topics.
Integrate an agent
Wire your agent’s low-confidence path to a human expert via MCP, the SDK, or webhooks.
Protocol reference
The stable HTTP API, contracts, and kind schemas for any client.