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
Details
Related Skills
More research & analysis skills you might like
pr-improver
Research & AnalysisRuns 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 & AnalysisRuns 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 & AnalysisRuns 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 & AnalysisAugments 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