{"slug": "show-hn-axtary-content-authorization-for-ai-agents", "title": "Show HN: Axtary – Content Authorization for AI Agents", "summary": "Axtary, an open-source content authorization tool for AI agents, launched v0.5.0 on npm under Apache-2.0. The tool enforces policy on exact payloads—such as diffs, messages, or tool calls—before execution, binding human approval to a payload hash to prevent unauthorized changes. Axtary runs locally beside agents via SDKs or a proxy, while a hosted control plane coordinates approvals, policies, and audit exports without accessing action data.", "body_md": "# Content\n\nauthorization\n\nfor AI agents.\n\nAxtary checks the exact diff, message, query, or tool payload before a connector executes. Routine actions follow policy; higher-risk actions require approval of that exact payload.\n\nIf an agent is mistaken or compromised, its authority remains limited to the approved action. Every attempt is recorded.\n\n## Tokens authorize channels. Axtary authorizes content.\n\nAxtary governs security-sensitive engineering and agent operations, including code changes, infrastructure paths, data access, messages, tickets, documents, and MCP tools. Enforcement runs beside the agent so provider credentials remain local. Routine actions follow deterministic policy. Higher-risk actions require approval of the exact payload.\n\n## Change the payload. Verification fails.\n\nHuman approval is bound to the reviewed payload hash. If the payload changes after approval, adapter-side verification rejects the mismatch before the provider is called. The approved and presented hashes are recorded in the ledger.\n\nThe signed pass is bound to the approved action. The ledger preserves the verification record.\n\nReproduce locally: axtary run workflow github-pr-review --real --tamper\n\n## Approval is bound to the payload, not a summary.\n\nActionPass is designed for security review and use across SDKs, proxies, and MCP wrappers. Human approval signs the normalized action and payload hash, preventing authorization from changing after review. The result is authorization for a specific action, rather than broad permission to use a tool.\n\n```\n{\n  \"action_pass_id\": \"ap_01JAXTARY\",\n  \"agent_id\": \"agent:codex-prod\",\n  \"human_owner\": \"user:reviewer@company.com\",\n  \"intent\": \"Open a PR for AXT-418\",\n  \"tool\": \"github.pull_requests.create\",\n  \"resource\": \"repo:company/web-app\",\n  \"constraints\": {\n    \"base_branch\": \"main\",\n    \"max_files_changed\": 12,\n    \"blocked_paths\": [\"infra/prod/**\", \".env*\"],\n    \"requires_tests\": true\n  },\n  \"expires_in\": \"10m\",\n  \"payload_hash\": \"sha256:7f32...\",\n  \"policy\": \"cedar+rego:pass\",\n  \"ledger_hash\": \"sha256:b9a1...\"\n}\npermit (\n  principal == Agent::\"codex-prod\",\n  action == Action::\"github.pull_requests.create\",\n  resource == Repo::\"company/web-app\"\n) when {\n  context.intent.task_id == \"AXT-418\" &&\n  context.payload.max_files_changed <= 12 &&\n  !context.payload.touches_production\n};\n```\n\n### Connectors and runtimes\n\nGovern MCP servers and supported native connectors through the same policy, ActionPass, and ledger, inside the runtimes your teams already use.\n\n## Enforcement runs beside the agent. Teams coordinate through the hosted control plane.\n\nInstall Axtary where agents run. SDKs and the local proxy enforce action policy before tools execute. The hosted app coordinates approvals, policies, and audit exports.\n\nThe ActionPass draft and verifier are public artifacts:[read the spec and verifier guide](/docs/actionpass-spec).\n\nnpm i -g @axtary/cli && axtary init && axtary demo\n\n- proxy · SDKs\n- policy · ledger\n- credential broker\n\n- approval inboxes\n- policy registry\n- audit exports\n\nEnforcement and credentials remain local. The hosted control plane coordinates team policy and review without entering the action data path.\n\n```\npolicy:\n  github:\n    pullRequests:\n      requiredBaseBranch: main\n      maxFilesChanged: 12\n      denyPathPrefixes: [.env, secrets/]\n      stepUpPathPrefixes: [infra/prod/, billing/]\n      requiresTests: true\n  slack:\n    messages:\n      allowedChannels: [\"#axtary-dev\"]\n```\n\nApache-2.0 · v0.5.0 on npm", "url": "https://wpnews.pro/news/show-hn-axtary-content-authorization-for-ai-agents", "canonical_source": "https://axtary.com", "published_at": "2026-07-26 01:02:04+00:00", "updated_at": "2026-07-26 01:22:10.806444+00:00", "lang": "en", "topics": ["ai-agents", "ai-safety", "ai-tools", "ai-infrastructure", "developer-tools"], "entities": ["Axtary", "npm", "Apache-2.0", "GitHub", "Slack", "MCP"], "alternates": {"html": "https://wpnews.pro/news/show-hn-axtary-content-authorization-for-ai-agents", "markdown": "https://wpnews.pro/news/show-hn-axtary-content-authorization-for-ai-agents.md", "text": "https://wpnews.pro/news/show-hn-axtary-content-authorization-for-ai-agents.txt", "jsonld": "https://wpnews.pro/news/show-hn-axtary-content-authorization-for-ai-agents.jsonld"}}