Skip to content

Tool Pick | Phinq — Make Your Agent Ask Before It Acts, Catch High-Risk Operations Before They Land

Aug 18, 2026 1 min
TL;DR Phinq is an open-source runtime governance layer for AI agents. It intercepts every tool call and classifies its risk level — reversible operations pass through, irreversible ones (deletions, payments, credential access, bulk operations) pause for human approval. Install: npx @phinq/phinq. It solves the problem of unsupervised agents making irreversible damage with no trustworthy audit trail.
Table of Contents
  1. Tool Info
  2. What Problem It Solves
  3. Getting Started
    1. Installation
    2. Basic Usage
    3. Advanced Usage
  4. Comparison with Alternatives
  5. Caveats
  6. Takeaway
  7. References

🌏 中文版

Tool Info

FieldValue
NamePhinq
TypeRuntime governance proxy / MCP gateway / SDK
GitHubphinq-co/phinq
Stars5 (listed on Product Hunt mid-August 2026, "Launched this week")
LanguageTypeScript (proxy/SDK), Python (governance skill version available on PyPI)
LicenseMIT
Installnpx @phinq/phinq

What Problem It Solves

Would you feel comfortable letting an agent run unattended through the night? The Phinq author's Product Hunt post cites two real incidents: in April this year, a coding agent wiped a company's production database and all its backups in nine seconds; in another case, a company had declared a freeze period, but an agent still purged 1,206 executive records. These aren't hypotheticals — the more tools an agent has access to and the more autonomously it runs, the harder it is to recover from a single bad judgment call.

Phinq's approach is to insert a "runtime checkpoint" between the agent and everything it can touch: every tool call goes through a classifier that assigns a risk level. Reversible actions (reading files, queries) pass through immediately; irreversible actions (deletions, credential access, payments, mass emails/bulk operations) get paused, and a Telegram or Slack notification pushes an "Approve / Deny" button to you. If you don't respond within 240 seconds, it auto-denies. Every decision — approved or denied — is written to a hash-chain audit log (RFC 8785 JCS + SHA-256) where any tampered, deleted, or reordered entry can be detected. It also provides phinq learn, which distills your past approve/deny history into draft rules you can reference, so governance standards accumulate over time instead of requiring fresh judgment every time.

Good fit for: teams running agents on long unattended automation (scheduled cleanups, batch processing, cross-system operations); scenarios where you need to prove "human oversight" to clients or auditors (the author notes the EU AI Act now requires human oversight); and any workflow using Claude Code, Codex, or other MCP-compatible agents that touches production resources.

Getting Started

Installation

# Interactive wizard: auto-detects Claude Code / Codex / Gemini CLI / Hermes / MCP,
# asks three questions, then prints the one-liner config to paste.
# Defaults to watch-only mode (observe, don't block).
npx @phinq/phinq

You can also run the proxy from source:

git clone https://github.com/phinq-co/phinq.git
cd phinq/proxy
npm install && npm run build && npm start
# Listening on 127.0.0.1:5100

Basic Usage

After pointing your agent at the Phinq proxy, run in watch-only mode for a while to confirm the classification results match your expectations, then enable enforcement:

PHINQ_ENFORCE=1 \
PHINQ_TELEGRAM_BOT_TOKEN=*** \
PHINQ_TELEGRAM_CHAT_ID=*** \
npm start

Once enabled, Phinq sends an "Approve / Deny" button via Telegram for high-risk operations. Slack (Socket Mode) is also supported as an alternative approval channel.

If you don't want a standalone proxy, you can use MCP gateway mode to wrap any stdio MCP server without modifying the agent or server itself:

// MCP client config (works with Claude Code, Codex, etc.)
{
  "mcpServers": {
    "filesystem": {
      "command": "phinq-mcp",
      "args": ["--enforce", "--",
               "npx", "-y", "@modelcontextprotocol/server-filesystem", "/data"]
    }
  }
}

Advanced Usage

A TypeScript SDK is also available for embedding governance directly into your own agent code at the function-call level:

import { PhinqGovernor } from "@phinq/governance";

const governor = new PhinqGovernor();
const { allowed } = await governor.gate(
  { name: "run_shell", args: { command } },
  { onHold: (req) => askOperator(req) }  // returns "approve" | "deny"
);

if (allowed) await runTool();

Comparison with Alternatives

PhinqRelying on prompt instructionsManual code review
Runtime enforcement (agent can't see denied calls)❌ (agent may ignore instructions)❌ (only visible after the fact)
Tamper-proof audit log (hash chain)Requires custom build
No need for real-time human monitoring✅ (Telegram/Slack notifications)
Wraps any MCP server with zero changes✅ (phinq-mcp gateway)
Free and open source✅ MIT

Caveats

  • Classification currently looks at tool names, not arguments: The author acknowledged in the Product Hunt comments that a tool like delete_file is currently treated as "irreversible on sight," but whether it's deleting a temp file or the only production backup, the classifier can't tell the difference yet. Shell-executed rm -rf / DROP TABLE does get argument checking, but it's conservative (mostly allowed through). Run in watch-only mode for a while before going live to confirm the classifications match your risk expectations.
  • Very new project with a single maintainer: The GitHub repo was created on 2026-06-27, star count is single digits, and long-term maintenance and issue response speed remain to be seen. Read through the proxy's classification logic source code before deploying to production.
  • Approval channels require setup: Telegram requires creating a bot via @BotFather; Slack needs Socket Mode enabled with multiple tokens. These prerequisites take time. Without an approval channel configured, Phinq can only run in watch-only mode and won't actually block anything.

Takeaway

I used to think of "agent safety" as an after-the-fact exercise — write tests, watch logs, do post-mortems. Phinq reminded me that people are already building this into a "runtime governance layer," which is almost exactly the same idea as the Tier 0–3 classification this site defines in its own CLAUDE.md (autonomous / gate check / ask first / forbidden): instead of trusting the agent to always judge correctly, you spell out which actions are reversible and which aren't, and make irreversible ones always stop and wait for a human nod. This "governance as code" approach is only going to become more common.

References