Skip to content
cccskills
FreePublished on GitHub

ai-headshot-studio

Turns casual selfies into professional headshots using the paid Beatra service. Supports portraits with changed backgrounds, business attire, and studio lighting for resumes, company websites, career profiles, and social media.

OriginalShow the original description

Install and use the official AI Headshot Generator package, pinned by digest, for paid hosted work on the Beatra service.

See how to install

Good for

  • Create a headshot for a resume
  • Prepare a portrait for a company website
  • Update a career profile photo
  • Create a social media profile portrait

Files included (1)

  • SKILL.md13.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

AI Headshot Generator Skill

Overview

Turn a casual selfie into a professional headshot with a new background, business attire, and studio lighting for resumes, company websites, career profiles, and social media, from inside Claude Code, Codex, or OpenClaw. The work is produced on the hosted, paid Beatra service (mcp.beatra.ai).

This catalog entry is a reviewed pointer, not the executable package. It contains no client code and performs no Beatra operation by itself. The package it points to bundles three standard-library Python scripts that make network calls, store a credential, and can replace their own files. Read Install and Security & Safety Notes before activating it.

Pinned identityValue
Packageai-headshot-studio 0.1.7
Archivehttps://cdn.beatra.ai/agent-packages/ai-headshot-studio/v0.1.7/ai-headshot-studio-skill-0.1.7.zip
Archive SHA-256a781be7a811bc5b0e74ba5205e25d01a349c1d3d8eaf261cd653ee1d619b8ab3
Source treebeatra-ai/ai-headshot-generator-skill@a8818c3 (full SHA a8818c3568f5c3fe3c0ef65d68498c1ce2e81b3a)
LicenseMIT No Attribution (MIT-0)

The archive holds regular files only (no symlinks, no executable bits, no binaries). Confirm that with the inspect commands below. Every file must be byte-identical to the source tree at the pinned commit.

When to Use This Skill

  • Use when the user explicitly wants AI Headshot Generator work produced on Beatra and accepts that it is paid.
  • Use when they have agreed to send prompts and any reference images to a third party.
  • Do not use for local-only image editing or when no paid render was approved.

Install (pinned, verified, approved twice)

Step 1: Download and verify into a review directory

Explain that this downloads an external package from cdn.beatra.ai, then ask for approval. Only after approval:

umask 077
review_dir="$(mktemp -d)"
cd "$review_dir" || exit 1
curl --connect-timeout 10 --max-time 60 -fsSO "https://cdn.beatra.ai/agent-packages/ai-headshot-studio/v0.1.7/ai-headshot-studio-skill-0.1.7.zip"
printf '%s  %s\n' \
  'a781be7a811bc5b0e74ba5205e25d01a349c1d3d8eaf261cd653ee1d619b8ab3' \
  'ai-headshot-studio-skill-0.1.7.zip' | shasum -a 256 -c -

Stop if the check does not print OK. The expected digest comes from this catalog entry, not from a file on the same CDN.

Step 2: Inspect before activation

Before extraction, inspect every ZIP member name, Unix mode, declared size and total expanded size. Reject absolute/traversing paths, entries outside the intended package root, duplicate or case-colliding names, symlinks, devices and executable/binary files. Set bounded file-count, per-file and total extraction limits. Extract only after that preflight passes into the fresh private review directory; inspecting links after extraction cannot prevent an escape. A matching archive hash is an integrity check against this receipt, not permission to execute or proof of complete safety.

unzip -l ai-headshot-studio-skill-0.1.7.zip
# After the complete member preflight passes:
unzip -q ai-headshot-studio-skill-0.1.7.zip
find ai-headshot-studio -type l -print            # expect no output
find ai-headshot-studio -type f -perm -111 -print # expect no output
grep -n '"auto_update": True' ai-headshot-studio/scripts/mcp_client.py

Confirm byte identity with the public source tree before activation (a second, independent host):

