Agent skill

Library

by asgeirtj in asgeirtj/system_prompts_leaks

Use ChatGPT Library when the user mentions their Library, asks to find or work with a Library-backed file, Site, or named file that may be in the Library, or wants to organize Library folders…

CC0-1.0Auto-check passed

Install Library

skills CLI
$ npx skills add asgeirtj/system_prompts_leaks --skill library -a claude-code

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

GitHub CLI
$ gh skill install asgeirtj/system_prompts_leaks library --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/asgeirtj/system_prompts_leaks.git skills-src && mkdir -p .claude/skills && cp -r skills-src/OpenAI/dots/skills/library .claude/skills/library && 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
library
GitHub stars
69k
Token cost
~4k tokens
SKILL.md length
1,982 words
Files
1
Skills in repo
124
Repo updated
First seen
Licence
CC0-1.0

At a glance

Use ChatGPT Library when the user mentions their Library, asks to find or work with a Library-backed file, Site, or named file that may be in the Library, or wants to organize Library folders…

  • Works in 3 steps: Ground the target. → Choose one access route. → Preserve identity when writing.
  • Mentions their Library
  • SKILL.md covers Workflow, Use Current Helpers, Routing Rules and Read Library Content, plus 8 more sections
  • Calls python3

What it does

Library is an agent skill from asgeirtj/system_prompts_leaks. Use ChatGPT Library when the user mentions their Library, asks to find or work with a Library-backed file, Site, or named file that may be in the Library, or wants to organize Library folders, restore a previous version, or share a native Library file or folder. Also use it when the user wants a user-facing file or reusable artifact created or updated, even if they do not mention the Library. It can search and read Library content, bring files into local workflows, save new deliverables, and update existing…

Its SKILL.md is about 4k 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 OpenAI. The repository describes itself as: Documented system prompts from Anthropic - Claude Fable 5.1, Opus 5.5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro… The licence is CC0-1.0.

When your agent uses it

  • Mentions their Library
  • Work with a Library-backed file
  • Named file that may be in the Library
  • Wants to organize Library folders

Example prompts

  • “/library”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Ground the target.
  2. Choose one access route.
  3. Preserve identity when writing.

What it can do on your machine

Read from SKILL.md and the folder at commit e31ec21. 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:

    • python3

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

  • Network

    No URLs in SKILL.md.

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Library loads about 4k tokens when it runs. Until then it costs about 147 tokens; SKILL.md has 1,982 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 asgeirtj/system_prompts_leaks at commit e31ec21, republished under its CC0-1.0 licence (© asgeirtj). 1,982 words, ~4,036 tokens.

