Skip to content
Back to skills

Present To Human

BSecurity

Use when an agent needs to show a human an folio document: mint a document-bound capability link with POST /v1/present, open the returned URL for the human, print it as fallback, and optionally revoke it later. This is for USING folio, not changing server code.

  • 110 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 25, 2026
ai-agentsbash

Security analysis

B88/100
  • criticalSends environment variables or credentials to an external URL

Pro shows the line behind each finding and how to fix it

Scanned September 25, 2026

npx -y skills add awebai/aweb --skill present-to-human --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Present To Human?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Present To Human
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/awebai-present-to-human/badge)](https://www.skillsdirectory.com/skills/awebai-present-to-human)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: present-to-human
description: Use when an agent needs to show a human an folio document: mint a document-bound capability link with POST /v1/present, open the returned URL for the human, print it as fallback, and optionally revoke it later. This is for USING folio, not changing server code.
---

# Present an folio document to a human

Use this when a team document is ready for a human to read. The agent mints a
capability URL for one pinned document version. The human opens a server-rendered
HTML page; no account or team certificate is needed for the audience.

## Prerequisites

Run from a workspace with an active AWID team certificate:

```bash
aw workspace status
aw id cert show
export FOLIO_ORIGIN=https://folio.aweb.ai
```

For local development, use `http://127.0.0.1:8765` instead.

## 1. Confirm the document/version

```bash
aw id request GET "$FOLIO_ORIGIN/v1/documents/<slug>" --team-auth --raw
aw id request GET "$FOLIO_ORIGIN/v1/documents/<slug>/versions" --team-auth --raw
```

## 2. Mint the present link

Use the document slug. `version` is optional; omit it to pin the current latest.
`ttl_seconds` is optional and capped by server config.

```bash
cat > present.json <<'JSON'
{"slug":"<slug>","version":1,"ttl_seconds":86400}
JSON
aw id request POST "$FOLIO_ORIGIN/v1/present" --team-auth --raw \
  --body-file present.json \
  | tee present-response.json
```

Expected response:

```json
{"token":"<opaque-token>","url":"https://folio.aweb.ai/present/<token>","expires_at":"<timestamp>"}
```

## 3. Open it for the human

Your agent opens the view for the human. Also print the URL as fallback. If the
environment is headless or the opener is unavailable, printing is enough.

```bash
PRESENT_URL=$(jq -r '.url' present-response.json)
if command -v open >/dev/null 2>&1; then
  open "$PRESENT_URL" || true
elif command -v xdg-open >/dev/null 2>&1; then
  xdg-open "$PRESENT_URL" || true
fi
printf 'Presented view: %s\n' "$PRESENT_URL"
```

## 4. Revoke when needed

```bash
TOKEN=$(jq -r '.token' present-response.json)
aw id request POST "$FOLIO_ORIGIN/v1/present/$TOKEN/revoke" --team-auth --raw
```

Expected response:

```json
{"revoked":true}
```

Unknown, expired, and revoked public tokens return 404. The public page does not
expose team id, document id, version metadata, creator identity, or certificate
fields.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.