Research & Analysis✨gemini🤖claude💬gpt🌐universal

triggerfish

A secure, multi-channel AI agent platform with deterministic policy enforcement below the LLM layer.

Quick Start

Install this Skill

npx skills add greghavens/triggerfish
<p align="center">
  <img src="https://img.shields.io/badge/🐠_Triggerfish-AI_Agent_Platform-0077B6?style=for-the-badge&labelColor=023E8A" alt="Triggerfish" />
</p>

<h1 align="center">🐠 Triggerfish</h1>

<p align="center">
  <strong>A secure, multi-channel AI agent platform with deterministic policy enforcement below the LLM layer.</strong>
</p>

<p align="center">
  Your data stays classified. Your policies stay enforced. No exceptions.
</p>

<p align="center">
  <img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg?style=for-the-badge" alt="Apache 2.0 License" />
  <img src="https://img.shields.io/badge/Runtime-Deno_2.x-000000?style=for-the-badge&logo=deno&logoColor=white" alt="Deno" />
  <img src="https://img.shields.io/badge/LLM-Claude_%7C_GPT_%7C_Gemini-8A2BE2?style=for-the-badge" alt="LLMs" />
</p>

---

## 🌊 Quick Install

One command. That's it.

**Linux / macOS:**
```bash
curl -sSL https://raw.githubusercontent.com/greghavens/triggerfish/master/scripts/install.sh | bash
```

**Windows:**
```powershell
irm https://raw.githubusercontent.com/greghavens/triggerfish/master/scripts/install.ps1 | iex
```

**Docker:**
```bash
docker run -v ./triggerfish.yaml:/data/triggerfish.yaml \
  -p 18789:18789 -p 18790:18790 \
  ghcr.io/greghavens/triggerfish:latest
```