Download SKILL.mdSave it as .claude/skills/library/SKILL.md (or your agent's skills folder).
name
library
description
Use ChatGPT Library when the user mentions their Library, asks to find or work with a Library-backed file, Site, or named file that may be in the Library, or wants to organize Library folders, restore a previous version, or share a native Library file or folder. Also use it when the user wants a user-facing file or reusable artifact created or updated, even if they do not mention the Library. It can search and read Library content, bring files into local workflows, save new deliverables, and update existing Library files while preserving their identity and version history.

ChatGPT Library

Use this as the top-level router for persistent ChatGPT Library files. Ground the target in Library, choose one content-access route, and preserve Library identity through every local edit and writeback.

The Library first-party app, connector_openai_library, owns authenticated Library operations:

  • list, search, read, and find inspect Library content.
  • prepare_materialize makes resolved Library files available to local tools.
  • create_library_file, replace_library_file, and manage_library write or organize Library content.
  • share grants or revokes access; follow its current app-provided description and schema.
  • When surfaced, prepare_uploads and finalize_uploads handle prepared uploads.
  • App-only file @ mention search resolves selected Library items.

The runtime supplies the schemas and decides which tools are available. This skill does not expose tools or a local MCP server.

Workflow

  1. Ground the target.
    • Decode a selected Library @ mention and reuse its identifiers.
    • Use search for a filename, title, description, or content query.
    • Use list for recent files, folders, or inventory.
    • If the user supplied a local path or explicitly said the file is local, stay with local tools.
  2. Choose one access route.
    • Use read when Library can supply the content the task needs.
    • Use find for literal or regex matching inside known files.
    • Materialize when editing, scripts, visual inspection, generation, byte comparison, or another local tool needs file bytes.
  3. Preserve identity when writing.
    • Create only when no Library identity exists or the user wants a copy.
    • Replace the same library_file_id after editing an existing item.
    • Use manage_library for folders, node changes, deletion, and restore.

Use Current Helpers

  1. Before downloading, remove any downloaded copies of helpers from previous runs in the scoped workspace folder
  2. Fetch the helper and all its companion files from the current Library skill source into one new private directory.
  3. Reuse the downloaded helpers for every call and retry within this request or run.

Routing Rules

User needRequired route
Selected Library @ mentionDecode its oai-library://... URI and use the returned identifiers. Search only if an identifier is missing, metadata must be refreshed, or the target is ambiguous.
Exact filename or titleUse search; quote the actual name and set search_title_only=true.
File described by purpose or contentsUse ordinary Library search. Do not treat a descriptive phrase as an exact filename.
Recent files, folders, or inventoryUse list; pass a returned next_cursor as cursor to continue.
Facts, summary, or comparison from named filesResolve every file, then use read on every selected file. Search snippets alone are insufficient.
Literal or regex match in known filesUse find; follow with read only when the match needs more context.
Shared writing block (library_artifact_type: writing_block)Use read to reconstruct its complete local text; while has_more, continue with next_read. Preserve line boundaries, verify size_bytes, and retain the authoritative version_id; do not materialize.
Local bytes from a list or search resultReuse the complete earlier result when its file identifiers and path remain current; repeat list or search only if that metadata is missing, stale, or ambiguous. Pass it directly to the bundled stdin-only download helper. Do not call Library read or prepare_materialize first.
Local bytes from a resolved reference that did not come from list or searchUse prepare_materialize; read materialization.md.
Explicit local pathUse local tools. Do not send local paths to Library read or find.
New local deliverableChoose one create route below.
Edit a Library-backed fileFor library_artifact_type: site, use Sites; never materialize, replace, or restore its projection. Otherwise materialize if needed, edit and validate locally, then replace the same library_file_id.
Create, move, rename, or delete Library nodesUse manage_library; read library-management.md before mutating.
Restore an earlier versionUse manage_library with restore_version; read library-management.md.

For list, set limit to at most 200. For search, use the canonical request shape {"search_query":[{"q":"quarterly revenue"}],"top_k":5}. search_query must be an array of one to five objects, even for one search. Put search_title_only only inside a search_query object. Never send top-level query, queries, q, search_title_only, or limit; use top-level top_k from 1 to 100.

For Library intent, search Library before the local workspace unless the user supplied a local path or said the file is local. Once routed to Library, do not scan the workspace or prior conversations for the same target. Failure to resolve a Library item is not evidence that it is local.

Read Library Content

Prefer structuredContent; parse a JSON text block only when it is unavailable. Use returned identifiers, filenames, versions, and paths exactly. For follow-up read or find, prefer the returned library_file_id, falling back to file_id or id. Never use a search result_id as a file reference. For read, put that identifier in read[i].ref_id:
{"read":[{"ref_id":"<returned library_file_id>"}]}.
The top-level read array must contain 1–5 items; do not send the identifier at the top level.

Batch independent read and find items when possible. Use read after search for content claims, even with snippets; use find only after candidate resolution.

Read evidence-and-citations.md for selected @ mentions, image-search metadata, post-mutation search limits, result handling, and citations.

Classify New Files

For new files, set library_artifact_type when supported:

  • image_gen: images generated by imagegen only.
  • image: other generated images.
  • report, sheet, slides: generated documents/reports, spreadsheets, or presentations.
  • other: user imports, unknown generation history, or anything else.

Classify by generation history, not filename, extension, or MIME type. create_library_file uses one type per call; prepared uploads use one per file. Omit the field for replacements or when the upload tool or helper lacks support.

Write One Local File

Use this fast path for one confirmed local file under about 50 MiB. Reuse validation already completed while producing or editing the artifact. Do not add another content inspection solely because the file is being saved to Library.

  • For a new item, call create_library_file(file=...) with the absolute local path. On success, invoke this skill's scripts/library_file_transfer.py with python3, the apply-xattrs subcommand, the original local path, and the returned library_file_id. Send the complete xattrs array from the create result (or []) as JSON on stdin, as shown below. When using code mode (for example, functions.exec), call create_library_file and run the metadata helper within the same invocation, without returning to the model between them.
  • For an existing item, resolve its Library identity and use the current local working file when it already contains the intended result. Do not materialize over that file. Materialize if needed; apply missing edits and validate once. Replace owned files using replace_library_file(file=...) with the same library_file_id. Shared stored files always use library_upload.py, even without prepared tools. Shared writing blocks also use library_upload.py, the bundled prepared-upload helper; convert their decimal version_id to the integer expected_current_version.
  • An editor's new output path is still a replacement for the same Library item. Create only when no Library identity exists or the user wants a separate copy.
  • Pass expected_current_version when a concrete version was retained. Never invent a version or remove the guard to resolve a conflict.

After create or replace, inspect the returned result. Use its filename and Library path as authoritative, and keep its exact library_file_id, file_id, version, and original local path together. Do not read the file back merely to confirm a successful write unless exact verification is required.

Privately persist the returned xattrs and Library identity in one helper call; do not add a separate progress message. The helper form is apply-xattrs PATH LIBRARY_FILE_ID, and both positional arguments are required:

bash
skill_md_path="<absolute path of this SKILL.md>"
transfer_helper_path="$(dirname "$skill_md_path")/scripts/library_file_transfer.py"
python3 "$transfer_helper_path" \
  apply-xattrs "$local_path" "$library_file_id" <<'JSON'
<complete returned xattrs array, or []>
JSON

Inspect the helper result before finishing; do not claim that local identity was persisted if it failed. Read writeback-and-conflicts.md for direct create batches, version conflicts, or detailed result correlation.

Show full SKILL.md (752 more words)Show less

Materialize List or Search Results

For files returned by list or search, retain the complete structured result and use the bundled download helper. Run it from the workspace where the downloaded tree should live. When a conversation-scoped workspace is active, use that workspace so eligible bytes can be placed directly. Send the complete unchanged list or search JSON, an ALL or concatenated three-digit index selection (000002 selects the first and third files), and a relative destination together through stdin. Never interpolate returned fields into shell arguments. Copy the absolute path of the Library SKILL.md that you read into skill_md_path, then use the quoted heredoc below. Do not reconstruct or shorten the helper path from the plugin cache root:

bash
skill_md_path="<absolute path of this SKILL.md>"; \
python3 "$(dirname "$skill_md_path")/scripts/library_download.py" <<'JSON'
{"result": <complete list or search JSON>,
 "selection": "ALL|NNN[NNN...]",
 "destination": "<relative-directory>"}
JSON

The destination is the parent beneath which the selected files' canonical Library-relative paths are recreated. Do not repeat an already-selected Library root in it: for /fruits/apple.md, use downloads, not downloads/fruits, unless the user explicitly requested that extra nesting.

For search output, indices address results first and then retrieval_title_results. The latter are supplemental fuzzy candidates, so use explicit indices instead of ALL when they are not all relevant.

The helper creates or reuses that directory, overwrites each selected file, and leaves unrelated contents unchanged. It makes the authenticated prepare_materialize calls in batches of at most 20, handles both workspace and signed-URL transfers, and applies Library identity and xattrs. Both list and search results retain each file's canonical Library-relative path. Use the returned directory and authoritative files paths.

On this route, never separately call read or prepare_materialize, search the plugin cache for helpers, inspect helper source, invoke library_file_transfer.py, transfer a returned URL yourself, or process the returned transfers again.

For a resolved reference that did not come from list or search, use the lower-level flow in materialization.md.

Route Larger or Multiple Writes

Treat every local file written by one user task as one ordered upload batch. Preserve its original mutation order and use absolute local paths.

ConditionRequired route
Both prepared tools are available and the task writes several files or one file around 50 MiB or largerUse the bundled prepared-upload helper below.
Prepared tools are unavailable and every item is a createUse ordered create_library_file(files=[...]) batches when files is available, keeping each call under 500 MB; otherwise create sequentially.
Prepared tools are unavailable and the task includes replacementsIn original order, use the upload helper for shared files and direct actions for owned items.

Prepared app calls contain at most 20 files. Library write app calls are ordered: do not use Promise.all(...) for create, replace, delete, or finalize. Only prepared byte transfers may run in parallel. Read prepared-uploads.md before using the prepared route. It defines the helper's one-shot input and owns preparation, transfer, finalization, result correlation, and xattr writeback. After direct batches or the prepared helper, inspect every per-item result in request order. A successful top-level operation does not mean every item succeeded.

Site-Backed Library Items

A library_artifact_type: site item projects the canonical site_metadata.project_id. list, search, read, and find remain allowed. manage_library can move it; rename changes the Site title and delete deletes the Site. Never materialize, download, patch, replace, update, overwrite, or restore it; Sites owns its content, versions, and publish history. If ownership or routing is unclear, stop.

Organize, Restore, and Protect Files

Resolve ambiguous mutation targets before writing. If several candidates remain, ask the user to choose. Read library-management.md for exact folder, move, rename, delete, restore, protected Deep Research report, and per-operation result rules.

Privacy and Safety

Keep user-visible reasoning, progress, errors, and final responses at the Library level unless the user explicitly asks for implementation details. Do not surface connector or tool names, helper commands, raw URLs, storage or provider details, manifests, xattrs, transfer output, or indexing internals.

Privacy changes narration, not routing. Never replace a required prepared flow with a direct upload merely because the prepared flow has stricter visibility rules. For a prepared upload, give one brief Saving file to Library or Saving files to Library progress update before invoking the helper, then the saved result. Do not narrate preparation, transfer, finalization, or local metadata as separate phases.

Do not invent Library ids, file ids, versions, filenames, paths, operations, or tool availability. Keep signed URLs out of responses. Preserve Library identity and unrelated content across every mutation.

References

© asgeirtj, CC0-1.0. 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 OpenAI/dots/skills/library of asgeirtj/system_prompts_leaks.

Open the folder on GitHubat commit e31ec21

Compare with similar skills

Library 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.

Library compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Library this skillasgeirtj/system_prompts_leaks69k—~4kAutomated safety check: PassCC0-1.0
Geo Fundamentalswasp-lang/wasp19k9 repos~861Automated safety check: PassMIT
AI SDKvercel-labs/ai-facts16820 repos~1.2kAutomated safety check: PassNone
AI Image Generation and Editingzhayujie/CowAgent47k—~1.3kAutomated safety check: PassMIT
PR Design DocOpenHands/OpenHands90k—~2.4kAutomated safety check: PassMIT
SEO GeoReScienceLab/opc-skills1.8k4 repos~2.1kAutomated safety check: PassApache-2.0

Similar skills

  • Geo Fundamentals

    wasp-lang/wasp

    Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).

    19k GitHub starsUsed in 9 repos~861 tokens
    Marketing & SEOAuto-check passed
  • AI SDK

    vercel-labs/ai-facts

    Official

    Answer questions about the AI SDK and help build AI-powered features.

    168 GitHub starsUsed in 20 repos~1.2k tokens
    AI & LLM EngineeringAuto-check passed
  • Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.

    47k GitHub stars~1.3k tokensUpdated today
    Media & CreativeAuto-check passed
  • PR Design Doc

    OpenHands/OpenHands

    For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…

    90k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • SEO Geo

    ReScienceLab/opc-skills

    SEO & GEO (Generative Engine Optimization) for websites. An agent skill from ReScienceLab/opc-skills.

    1.8k GitHub starsUsed in 4 repos~2.1k tokens
    Marketing & SEOAuto-check passed
  • Open Code Review CLI

    alibaba/open-code-review

    Runs the ocr command-line tool to review Git changes, a commit or a branch comparison with an AI model, returning line-level comments and optionally applying fixes.

    45k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from asgeirtj/system_prompts_leaks

