Goose Guardrails
Open Plugins PreToolUse authorization for Goose CLI and desktop
Goose is a local AI agent from Block/AAIF. APort installs as a Goose Open Plugin with a PreToolUse hook, so shell, file, MCP, and developer tool calls can be evaluated against an OAP passport before Goose executes them. The integration applies to local Goose CLI and desktop runtimes that load local Open Plugins; it does not automatically protect a separate hosted browser service.
Quick Start
1. Install guardrail & create passport
npx @aporthq/aport-agent-guardrails goose --global2. Configure the integration
# Global Goose plugin setup
npx @aporthq/aport-agent-guardrails goose --global
# For local-only evaluation during testing:
APORT_GUARDRAIL_MODE=local npx @aporthq/aport-agent-guardrails goose --globalTest the authorization boundary
Installer target: goose. Aliases: none; use the target ID.
npx @aporthq/aport-agent-guardrails goose --globalDenied-action example
Read .env.aport-smoke-test with a passport that blocks .env* paths.
Expected policy result: deny. Use an empty test file. In warn mode the runtime may continue; enforce mode must stop the read. Hosted mode can record the decision; local mode does not prove hosted audit persistence.
{
"policy_id": "data.file.read.v1",
"allow": false,
"reason": "oap.blocked_pattern"
}How It Works
Passport
Your agent gets an OAP passport declaring its identity, capabilities, and operational limits.
Evaluate
Before every tool call, the guardrail evaluates it against the passport's policy. Locally or via hosted API.
Decision
Allow or deny with structured OAP reason codes. Signed decisions create an auditable trail.
Frequently Asked Questions
Does APort work with Goose CLI and Goose desktop?
Yes, for local Goose runtimes that load Open Plugins from ~/.agents/plugins or project plugin directories. The APort installer writes a PreToolUse hook plugin and Goose loads it from the local config.
Does this protect the Goose web app?
Only if that web app/session loads the same local Goose Open Plugin runtime. APort's Goose integration is hook-level local enforcement, not server-side enforcement for a separate hosted browser service.
What happens if the APort Goose hook fails?
The installed hook uses Goose's PreToolUse blocking path and on_failure=block so policy-hook failures deny rather than silently allowing high-risk actions.
Ready to secure your Goose agents?
Review the setup command and denied-action check before enforcing policy.
Start free for local or individual setup. Upgrade to Team for hosted org audit, signed decisions, GitHub guardrails, and shared enforcement across your team.