Skip to main content
ShoulderTap is a self-hosted Python service. You install the shouldertap package, which provides the shtap command-line tool, then generate a config and run the engine.

Requirements

  • Python 3.11 or newer
  • A machine you control to run the engine — it holds all state in a local SQLite file, so no external database is required to get started.

Install

From a clone of the repository:
This installs the shouldertap package and the shtap console entry point. Verify it:
For development, the project uses uv. uv sync installs the full dependency set including test and lint tooling. See CONTRIBUTING.md in the repository.

Initialize a config

Generate a starter configuration:
shtap init prompts for an organization name and writes two files to the current directory:
shouldertap.yaml
Your configuration: organization details, the LLM and Slack settings, server options, defaults for escalation and rate limits, and the expert registry. See Configuration for every setting.
.env.example
Placeholders for every secret ShoulderTap reads from the environment. Copy it to .env and fill in real values — .env is gitignored and never committed. Secrets are never stored in shouldertap.yaml; the config only names the environment variables to read.
You can pass the organization name non-interactively:

Next steps

Configuration

Fill in shouldertap.yaml and map secrets into .env.

Run the server

Start the engine with shtap serve.