The binary installers download a pre-built release, verify its checksum, and run the setup wizard. See the [Installation & Deployment guide](https://greghavens.github.io/triggerfish/guide/installation) for Docker setup, building from source, and the release process.

---

## 🐚 Commands

| Command | Description |
|---------|-------------|
| `triggerfish dive` | 🤿 First-run setup wizard |
| `triggerfish run` | 🏄 Run gateway in foreground |
| `triggerfish start` | 🚀 Install and start the daemon |
| `triggerfish stop` | 🛑 Stop the daemon |
| `triggerfish status` | 📡 Check if the daemon is running |
| `triggerfish logs` | 📜 View daemon logs (`--tail` to follow) |
| `triggerfish patrol` | 🔍 Run health diagnostics |
| `triggerfish version` | 🏷️ Show version |

---

## 🏗️ How It Works

```
                          🪸 The Reef
                       (Skill Marketplace)
                              |
   Telegram  Signal  Slack  Discord  WhatsApp  WebChat  Email  CLI
      |        |       |       |        |         |       |     |
      +--------+-------+-------+--------+---------+-------+-----+
                              |
                        Channel Router
                     (classification gate)
                              |
                        Gateway Server
                     (WebSocket control plane)
                              |
                  +-----------+-----------+
                  |                       |
            Policy Engine            Agent Loop
           (deterministic)          (LLM provider)
                  |                       |
            +-----+-----+          +-----+-----+
            |     |     |          |     |     |
          Hooks Taint  Audit    Claude  GPT  Gemini
                Track   Log     API   API   API
```

---

## 🔒 Security Model

Triggerfish enforces security **below** the LLM layer. The AI cannot bypass, modify, or influence policy decisions.

| Principle | How It Works |
|-----------|-------------|
| 🏷️ **Classification** | Every piece of data carries a sensitivity label: `PUBLIC`, `INTERNAL`, `CONFIDENTIAL`, or `RESTRICTED` |
| 🎨 **Taint Propagation** | Sessions absorb the classification of data they touch. Taint only escalates, never decreases |
| 🚫 **No Write-Down** | `CONFIDENTIAL` data can never flow to a `PUBLIC` channel. The policy engine blocks it before the LLM sees it |
| ⚙️ **Deterministic Hooks** | Policy decisions are pure functions. No LLM calls, no randomness. Same input → same decision |
| 📋 **Audit Trail** | Every policy decision is logged with full context: timestamp, hook, session, input, result |

---

## 💬 Channels

Triggerfish connects to your existing messaging platforms. Each channel has its own classification level and owner settings.

| Channel | Default Classification |
|---------|:---------------------:|
| 💻 CLI | `INTERNAL` |
| ✈️ Telegram | `INTERNAL` |
| 🔒 Signal | `PUBLIC` |
| 💼 Slack | `PUBLIC` |
| 🎮 Discord | `PUBLIC` |
| 📱 WhatsApp | `PUBLIC` |
| 🌐 WebChat | `PUBLIC` |
| 📧 Email | `CONFIDENTIAL` |

> **Note:** All classifications are configurable. Set any channel to any level in your `triggerfish.yaml`.

---

## ⚙️ Configuration

After running `triggerfish dive`, your config lives at `~/.triggerfish/triggerfish.yaml`:

```yaml
models:
  primary: claude-sonnet-4-5
  providers:
    anthropic:
      model: claude-sonnet-4-5

channels:
  telegram:
    botToken: "your-bot-token"
    ownerId: 123456789
  slack:
    botToken: "xoxb-..."
    appToken: "xapp-..."
    signingSecret: "..."
  discord:
    botToken: "your-discord-bot-token"
    ownerId: "your-discord-user-id"

classification:
  mode: personal
```

---

#

... (truncated)
Repository
6stars
0forks
View on GitHub
Details
DiscoveredFeb 18, 2026
Last UpdatedFeb 18, 2026
Quality Score
40/100

Related Skills

More research & analysis skills you might like

pr-improver
Research & Analysis
Runs an autonomous review-and-fix improvement loop over the current branch's changes until a PR review comes back clean, scoped mechanically to the directories the branch touched. Reviews are performed by an installed PR-review skill (default: pr-review-toolkit's review-pr). Use to fix review findings on a branch before opening or updating a pull request ('clean up this branch', 'fix this PR until review passes', 'run review-and-fix on my changes'). NOT for a one-time review — run the PR-review skill directly.
🤖claude🌐universal
7.5k
643
View
code-improver
Research & Analysis
Runs an autonomous review-and-fix improvement loop over any code target — a skill, plugin, module, or directory — using a reviewer the user names: any installed skill or agent. Keeps a cross-round findings ledger, escalates when fixes stop converging, and guards scope mechanically. Use when asked to 'improve this code until review passes', 'run an improvement loop with <reviewer>', or to iterate review-and-fix with a specific reviewer. For skills prefer the skill-improver entry; for a branch prefer pr-improver.
🤖claude🌐universal
7.5k
643
View
skill-improver
Research & Analysis
Runs an autonomous review-and-fix improvement loop over a Claude Code skill until a review comes back clean, with a cross-round findings ledger, escalation when fixes stop converging, and a mechanical scope guard. Reviews are performed by the plugin-dev skill-reviewer agent. Use to fix skill quality issues, iteratively refine a skill, or resume a loop after an escalation ('fix my skill', 'improve this skill until it passes review', 'skill improvement loop'). NOT for a one-time review — use the plugin-dev skill-reviewer agent directly.
🤖claude🌐universal
7.5k
643
View
audit-augmentation
Research & Analysis
Augments Trailmark code graphs with external audit findings from SARIF static analysis results, weAudit annotation files, and version-gated Trailmark 0.4.x binary-analysis graph exports. Maps findings to graph nodes by file and line overlap, creates severity-based subgraphs, and enables cross-referencing findings with pre-analysis data (blast radius, taint, etc.). Use when projecting SARIF results onto a code graph, overlaying weAudit annotations, importing binary graph findings, cross-referencing Semgrep, CodeQL, or binary-analysis findings with call graph data, or visualizing audit findings in the context of code structure.
🌐universal
7.5k
643
View