Quick Start
SWEny is a platform for building AI-powered engineering workflows that follow a Learn → Act → Report pattern. SWEny Triage is the first recipe — it monitors your observability logs, investigates issues, creates tickets, and opens fix PRs. This guide walks through setting it up.
Prerequisites
Section titled “Prerequisites”- A GitHub repository
- An observability platform — Datadog, Sentry, CloudWatch, Splunk, Elasticsearch, New Relic, or Grafana Loki
- A Claude Max subscription (recommended) or an Anthropic API key
That’s all you need to get started. SWEny uses GitHub Issues by default — no extra issue tracker setup required.
Step 1: Try it (dry run)
Section titled “Step 1: Try it (dry run)”Create .github/workflows/sweny-triage.yml in your repository:
name: SWEny Triageon: workflow_dispatch: # Manual trigger
permissions: contents: read issues: write
jobs: triage: runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@v4 with: fetch-depth: 0
- uses: swenyai/sweny@v0.2 with: claude-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} dd-api-key: ${{ secrets.DD_API_KEY }} dd-app-key: ${{ secrets.DD_APP_KEY }} dry-run: trueAdd secrets
Section titled “Add secrets”In your repository Settings → Secrets and variables → Actions, add:
| Secret | Where to get it |
|---|---|
CLAUDE_CODE_OAUTH_TOKEN | Claude Max subscription → OAuth token |
DD_API_KEY | Datadog → Organization Settings → API Keys |
DD_APP_KEY | Datadog → Organization Settings → Application Keys |
Why Claude Max? Predictable monthly cost — no per-token billing surprises. If you prefer pay-per-use, swap
claude-oauth-tokenforanthropic-api-keywith an Anthropic API key.
Run it
Section titled “Run it”Go to the Actions tab, select “SWEny Triage”, and click Run workflow.
SWEny will analyze your Datadog logs and post a full investigation report in the GitHub Actions summary — no tickets, no PRs, just analysis. Review the output to see what it finds.
Step 2: Turn it on
Section titled “Step 2: Turn it on”Once you’re happy with the investigation quality, remove dry-run, add write permissions, and put it on a schedule:
name: SWEny Triageon: schedule: - cron: '0 6 * * 1,4' # Mon & Thu at 6 AM UTC workflow_dispatch:
permissions: contents: write pull-requests: write issues: write
jobs: triage: runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@v4 with: fetch-depth: 0
- uses: swenyai/sweny@v0.2 with: claude-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} dd-api-key: ${{ secrets.DD_API_KEY }} dd-app-key: ${{ secrets.DD_APP_KEY }}SWEny will now automatically investigate errors, create GitHub Issues with root cause analysis, write fixes, and open PRs.
Using a different observability provider?
Section titled “Using a different observability provider?”Swap out the Datadog inputs for your provider. See Observability Providers for Sentry, CloudWatch, Splunk, Elasticsearch, New Relic, and Loki configuration.
Want Linear or Jira instead of GitHub Issues?
Section titled “Want Linear or Jira instead of GitHub Issues?”Set issue-tracker-provider and add the relevant credentials:
# Linear- uses: swenyai/sweny@v0.2 with: claude-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} dd-api-key: ${{ secrets.DD_API_KEY }} dd-app-key: ${{ secrets.DD_APP_KEY }} issue-tracker-provider: 'linear' linear-api-key: ${{ secrets.LINEAR_API_KEY }} linear-team-id: ${{ vars.LINEAR_TEAM_ID }}See Issue Tracking Providers for full Linear, Jira, and GitHub Issues configuration.
What’s next?
Section titled “What’s next?”- Provider Architecture — understand how SWEny’s plugin system works
- Action Inputs — configure time ranges, severity filters, investigation depth
- Examples — service filtering, specific issues, cross-repo dispatch