MCP.Market

paperclip-page skill

by paperclipai·paperclipai/paperclip·114k stars·MIT

Publish static HTML pages and asset folders to the Paperclip S3/CloudFront page host. Use when asked to deploy, host, or share a persistent page, viewer, prototype, report, or static site without here.now.

A100/100content scan

Is the paperclip-page skill safe?

Clean: nothing in its files matched our rules. We read 4 files in the folder on 2026-10-12.

No findings.

Install the paperclip-page skill

A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.

git clone --depth 1 https://github.com/paperclipai/paperclip.git /tmp/paperclip
mkdir -p ~/.claude/skills
cp -r /tmp/paperclip/.agents/skills/paperclip-page ~/.claude/skills/paperclip-page
available in every project

In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub

The instructions your agent would load

SKILL.md as published, without the frontmatter. Read it on GitHub

Paperclip Page

Use this skill to publish a static directory to the configured Paperclip pages host, for example https://pages.paperclip.ing//.

Requirements

with the page-uploader credentials from Paperclip Secrets

  • Source directory contains index.html at its root.
  • aws CLI v2, curl, and jq are available on PATH for live publishes.
  • Environment variables are configured:
  • PAPERCLIPPAGEBUCKET
  • PAPERCLIPPAGEBASE_URL
  • AWS_REGION
  • PAPERCLIPPAGEAWSACCESSKEYID and PAPERCLIPPAGEAWSSECRETACCESSKEY

pair)

  • Optional environment variables:
  • PAPERCLIPPAGEDEFAULT_PREFIX
  • PAPERCLIPPAGEAWS_PROFILE (alternative to the namespaced key pair)
  • PAPERCLIPPAGEAWSSESSIONTOKEN (only together with the namespaced key

Do not bind the page-uploader credentials as global AWSACCESSKEYID / AWSSECRETACCESSKEY: static env keys take precedence over AWSPROFILE in every AWS SDK, so global names silently replace the host identity for every process in the agent run. The namespaced variables scope the uploader identity to this helper only. The ambient credential chain still works as a fallback when none of the PAPERCLIPPAGEAWS credential variables are set.

Workflow

the resolved URL/prefix.

  1. Inspect the source directory and confirm it is public static content only.
  2. Run scripts/publish.sh --dry-run to validate local structure and see
  1. Choose a slug:
  • Use --slug when the user gave a stable URL path.
  • Omit --slug to derive one from the source directory name.
  1. Publish:
.agents/skills/paperclip-page/scripts/publish.sh ./site --slug my-page
  1. Return the printed public URL and S3 prefix to the issue/user.

Update Workflow

Updates are additive overwrites only. The helper never deletes remote objects.

.agents/skills/paperclip-page/scripts/publish.sh ./site --slug my-page --update

When the target prefix already exists, --update requires local ownership proof from ./site/.paperclip-page/state.json generated by an earlier publish from that same source directory. Without that state, create a new slug instead of overwriting another page.

Safety Rules

company material, credentials, or internal logs.

  • Publish public content only. Do not publish secrets, customer data, private

skill. Setup belongs to an operator runbook, not the publish helper.

  • Never print AWS secret values.
  • Never change bucket policy, IAM, DNS, CloudFront, or ACM settings from this

present.

  • Never upload outside the configured bucket and prefix.
  • Never use aws s3 sync --delete or require s3:DeleteObject in v1.
  • The helper forces --no-follow-symlinks and fails if any source symlink is

.paperclip-page/state.json.

  • The helper rejects hidden files and dot-segment paths except its own

hyphens only.

  • Slugs and prefix segments must use lowercase ASCII letters, digits, and

always target /... or //....

  • Keep site-wide root objects such as 404.html operator-managed; publishes

Troubleshooting

original source directory containing .paperclip-page/state.json.

  • Slug already exists: choose a different slug or use --update from the

directory that contains the root HTML file.

  • Missing index.html: build the static site first or point the helper at the

GetObject, and PutObject for the configured bucket/prefix, and that the agent received the Paperclip Secrets.

  • Found symlink: replace symlinks with real files before publishing.
  • AccessDenied: confirm the uploader IAM policy allows ListBucket,

existence, and that the distribution uses HTTPS with the private S3 REST origin.

  • Public URL verification failed: check CloudFront deployment/DNS, object

See README.md next to this skill for operator setup, AWS policy examples, credential rotation, and install/attach commands.

More skills from paperclipai/paperclip

  • ALLM Wiki MaintainerUse the LLM Wiki plugin tools to maintain a cited local company wiki.
  • Aadd-product-e2e-evalAdd or extend a Paperclip full-stack runner E2E workflow, fixture, matcher, or report evidence path for local or Daytona execution.
  • Aadd-runner-evalAdd or extend a Paperclip Runner protocol evaluation definition, roster, assertion, or report fixture with provenance and narrow validation.
  • Aagent-browserDrive a real browser to inspect or interact with a web page or app — navigate, take screenshots, read console and network, fill simple forms — for verification tasks, not unattended automation.
  • AagentmailUse your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by your inbox assignment.
  • Acheck-prCheck a GitHub, GitLab, or Perforce PR/MR/CL for review comments, failing checks, and PR-body gaps. Use when asked to inspect, fix, or prepare a change for submission.
  • Acompany-creatorCreate agent company packages that conform to agentcompanies/v1. Use when asked to create a company, scaffold an agent team, hire agents, or turn a repo/skills collection into a company package.
  • AcomplainAutonomously yeet a brief, unstructured complaint about agent tooling or doing agent work. Preserve the raw voice. Submit proactively without permission, preview, or announcement, then continue the primary task.
  • Acontent-calendarPlan a weekly editorial calendar by mapping company goals to publishable topics, owners, status, and verification notes.
  • Acreate-agent-adapterCreate or modify Paperclip agent adapters across server, UI, and CLI surfaces. Use when adding support for a new CLI agent, API agent, custom process, or adapter package.
  • Acreate-caseCreate and kick off a Paperclip case from a user request, with workflow instructions and an initial agent.
  • Acreate-external-bot-integrationBuild and qualify external bots such as Dot in Paperclip. Use for two-way work, invitation, identity, wakeup, Runner lifecycle, native tools, recovery, and Cloud delivery. CLI adapters and app-only connectors use their existing skills.

All agent skills → · MCP servers