All 124 skills in this repo
  • Fleet Manager for Agent Sessions

    asgeirtj/system_prompts_leaks

    Shows one digest of coding-agent sessions across your connected machines and lets you open, read, steer, approve, stop and close them, over Herdr, tmux or MSP.

    69k GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Muse Code Product Doctor

    asgeirtj/system_prompts_leaks

    Diagnoses a Muse Code installation's own failures from binary and session evidence, instead of treating the report as an ordinary repository bug.

    69k GitHub stars~3.5k tokensUpdated yesterday
    Auto-check passed
  • DOCX

    asgeirtj/system_prompts_leaks

    A skill your agent uses whenever the user wants to create, read, edit, or manipulate Word documents (.docx) or Word templates (.dotx).

    69k GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Agents Project Coordinator

    asgeirtj/system_prompts_leaks

    Runs a goal as a project in which the agent coordinates separate agent threads, judging when to split the work, and interviews you first when nothing can be verified.

    69k GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Muse Plugin Creator

    asgeirtj/system_prompts_leaks

    Creates and validates a new native Muse plugin package in the current workspace, limited to five capability families, and leaves installation to you.

    69k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Deep Research

    asgeirtj/system_prompts_leaks

    A skill your agent uses when the user's prompt requires (1) researching a topic across multiple sources, comparing options or alternatives, analyzing trends or history, understanding markets or…

    69k GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Library