git clone --quiet --filter=blob:none --no-checkout https://github.com/beatra-ai/ai-headshot-generator-skill.git src
git -C src checkout --quiet a8818c3568f5c3fe3c0ef65d68498c1ce2e81b3a -- skills/ai-headshot-studio
(cd ai-headshot-studio && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > archive.sha
(cd src/skills/ai-headshot-studio && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > tree.sha
cmp archive.sha tree.sha && echo IDENTICAL

Report to the user what the review found: SKILL.md, manifest.json, the bundled Markdown references, and scripts/authorize.py, scripts/mcp_client.py, scripts/uninstall.py (Python 3.10+, standard library only, no dependency installation, no lifecycle hooks). Summarize the network, credential, local-state, telemetry, and self-update behavior listed under Security & Safety Notes.

Step 3: Copy in and disable self-update before any other command

Obtain explicit authorization for this host configuration change if it is not already covered by the user's request; do not repeat an existing scoped approval. Then copy the reviewed tree to the host's skills directory (Claude Code shown; use the equivalent path for other hosts) and immediately turn off silent self-update for that exact path:

dest="$HOME/.claude/skills/ai-headshot-studio"
test ! -e "$dest" && test ! -L "$dest" || { echo "destination exists; stop and ask the user"; exit 1; }
cp -R ai-headshot-studio "$dest"
python3 "$dest/scripts/mcp_client.py" update --auto off

The last command must print Automatic Beatra package updates are disabled. It writes only ~/.beatra/updates/<id>/state.json and makes no network request. Run it before authorize.py, verify, tools, upload, or call: in this pinned version self-update is on by default. The setting is keyed to the resolved install path, so repeat it after moving or re-copying the directory.

Step 4: Authorize as its own decision

Authorization opens a browser sign-in and stores a bearer token. Ask first.

python3 "$dest/scripts/authorize.py"

Start a new agent session if the host discovers skills only at startup.

How It Works

  1. Read the installed package's SKILL.md and its references; they define the routes, payload shapes, and review loop.
  2. Use free, non-billable discovery first (beatra.models.list, task list) to read current model cards and credit estimates.
  3. Show the user a cost card for exactly one paid call: tool, model, estimate, and which files will be uploaded. Wait for explicit approval. Use existing explicit approval for the named service, file set, exact call and cost ceiling; an open-ended request does not approve unknown charges.
  4. Upload only files the user supplied and approved for this task, then submit once with a stable client_request_id and poll the returned task.
  5. Report the delivered artifact and billing.net_charged_credits, review the result with the user, and ask again before any further paid stage.

Examples

Free connection check (non-billable)

python3 "$HOME/.claude/skills/ai-headshot-studio/scripts/mcp_client.py" verify

One approved paid call

After the user approved the cost card for this exact payload, submit once with a stable request id using the tool name from the installed SKILL.md. If the response is lost, retry only with the same client_request_id and identical arguments; never submit a replacement while the task is running.

Update

This entry does not endorse the package's silent self-update. Keep update --auto off in place and do not run update --auto on or a bare update without explicit approval.

To move to a newer version, repeat Steps 1 to 3 for that version in a new review directory, verify its digest against the matching tree in beatra-ai/ai-headshot-generator-skill (a version not listed in this entry has not been reviewed here), show the user the file-level changes against the installed copy, and replace the directory only after approval. update --check reports the available version from beatra.ai without changing files.

Uninstall

dest="$HOME/.claude/skills/ai-headshot-studio"
python3 "$dest/scripts/uninstall.py" --dry-run
python3 "$dest/scripts/uninstall.py"

Read the JSON decision. disconnected means this was the last Beatra skill on the device: the token was revoked (when revoked is true) and the files credentials.json, installation.json, host.json, skills.json, registrations.json, pending_authorization.json, and .authorize.lock under ~/.beatra were removed. keep_connection means another Beatra skill still uses the shared token, which stays. Then, after confirming the path with the user, delete $dest.

uninstall.py does not remove ~/.beatra/updates/. When the decision is disconnected and no other Beatra skill is installed, remove that directory too; otherwise leave it. A token that could not be revoked expires after 15 days idle and can be revoked at once in the Beatra Console under Agents.

Best Practices

  • ✅ Keep one approval per paid call, per upload set, and per install step.
  • ✅ Report net charged credits from the terminal task, not the estimate.
  • ❌ Do not re-enable self-update or install an unreviewed version silently.
  • ❌ Do not print, paste, or move the token out of ~/.beatra/credentials.json.
  • ❌ Do not retry a paid call with a new request ID after an uncertain response.

Limitations

  • Requires a Beatra account, network access, Python 3.10+, and prepaid credits.
  • Models, prices, schemas, and availability are controlled by Beatra and its upstream model providers and can change; the service is provided as is.
  • Outputs are probabilistic, not guaranteed unique or non-infringing, and need human review before publication.
  • This catalog entry reviews only the pinned archive above. A newer version is a different review.

Security & Safety Notes

risk: critical is deliberate.

  • Network. Authorization uses api.beatra.ai; every tool call and upload goes to mcp.beatra.ai. With self-update left on, the client also fetches https://beatra.ai/skills/ai-headshot-studio/install.json and archives from cdn.beatra.ai.
  • Self-update (on by default in this pinned version). Before verify, tools, upload, or call, the client checks for a newer release at most once every 24 hours and, if one exists, replaces package-owned files without per-update preview or approval. It pins host and path, verifies checksums from Beatra's own discovery document and CDN, and rolls back on failure, but those digests are not independently anchored. This entry therefore requires update --auto off before first use, as in Step 3.
  • Uploads and third parties. Prompts and uploaded media are sent to Beatra and forwarded to the third-party model provider executing the task. Beatra is hosted outside mainland China. See the privacy policy.
  • Likeness and reference media. Uploaded portraits or reference clips are sent to Beatra and the model provider. Require approval for that exact file set.
  • Billing. Paid tools consume prepaid credits. Credits for tasks that fail for reasons attributable to Beatra or the upstream model are returned automatically; otherwise purchases are non-refundable, and actual usage can exceed the estimate and leave a negative balance. See the terms.
  • Credentials. authorize.py runs an OAuth device flow, opens the browser, and stores one bearer token in ~/.beatra/credentials.json (directory 0700, file 0600). The token never goes into argv, environment variables, or output. It carries full Beatra scope, including wallet:spend, has a sliding 15-day idle lifetime, and is shared by every Beatra skill on the device. While the user has not yet selected Allow, the pending device code is kept in ~/.beatra/pending_authorization.json (same 0600 protection) so a rerun finishes the same approval instead of opening a new one; it is deleted once the token is saved or the approval lapses. When verify, tools, upload, or call finds no working token, the client makes one check of that saved approval and stores the token if the user has already selected Allow; it never starts a new authorization or opens a browser.
  • Local state. ~/.beatra/ also holds installation.json (random installation reference), host.json (agent platform and hostname), skills.json (installed Beatra skill paths), registrations.json, and updates/<id>/state.json plus update backups when updates run.
  • Telemetry. The device flow sends the hostname as the device name, the package slug and version, and the detected agent platform (for example claude-code, from environment variables). On first use the client makes a non-billable beatra.installations.register call, and every tool call adds source_package_slug and source_platform. There is no opt-out for these fields.
  • Retention. Account data is kept for the life of the account. Task records, artifacts, and billing ledgers are retained after account closure for audit and tax purposes.
  • Content rights. Users keep rights in their inputs and receive Beatra's rights in outputs; they must hold rights to uploaded media and must not create deceptive impersonations.

Additional Resources

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Assess a new or existing AI project by examining its code, goals, and constraints. Recommend skills confirmed to exist in the available registry, then outline tasks and implementation phases with dependencies, completion criteria, and checks.

  • Planning the first steps of a new AI project
  • Assessing technical issues in an existing project
  • Selecting relevant skills from an available registry
sickn33/agentic-awesome-skills47.9KUpdated Oct 17, 2026

007

FreeSummary

Review code and infrastructure for security risks, map potential threats, and plan stronger defenses. The skill covers OWASP checks, attack and defense exercises, and incident response, with validation required for each environment.

  • Reviewing code and infrastructure security
  • Mapping threats with STRIDE or PASTA
  • Planning stronger security settings
sickn33/agentic-awesome-skills47.9KUpdated Oct 17, 2026

Turn a repeatable task into an Andru.ia skill with clear inputs, outputs, examples, and limits. Draft SKILL.md, check the folder structure and required validations, and prepare a pull request describing the changes for review.

  • Creating a skill for a repeatable task
  • Improving an existing skill’s examples and limits
  • Validating skill files and preparing a pull request
sickn33/agentic-awesome-skills47.9KUpdated Oct 17, 2026

Prepare an industry briefing once a project's sector is defined. It covers sector context, potentially applicable regulations, familiar interface patterns, technology choices, and risks, while separating verified evidence from hypotheses and questions requiring further review.

  • Researching industry requirements before product design
  • Checking regulations for a project's jurisdiction
  • Choosing interface patterns familiar to target users
sickn33/agentic-awesome-skills47.9KUpdated Oct 17, 2026

Create presentation drafts from text, outlines, or documents through the 2slides API. Match a reference image's style, choose themes, add AI voice narration, and export slide images or audio for review and use.

  • Create a presentation from text or an outline
  • Summarize a document into slides
  • Match slide styling to a reference image
sickn33/agentic-awesome-skills47.9KUpdated Oct 17, 2026

Plan a 360-degree or peer feedback process and create empty response templates from confirmed requirements. Produces consistent CSV, SQL, JSON Schema, or Notion property mappings while keeping visibility choices and scoring configuration separate.

  • Plan an anonymous peer feedback process
  • Create a CSV template for feedback responses
  • Align feedback fields across SQL and JSON Schema
sickn33/agentic-awesome-skills47.9KUpdated Oct 17, 2026

See all skills by sickn33

Report a problem with this skill