---
title: Other AI agents
description: Integrate Trigv with Windsurf, Aider, Gemini CLI, GitHub Copilot CLI, and custom agents.
---
# Other AI tools

If a tool can run a shell command when work finishes, it can call Trigv — no special SDK.

## Quick test (any terminal)

```
curl -sS -X POST https://api.trigv.com/api/v1/events \
		-H "Content-Type: application/json" \
		-H "Authorization: Bearer $TRIGV_API_KEY" \
		-d '{"channel":"agents","title":"Agent done","level":"success"}'
```

Or use [`trigv-notify.sh`](/docs/learn/ai-agents) for nicer titles.

## By tool

<table class="ti-table">
  <thead>
    <tr><th>Tool</th><th>What to do</th></tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Windsurf</strong></td>
      <td>When a Cascade flow ends, run <code>trigv-notify.sh</code> from a post-step shell command.</td>
    </tr>
    <tr>
      <td><strong>Aider</strong></td>
      <td>Wrap your session: <code>aider …; trigv-notify.sh "Aider session ended"</code></td>
    </tr>
    <tr>
      <td><strong>Gemini CLI</strong></td>
      <td>Chain commands in one shell script — notify on exit code 0 or 1.</td>
    </tr>
    <tr>
      <td><strong>Custom agents</strong></td>
      <td>Call Trigv from your agent's completion handler — same JSON as <a href="/docs/events">event ingest</a>.</td>
    </tr>
  </tbody>
</table>

## Wrapper pattern

Works when the tool has no hooks yet — run any command, notify on exit:

```
#!/usr/bin/env bash
set -e
"$@"
STATUS=$?
if [ $STATUS -eq 0 ]; then
		trigv-notify.sh "Success" "$*"
else
		TRIGV_LEVEL=error trigv-notify.sh "Failed ($STATUS)" "$*"
fi
exit $STATUS
```

[AI agents overview](/docs/learn/ai-agents) · [API keys](/docs/learn/api-keys)