What does Library do?

Use ChatGPT Library when the user mentions their Library, asks to find or work with a Library-backed file, Site, or named file that may be in the Library, or wants to organize Library folders…. Library is an agent skill from asgeirtj/system_prompts_leaks. Use ChatGPT Library when the user mentions their Library, asks to find or work with a Library-backed file, Site, or named file that may be in the Library, or wants to organize Library folders, restore a previous version, or share a native Library file or folder.

When should I use Library?

Library fits situations like: mentions their Library; work with a Library-backed file; named file that may be in the Library; wants to organize Library folders.

How do I install Library in Claude Code?

Run `npx skills add asgeirtj/system_prompts_leaks --skill library -a claude-code`. Or copy the skill folder (OpenAI/dots/skills/library in asgeirtj/system_prompts_leaks) into .claude/skills/library in your project. Claude Code loads it when a task matches its description.

How do I install Library in Codex?

Run `npx skills add asgeirtj/system_prompts_leaks --skill library -a codex`. Or copy the skill folder (OpenAI/dots/skills/library in asgeirtj/system_prompts_leaks) into .agents/skills/library in your project. Codex loads it when a task matches its description.

Can I use Library 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 asgeirtj/system_prompts_leaks --skill library -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/library, .gemini/skills/library, .github/skills/library and .opencode/skills/library in your project.

What does Library need to run?

Going by SKILL.md and its folder, Library needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Library access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Library safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Library use?

Library is published under the CC0-1.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Library use?

About 4k tokens (SKILL.md is roughly 16k 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 Library?

Skills that share tags, products or a category with Library: Geo Fundamentals (wasp-lang/wasp, 19k stars), AI SDK (vercel-labs/ai-facts, 168 stars), AI Image Generation and Editing (zhayujie/CowAgent, 47k stars) and PR Design Doc (OpenHands/OpenHands, 90k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Library?

asgeirtj (a GitHub user) maintains it in asgeirtj/system_prompts_leaks, which has 69,211 GitHub stars. The repository holds 124 skills in this directory. The repository was last updated on October 8, 2026.

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