Basecamp Sherpa
AppsAgent

Development

Set up the Agent locally for development.

The agent runs inside Docker with Claude Code CLI and the Basecamp CLI pre-installed.

The Docker infrastructure is documented in Docker Development. This page covers the application workflow.

Start the dev container

pnpm agent:dev

This uses services/docker/docker-compose.yml to build and run the agent with:

  • Hot reload (source mounted from apps/agent/src)
  • Hookdeck sidecar for webhook tunneling
  • Persistent volume at .volumes/root-dev for credentials

Authenticate

After the container is running, authenticate in separate terminals:

# OAuth flow — opens browser
pnpm agent:claude-login
# Device code flow — follow the printed URL
pnpm agent:basecamp-login

Credentials persist in .volumes/root-dev/ across restarts.

Alternatively, set ANTHROPIC_API_KEY in .env to skip Claude OAuth.

Test a webhook

curl -X POST http://localhost:3000/webhooks \
  -H 'Content-Type: application/json' \
  -d '{"kind":"comment_created","creator":{"name":"Test"},"recording":{"title":"Test"}}'

Hookdeck (webhook tunneling)

The docker-compose setup includes a Hookdeck sidecar that tunnels Basecamp webhooks to http://sherpa:3000/webhooks. Set HOOKDECK_API_KEY in .env to enable it.