Agent skill

Profile Sculptor Backend

by imbue-ai in imbue-ai/sculptor

Capture Python-level diagnostics from a running Sculptor backend (sculptorbackend): instant thread dumps and viztracer/Perfetto traces with no special privileges, or py-spy CPU sampling /…

MITAuto-check: notes

Install Profile Sculptor Backend

skills CLI
$ npx skills add imbue-ai/sculptor --skill profile-sculptor-backend -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install imbue-ai/sculptor profile-sculptor-backend --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/imbue-ai/sculptor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/profile-sculptor-backend .claude/skills/profile-sculptor-backend && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
profile-sculptor-backend
GitHub stars
238
Token cost
~3.1k tokens
SKILL.md length
1,200 words
Files
1
Skills in repo
29
Repo updated
First seen
Licence
MIT

At a glance

Capture Python-level diagnostics from a running Sculptor backend (sculptorbackend): instant thread dumps and viztracer/Perfetto traces with no special privileges, or py-spy CPU sampling /…

  • Works in 2 steps: Orient: where am I, and what's the target? → Is Route A available on this build?…
  • The backend is wedged
  • SKILL.md covers Step 0 — Orient: where am I,…, Step 1 — Is Route A available…, Route A — sculpt debug… and Route B — py-spy (attach; CPU…, plus 2 more sections
  • Calls curl, cargo and gh; reaches github.com and apple.com; needs SESSION_TOKEN

What it does

Profile Sculptor Backend is an agent skill from imbue-ai/sculptor. Capture Python-level diagnostics from a running Sculptor backend (sculptorbackend): instant thread dumps and viztracer/Perfetto traces with no special privileges, or py-spy CPU sampling / flamegraphs / native stacks against the installed signed app (one-time re-sign + sudo). Use when the backend is wedged, slow, pegging a CPU core, or deadlocked, or when you need a CPU profile or a live stack of sculptorbackend. Works both INSIDE Sculptor (where privileged steps are delegated to the user so the agent never kills…

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Python. The repository describes itself as: Build product with grounded, parallel coding agents. The licence is MIT.

When your agent uses it

  • The backend is wedged
  • Pegging a CPU core
  • You need a CPU profile
  • A live stack of sculptorbackend

Example prompts

  • “/profile-sculptor-backend”

Requirements

  • Python 3
  • A credential in SESSION_TOKEN

Workflow steps

2 steps, taken from the step headings in SKILL.md.

  1. Orient: where am I, and what's the target?
  2. Is Route A available on this build? (probe)

What it can do on your machine

Read from SKILL.md and the folder at commit f847102. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • cargo
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • apple.com
    • speedscope.app

    Also links to:

    • ui.perfetto.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • SESSION_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Profile Sculptor Backend loads about 3.1k tokens when it runs. Until then it costs about 149 tokens; SKILL.md has 1,200 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~149
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:49
    (per the always-ask rule in B3) and `sudo py-spy` when passwordless sudo is
  • NoteRuns commands with sudoSKILL.md:207
    if sudo -n true 2>/dev/null; then RUN="sudo -n"; else
  • NoteRuns commands with sudoSKILL.md:208
    echo "No passwordless sudo — ask the user to run the command below themselves."; RUN="sudo"

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from imbue-ai/sculptor at commit f847102, republished under its MIT licence (© imbue-ai). 1,200 words, ~3,147 tokens.

Download SKILL.mdSave it as .claude/skills/profile-sculptor-backend/SKILL.md (or your agent's skills folder).
name
profile-sculptor-backend
description
Capture Python-level diagnostics from a running Sculptor backend (`sculptor_backend`): instant thread dumps and viztracer/Perfetto traces with no special privileges, or py-spy CPU sampling / flamegraphs / native stacks against the installed signed app (one-time re-sign + sudo). Use when the backend is wedged, slow, pegging a CPU core, or deadlocked, or when you need a CPU profile or a live stack of `sculptor_backend`. Works both INSIDE Sculptor (where privileged steps are delegated to the user so the agent never kills its own backend) and from an EXTERNAL `claude`.

Profile / debug a running Sculptor backend

This skill gets Python-level visibility into a live sculptor_backend process. There are two routes; prefer Route A and fall back to Route B when you need CPU sampling or when the running build predates the in-process debug endpoints.

Route A — sculpt debug (in-process)Route B — py-spy (attach)
Gives youInstant all-thread Python stacks; viztracer→Perfetto call-tree traceSampled CPU profile / flamegraph; live stacks; native (C) frames
PrivilegesNone (HTTP + session token)sudo + a one-time codesign re-sign of the bundle
Works onOnly builds that ship the trace/debug endpoints (probe first)Any build, including the shipped notarized one
Safe inside Sculptor?Yes — never touches the processRe-sign/restart are the user's; the agent only attaches
Best for"What is every thread doing right now?", a wedged backend, a bounded call-tree trace, CPU-over-timeInstant all-thread stacks (dump), a live top glance, native (C) frames, CPU profile / flamegraph (record). (record suspends the target by default — pass --nonblocking to avoid freezing a live session; Route A is still richer for over-time CPU.)

Why two routes: macOS blocks task_for_pid on the hardened-runtime, notarized app, so py-spy can't attach until the target is re-signed with get-task-allow (which can't ship on a notarized build — see SCU-1604). The in-process route sidesteps that entirely but only exists in builds new enough to include the endpoints. Background: docs/development/tracing.md (Route A reference) and SCU-1604.

Step 0 — Orient: where am I, and what's the target?

Am I inside Sculptor or an external claude? Check SCULPT_AGENT_ID:

bash
if [ -n "$SCULPT_AGENT_ID" ]; then echo "INSIDE Sculptor"; else echo "EXTERNAL claude"; fi
  • INSIDE Sculptor (SCULPT_AGENT_ID set): the sculptor_backend you'd profile is the one hosting this very agent. Route A is safe. For Route B you may build py-spy and attach, but never quit/restart the app or kill the backend — that terminates you. Re-sign and restart are the user's actions.
  • EXTERNAL claude: you may run the privileged commands directly — codesign (per the always-ask rule in B3) and sudo py-spy when passwordless sudo is available (B5). The app restart is always the user's job (B4): an external process can't reliably relaunch the user's Sculptor.

Find the running backend (pid, port, binary path):

bash
pgrep -fl 'sculptor_backend --port' || ps aux | grep '[s]culptor_backend --port'
# port (also in $SCULPT_API_PORT / $SCULPTOR_API_PORT when set):
ps -o command= -p "$BACKEND_PID" | grep -oE -- '--port [0-9]+' | awk '{print $2}'

Derive the bundle executable from the running pid rather than assuming a path (it differs between Sculptor.app and Sculptor Dev.app); typically /Applications/Sculptor.app/Contents/Resources/sculptor_backend/sculptor_backend.

Step 1 — Is Route A available on this build? (probe)

The in-process endpoints only exist in builds that shipped them. Probe:

bash
PORT="${SCULPT_API_PORT:-${SCULPTOR_API_PORT:-5050}}"
curl -s -H "x-session-token: $SESSION_TOKEN" "http://localhost:$PORT/api/v1/trace/status"
  • JSON like {"enabled":false,...} → Route A is available. Use it.
  • HTML (<!doctype html>…) or 404 → endpoints absent in this build → use Route B (py-spy), or install a newer build if in-process tracing is desired.

Route A — sculpt debug (in-process; no privileges)

No re-sign, safe from inside Sculptor. If the running build ships the new sculpt, use the CLI; otherwise call the endpoints directly with curl. The CLI targets the backend via SCULPT_API_PORT (default 5050) and authenticates with the session token automatically.

Instant all-thread Python stacks (greenlet-safe; best for a wedged backend):

bash
sculpt debug threads                 # to stdout
sculpt debug threads -o threads.txt  # to a file
# Direct equivalent (any build with the endpoint):
curl -s -H "x-session-token: $SESSION_TOKEN" "http://localhost:$PORT/api/v1/debug/threads"

Bounded viztracer trace → Perfetto:

bash
sculpt debug trace start                 # arm (optionally --tracer-entries N)
# …reproduce the slow/interesting activity…
sculpt debug trace status                # running? buffered counts?
sculpt debug trace stop                  # flush; prints the output path
# Direct equivalents:
curl -s -XPOST -H "x-session-token: $SESSION_TOKEN" "http://localhost:$PORT/api/v1/trace/start"
curl -s -XPOST -H "x-session-token: $SESSION_TOKEN" "http://localhost:$PORT/api/v1/trace/stop"

Open the resulting trace-<timestamp>.json (written under the backend's {LOG_PATH}/traces/ — ~/.sculptor/internal/logs/traces/ in a normal install; the exact path is returned by stop) at https://ui.perfetto.dev.

This is the runtime side of the tracing system; see docs/development/tracing.md for the full reference (what's captured, sources/pids, clock caveat, sensitive-data handling, endpoint security). Operationally: only one trace runs at a time (start → 409 if already armed); the ring buffer holds DEFAULT_ADHOC_TRACER_ENTRIES events by default (bounded server-side; raise with --tracer-entries) and wraps when full; and a runtime-armed trace is backend-Python only — for renderer/Electron-main lanes you need a from-boot sculptor --trace-to=<path> run (see tracing.md).

Route B — py-spy (attach; CPU sampling, flamegraphs, native stacks)

B1. Get a working py-spy

Stock py-spy mis-resolves the bundled libpython image base in our PyInstaller onedir layout and fails with Unsupported version of Python: 0.0.0. The fix is upstream in benfred/py-spy#858 ("Adjust the PyInstaller MacOS image base").

py-spy source — pick the first that applies:

  1. Official, once #858 ships in a release — prefer plain cargo install py-spy / a released binary. Check whether #858 has landed: gh pr view 858 --repo benfred/py-spy --json state,mergedAt.
  2. Until then, build the fork branch (needs Rust/cargo) and cache it:
bash
# Override PYSPY to point at any working build (e.g. a released py-spy once #858 lands).
PYSPY="${PYSPY:-$HOME/.cache/sculptor-pyspy/bin/py-spy}"
if ! "$PYSPY" --version >/dev/null 2>&1; then
  cargo install --git https://github.com/trisiak/py-spy \
    --branch pyinstaller-macos-image-base --root "$HOME/.cache/sculptor-pyspy"
  PYSPY="$HOME/.cache/sculptor-pyspy/bin/py-spy"
fi
"$PYSPY" --version
B2. Is a re-sign even required? (inspect first)

Check whether the running backend's binary already allows task attachment — don't re-sign blindly (it may already be signed, e.g. from a previous session):

bash
codesign -d --entitlements - "$BACKEND_BIN" 2>&1 | grep -q get-task-allow \
  && echo "already attachable — skip B3/B4" || echo "re-sign needed (B3)"

If it already has get-task-allow, skip to B5. Dev builds (Sculptor Dev.app, from just pkg-dev) ship the sidecar already signed with get-task-allow (see forge.config.ts postPackage + entitlements.dev.plist), so this check passes and no re-sign is needed — only the notarized production app requires B3.

Show full SKILL.md (454 more words)Show less
B3. Re-sign (only if B2 says so) — always ask the user

The shipped backend is hardened-runtime signed without get-task-allow, so even sudo can't attach. Re-signing modifies the installed app in place, invalidates its notarization seal locally (fine for dev; persists until the app is reinstalled/updated), and a re-signed file only takes effect after a restart (B4).

Always present the choice to the user — in both internal and external contexts — and let them pick:

  • (a) Agent runs it — the agent executes the commands below itself.
  • (b) User runs it — hand them the exact commands to run themselves.

Either way the commands are:

bash
cat > /tmp/pyspy-entitlements.plist <<'PLIST'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
  <key>com.apple.security.get-task-allow</key><true/>
  <key>com.apple.security.cs.allow-get-task-allow</key><true/>
</dict></plist>
PLIST
codesign -s - -f --entitlements /tmp/pyspy-entitlements.plist "$BACKEND_BIN"
codesign -d --entitlements - "$BACKEND_BIN" 2>&1 | grep get-task-allow   # verify

Re-signing just the sculptor_backend executable is sufficient — the bundled libpython dylib does not need re-signing.

B4. Restart — always the user

A re-signed on-disk file does not change the already-running process. Ask the user to restart Sculptor (quit fully and relaunch) so the new signature takes effect. Never quit/relaunch the app yourself — inside Sculptor it kills you, and externally it isn't reliable. After they confirm the restart, re-discover the pid and port (both change) via Step 0.

B5. Attach and profile

py-spy needs root. Try passwordless sudo; if it isn't available, hand the exact command to the user instead of prompting blindly.

bash
if sudo -n true 2>/dev/null; then RUN="sudo -n"; else
  echo "No passwordless sudo — ask the user to run the command below themselves."; RUN="sudo"
fi
$RUN "$PYSPY" dump --pid "$BACKEND_PID"   # one-shot all-thread stacks (brief pause)
$RUN "$PYSPY" top  --pid "$BACKEND_PID"   # live top-functions view
# add --native for C frames

# CPU profile / flamegraph over time. --nonblocking is essential against a live
# backend (see note below): it samples without suspending the process.
$RUN "$PYSPY" record --pid "$BACKEND_PID" --nonblocking --rate 50 --duration 20 \
  --output ~/sculptor-backend-flame.svg                       # open in any browser
# Scrubbable timeline instead of a flat flamegraph (open at https://speedscope.app):
$RUN "$PYSPY" record --pid "$BACKEND_PID" --nonblocking --rate 50 --duration 20 \
  --format speedscope --output ~/sculptor-backend-profile.speedscope.json

py-spy record against the backend: pass --nonblocking. By default py-spy samples by suspending the target, and record's continuous suspend-sample over a duration blocks the backend heavily on macOS — enough to freeze a live session (and inside Sculptor that's the very session you're running in). --nonblocking reads stacks without pausing the process, so it doesn't freeze anything; the tradeoff is occasional partial/inconsistent stacks and higher sampling error, which is usually fine for a hotspot flamegraph. Keep --rate modest and --duration bounded regardless. For the richest over-time CPU picture, Route A viztracer is still better — it runs in-process with a full call tree — but when Route A is absent (the build that pushed you to Route B), --nonblocking record is the right fallback. dump/top pause only briefly and don't need the flag.

Cleanup

  • Stop any armed Route-A trace (sculpt debug trace stop) you started.
  • The re-signed bundle stays re-signed; tell the user they can reinstall/update to restore the pristine notarized app.

Pitfalls

  • Don't kill your own backend / app. Inside Sculptor, the restart in B4 is always the user's action.
  • pid/port change on restart — re-discover them (Step 0) after any relaunch.
  • Inspect before re-signing (B2) — the binary may already be attachable.
  • Stock py-spy fails with 0.0.0 on our bundle — use the patched fork (B1).
  • py-spy record blocks the backend by default (suspend-based continuous sampling) — pass --nonblocking to sample without pausing the process, or use Route A viztracer for the richest sustained CPU profile (B5).
  • One Route-A trace at a time (start → 409 if already running).

© imbue-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/profile-sculptor-backend of imbue-ai/sculptor.

Open the folder on GitHubat commit f847102

Compare with similar skills

Profile Sculptor Backend next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Profile Sculptor Backend compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Profile Sculptor Backend this skillimbue-ai/sculptor238—~3.1kAutomated safety check: NotesMIT
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
PDF Processinganthropics/skills180k47 repos~2kAutomated safety check: PassProprietary
NotebookLM Research AssistantPleasePrompto/notebooklm-skill7.8k14 repos~2.4kAutomated safety check: NotesMIT
Manim Video Productionbrowser-use/video-use29k6 repos~3kAutomated safety check: PassMIT
PPT Masterhugohe3/ppt-master59k1 repos~2.5kAutomated safety check: PassMIT

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • PDF Processing

    anthropics/skills

    Official

    Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.

    180k GitHub starsUsed in 47 repos~2k tokens
    Documents & OfficeAuto-check passed
  • NotebookLM Research Assistant

    PleasePrompto/notebooklm-skill

    Lets Claude Code ask questions of your Google NotebookLM notebooks through browser automation and return answers grounded in your uploaded sources.

    7.8k GitHub starsUsed in 14 repos~2.4k tokens
    Knowledge ManagementAuto-check: notes
  • Manim Video Production

    browser-use/video-use

    Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.

    29k GitHub starsUsed in 6 repos~3k tokens
    Media & CreativeAuto-check passed
  • PPT Master

    hugohe3/ppt-master

    Generates editable PowerPoint decks, rebuilds slides from images, fills .pptx templates and polishes existing presentations through routed workflows.

    59k GitHub starsUsed in 1 repo~2.5k tokens
    Documents & OfficeAuto-check passed
  • Scikit Learn

    zLanqing/codex-claude-academic-skills

    Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 16 repos~3.9k tokens
    Data & AnalyticsAuto-check passed

More from imbue-ai/sculptor

All 29 skills in this repo
  • Auto QA Iphone

    imbue-ai/sculptor

    QA the Sculptor mobile web UI on a real iOS Simulator, driven headlessly from a Mac.

    238 GitHub stars~3.1k tokensUpdated 2 days ago
    Auto-check passed
  • Measure React Renders

    imbue-ai/sculptor

    Compare React component render counts between origin/main and the current branch during a user-defined UI scenario (e.g.

    238 GitHub stars~603 tokensUpdated 2 days ago
    Auto-check passed
  • Post PR To Slack

    imbue-ai/sculptor

    Post a one-line PR announcement to a Slack channel, and mark it :merged: when the PR merges.

    238 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Batch Claude Runner

    imbue-ai/sculptor

    Run Claude programmatically against collections of files in the codebase.

    238 GitHub stars~308 tokensUpdated 2 days ago
    Auto-check passed
  • Build Sculptor Extension

    imbue-ai/sculptor

    Build or modify a Sculptor extension — a runtime ESM module loaded into the Sculptor UI.

    238 GitHub stars~3.4k tokensUpdated 2 days ago
    Auto-check passed
  • Code Review Checklist

    imbue-ai/sculptor

    Review a set of code changes against Sculptor's review categories and produce a markdown findings table.

    238 GitHub stars~3.6k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Profile Sculptor Backend

What does Profile Sculptor Backend do?

Capture Python-level diagnostics from a running Sculptor backend (sculptorbackend): instant thread dumps and viztracer/Perfetto traces with no special privileges, or py-spy CPU sampling /…. Profile Sculptor Backend is an agent skill from imbue-ai/sculptor. Capture Python-level diagnostics from a running Sculptor backend (sculptorbackend): instant thread dumps and viztracer/Perfetto traces with no special privileges, or py-spy CPU sampling / flamegraphs / native stacks against the installed signed app (one-time re-sign + sudo).

When should I use Profile Sculptor Backend?

Profile Sculptor Backend fits situations like: the backend is wedged; pegging a CPU core; you need a CPU profile; A live stack of sculptorbackend.

How do I install Profile Sculptor Backend in Claude Code?

Run `npx skills add imbue-ai/sculptor --skill profile-sculptor-backend -a claude-code`. Or copy the skill folder (.claude/skills/profile-sculptor-backend in imbue-ai/sculptor) into .claude/skills/profile-sculptor-backend in your project. Claude Code loads it when a task matches its description.

How do I install Profile Sculptor Backend in Codex?

Run `npx skills add imbue-ai/sculptor --skill profile-sculptor-backend -a codex`. Or copy the skill folder (.claude/skills/profile-sculptor-backend in imbue-ai/sculptor) into .agents/skills/profile-sculptor-backend in your project. Codex loads it when a task matches its description.

Can I use Profile Sculptor Backend in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add imbue-ai/sculptor --skill profile-sculptor-backend -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/profile-sculptor-backend, .gemini/skills/profile-sculptor-backend, .github/skills/profile-sculptor-backend and .opencode/skills/profile-sculptor-backend in your project.

What does Profile Sculptor Backend need to run?

Going by SKILL.md and its folder, Profile Sculptor Backend needs the command-line tools its instructions call (curl, cargo and gh) and credentials named SESSION_TOKEN. Our summary lists: Python 3; A credential in SESSION_TOKEN.

Does Profile Sculptor Backend access the network?

SKILL.md names 4 domains. In commands or code: github.com, apple.com and speedscope.app; the agent is likely to contact these when it follows the instructions. As links in the text: ui.perfetto.dev. This is read from the text; nothing was executed.

Is Profile Sculptor Backend safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Profile Sculptor Backend use?

Profile Sculptor Backend is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Profile Sculptor Backend use?

About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Profile Sculptor Backend?

Skills that share tags, products or a category with Profile Sculptor Backend: MCP Server Builder (anthropics/skills, 180k stars), PDF Processing (anthropics/skills, 180k stars), NotebookLM Research Assistant (PleasePrompto/notebooklm-skill, 7.8k stars) and Manim Video Production (browser-use/video-use, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Profile Sculptor Backend?

imbue-ai (a GitHub organization) maintains it in imbue-ai/sculptor, which has 238 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 9, 2026.

Source: imbue-ai/sculptor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.