Skip to main content
The shtap command-line tool is the entry point to ShoulderTap. shtap serve runs the engine; every other command is a thin HTTP client that talks to a running server. Every command accepts --config (default shouldertap.yaml).

init

Generate a starter configuration.
Writes shouldertap.yaml and .env.example to the current directory. Prompts for the organization name if --org-name isn’t given. See Install.

serve

Run the engine, HTTP API, and approval UI.
--transport
console | slack
default:"console"
How experts are reached. See Run the server.
--host
string
default:"0.0.0.0"
Host interface to bind to. The port comes from server.port (default 8776).

ask

Submit a question as the cli consumer, then poll until it’s answered.
--topic
string
required
The routing topic to match against experts.
--kind
string
default:"freeform.answer"
The question kind, which determines the answer’s capture schema.
--poll-interval
float
default:"3.0"
Seconds between status checks while waiting for an answer.
--timeout
float
default:"300.0"
Seconds to wait before giving up on the poll. The request itself keeps living on the server.
The first line of output is Submitted <request_id> ...; once a reviewer accepts the answer, ask prints it attributed to the expert.

queue

List proposals pending human review.
Prints each pending proposal with its id, question, and answer, or Nothing pending. See Approvals.

accept

Accept a pending proposal, delivering it to subscribed consumers.
--decided-by
string
Who approved it. Defaults to your OS username.

reject

Reject a pending proposal.
--reason
string
required
Why it was rejected. Delivered to the consumer with the rejection event.
--decided-by
string
Who rejected it. Defaults to your OS username.

experts

List the expert registry with each expert’s live state (muted, open asks, asks today).
See Experts and routing.

audit

Print the full audit trail for one request.
Shows every event a request went through — received, routed, asked, escalated, replied, decided. Prints No audit events for an unknown id.

mcp

Run the MCP server over stdio, exposing ask_expert and check_answer.
Intended to be spawned by an MCP client, not run interactively. See MCP integration.