Install
openclaw skills install @denyn1/aifeedVerify signed AIFeed declarations and publish signed AIFeed origins (permissions, feeds, manifests).
openclaw skills install @denyn1/aifeedAIFeed is an open standard for signed content permissions for the AI web:
publishers declare what AI agents may do, sign the declaration with Ed25519, and
agents verify it before fetching. English-only by convention for agent skills;
user-facing docs live in EN/ID/ZH under docs/, integrations/, and studio/.
node bin/cli.js validate example.com --json # live domain: TLS, signature, DNS anchor
node bin/cli.js validate ./public --domain example.com # local build output
SDK (@aifeed/verify, zero dependencies):
const sdk = require('@aifeed/verify');
const out = sdk.verifyAll({ manifestText, manifestBytes, signatureText, domain });
sdk.decideUsage(out, 'retrieval'); // { allowed, attribution, reason }
Rule: treat training: deny as binding. Attribute when attribution requires it.
Re-check the revocation list on every use, not just once.
node bin/cli.js keygen --out .aifeed # once; private key stays local (0600)
node bin/cli.js site build public --domain example.com \
--key .aifeed/aifeed-private.pem --profile both --llms --inject
Then add the DNS TXT record (_aifeed) printed by the setup guide, deploy the whole
directory (including .well-known/), and serve Accept: text/aifeed+markdown via an
adapter from integrations/ (nginx, Caddy, Apache, Node, Next.js, PHP, Python ASGI,
Go, Rust/Axum, Cloudflare, Traefik) or the @aifeed/frameworks build plugins. Or use
the local UI: npm run studio (http://127.0.0.1:7777).
Rules: permissions are restrict-only (pages may tighten, never loosen origin
policy); never print, commit, or transmit private keys; keep 0600 file mode.
packages/aifeed-mcp-server exposes the same checks as tools (verify_manifest,
fetch_aifeed, list_assets, verify_asset, select_index, decide_usage):
node packages/aifeed-mcp-server/index.js # stdio; HTTPS only
npm run verify is the single gate and must pass before any commit.conformance/); JS + Python
suites must stay green and in parity.AGENTS.md).spec/en/); mirror sections to spec/id/, spec/zh/.