Agent skill

Add Selector

by simstudioai in simstudioai/sim

Add or update a Sim dynamic selector using the shared manifest, server attachment, and selectors.execute path.

Apache-2.0Auto-check passed

Install Add Selector

skills CLI
$ npx skills add simstudioai/sim --skill add-selector -a claude-code

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

GitHub CLI
$ gh skill install simstudioai/sim add-selector --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/simstudioai/sim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/add-selector .claude/skills/add-selector && 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
add-selector
GitHub stars
30k
Token cost
~1.7k tokens
SKILL.md length
820 words
Files
2
Skills in repo
40
Repo updated
First seen
Licence
Apache-2.0

At a glance

Add or update a Sim dynamic selector using the shared manifest, server attachment, and selectors.execute path.

  • Provider-backed
  • SKILL.md covers Read the shared boundary, Classify the selector, Build context from active values and Add the server attachment, plus 2 more sections
  • Calls bun and git
  • Local option lists referenced by block

What it does

Add Selector is an agent skill from simstudioai/sim. Add or update a Sim dynamic selector using the shared manifest, server attachment, and selectors.execute path. Use for provider-backed, internal, or local option lists referenced by block, trigger, or connector selectorKey fields.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

The repository describes itself as: Sim is the collaborative workspace to build, deploy, and monitor AI agents and workflows. Used by 100,000+ builders. The licence is Apache-2.0.

When your agent uses it

  • Provider-backed
  • Local option lists referenced by block
  • Connector selectorKey fields

Example prompts

  • “/add-selector”

What it can do on your machine

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

    • bun
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    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

Add Selector loads about 1.7k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 820 words of instructions outside code blocks.

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

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 simstudioai/sim at commit 546d4e7, republished under its Apache-2.0 licence (© simstudioai). 820 words, ~1,740 tokens.

Download SKILL.mdSave it as .claude/skills/add-selector/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
add-selector
description
Add or update a Sim dynamic selector using the shared manifest, server attachment, and selectors.execute path. Use for provider-backed, internal, or local option lists referenced by block, trigger, or connector selectorKey fields.
argument-hint
<selector-key>

Add Selector

Dynamic selectors expose option metadata while a workflow or connector is being configured. Every remote selector executes through the authorized selectors.execute application operation; the browser never resolves credentials or calls a provider directly.

Read the shared boundary

Before editing, read:

  • apps/sim/lib/selectors/types.ts
  • apps/sim/lib/selectors/manifest.ts
  • apps/sim/lib/selectors/context.ts
  • apps/sim/lib/selectors/server/types.ts
  • apps/sim/lib/selectors/server/registry.ts
  • apps/sim/hooks/queries/selectors.ts

Then read the nearest existing selector attachment and the block, trigger, or connector declaration that will consume the key.

Classify the selector

  • provider-server: contacts an external provider or uses provider credentials.
  • internal-server: reads protected Sim data through an existing authorized application use case.
  • local: pure browser-safe data with no protected data, credentials, references, or network I/O.

Add every key to the browser-safe manifest in lib/selectors/manifest.ts. SelectorKey derives from that manifest; do not maintain a second union. Manifest entries contain data only: allowed context, readiness, scope kinds, list/search/detail capabilities, and stale time. Do not import provider SDKs, credentials, server helpers, or attachment functions into the manifest.

Build context from active values

Declare dependsOn on the consuming sub-block or connector field. The shared context builder sends only declared, active dependencies:

  • Canonical basic/advanced pairs contribute the active value under their canonical key.
  • Action and trigger modes contribute only fields active on that surface.
  • Exact environment references such as {{GMAIL_CREDENTIAL_ID}} remain unresolved in the browser.
  • Runtime block-output references are not selector context.
  • Embedded environment interpolation such as https://{{HOST}}/path is unsupported.
  • impersonateUserEmail is the one explicit compatibility hint projected when the manifest allows it, even when it is absent from dependsOn.

Add a new SelectorContextKey only when the value is a real, reusable selector dependency. Allow it explicitly on each relevant manifest entry. Never send a full block or connector configuration.

Add the server attachment

For provider-server, add the service's attachment map under apps/sim/lib/selectors/server/providers/ and include it in the exhaustive server registry. For internal-server, add the attachment in apps/sim/lib/selectors/server/internal.ts. Local keys use the exhaustive browser-safe registry in apps/sim/lib/selectors/client/local.ts and never enter the server registry. A provider attachment declares:

  • For stored credentials, a credential policy with the exact context field and trusted serviceIds. Raw-connection selectors instead validate the connection material projected from their allowed context and bind it to a deliberate destination policy.
  • Destination policy: fixed, credential-bound, or user-controlled.
  • A list/detail adapter that explicitly projects id, label, and allowlisted scalar meta.

Stored credentials must pass actor-use, workspace, and provider/service binding checks. Do not trust a provider, service, operation kind, origin, or module name supplied by the browser.

Choose the destination policy deliberately:

  • fixed: provider origin is code-defined.
  • credential-bound: origin/account/site comes from, or is verified against, the authorized credential.
  • user-controlled: the user selects the destination. Hidden use-only authentication requires an explicit security policy; do not combine it with an arbitrary destination by default.

Reuse or extract a server-only provider listing primitive. A provider route exists only when it has a non-selector caller, and then it is a thin caller of that primitive; there are no selector-only routes or contracts. Never import a route handler or make an internal HTTP request from an attachment.

The attachment must return normalized selector results only. It must never deliberately or wholesale echo selector context, and hidden/server-only resolved material, credential IDs, tokens, and authentication secrets must never cross the response boundary. Browser-known literals and viewable personal/shared values are not automatically server-only secrets, but they may appear in an option only when the adapter intentionally projects them as provider resource metadata. Let the shared executor own scope authorization, exact-reference resolution, credential authorization, error projection, and output sanitization; adapters must pass and preserve the executor's abort signal during provider work.

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

Wire the UI declaration

Point the block, trigger, or connector field at selectorKey and declare its dependsOn fields. Keep connector selector/manual canonical pairs and fork reconfiguration behavior intact. Static options stay local and need no selector.

Do not add:

  • A client provider fetcher.
  • A provider-specific React Query key.
  • A selector-specific OAuth-token request.
  • A selector-only API route when the provider primitive can be called directly.

All server selectors use the shared POST contract and React Query facade. Query identities must stay opaque and must not include context values, references, credential IDs, secrets, or their hashes. Selector code must not add context, token, or result caches. The sole existing cache exception is authorized client-credential resolution after authorization and provider binding: it may reuse the credential service's TTL-governed, lazily pruned process-local token cache. This exception requires explicit security-owner acceptance; do not broaden it or describe it as hard-bounded.

Focused validation

Follow nearby Vitest and route-test style. Do not add an authorization matrix for every ordinary provider attachment; the shared executor tests own shared security behavior.

Add a focused adapter test when behavior is special, such as pagination, nontrivial destination binding, provider-specific projection, or a raw-connection policy. For an ordinary fixed-origin OAuth list, manifest/registry exhaustiveness plus an existing provider primitive test is usually enough.

Run the smallest relevant set, then:

bash
bun run --cwd apps/sim test <focused selector tests>
bun run --cwd apps/sim type-check
bun run check:fork-dependent-coverage
bun run check:client-boundary
git diff --check

Confirm there is no browser-side provider call, every server key has one attachment, and every returned option is explicitly projected.

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

Files

SKILL.md and 1 other file in .agents/skills/add-selector of simstudioai/sim.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 546d4e7

Compare with similar skills

Add Selector 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.

Add Selector compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Selector this skillsimstudioai/sim30k—~1.7kAutomated safety check: PassApache-2.0
Has Selectorthedaviddias/Front-End-Checklist74k—~547Automated safety check: PassMIT
Dynamic Workflow Modeaffaan-m/ECC274k1 repos~1.3kAutomated safety check: PassMIT
Molecular DynamicsK-Dense-AI/scientific-agent-skills48k1 repos~4.7kAutomated safety check: PassMIT
Dynamic WorkflowNousResearch/hermes-agent252k—~2.8kAutomated safety check: PassMIT
Web App Manifestthedaviddias/Front-End-Checklist74k—~491Automated safety check: PassMIT

Similar skills

  • Has Selector

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing stylesheets or components that use JavaScript to toggle classes on parent elements based on child state, form input values, or content presence — :has() may…

    74k GitHub stars~547 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Design task-local harnesses, eval gates, and reusable skill extraction for Claude dynamic workflow mode and other adaptive agent harnesses.

    274k GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Molecular Dynamics

    K-Dense-AI/scientific-agent-skills

    Runs and analyzes molecular dynamics simulations with OpenMM and MDAnalysis.

    48k GitHub starsUsed in 1 repo~4.7k tokens
    Research & ScienceAuto-check passed
  • Dynamic Workflow

    NousResearch/hermes-agent

    Plan-in-code fan-outs, adversarial verification, waves. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Web App Manifest

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing templates, rendered HTML, or shared components related to Link a Web App Manifest for installability.

    74k GitHub stars~491 tokensUpdated yesterday
    Auto-check passed
  • Generate Manifest

    google/adk-recipes

    Official

    Scan an ADK recipe directory and generate a manifest.yaml for it based on the schema at .github/schemas/manifest-schema.json.

    10k GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed

More from simstudioai/sim

All 40 skills in this repo
  • Sim Helm

    simstudioai/sim

    Install, upgrade, and operate the Sim Helm chart on Kubernetes.

    30k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Add Column Type

    simstudioai/sim

    Add a new table column type to Sim — registry entry, icon, storage shape, coercion, and the behavioral hooks the grid and API read.

    30k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Add Enrichment

    simstudioai/sim

    Add a code-defined table enrichment (registry entry) under apps/sim/enrichments/ backed by an ordered provider cascade, ensuring every provider tool it calls has hosted-key support.

    30k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Add Hosted Key

    simstudioai/sim

    Add hosted API key support to a tool so Sim provides the key (metered and billed to the workspace) when a user has not brought their own.

    30k GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Add Managed CLI

    simstudioai/sim

    Add or upgrade a curated, immutable managed CLI for Sim Function sandboxes, including client-safe catalog metadata, a pinned server-only installation recipe, checksum and executable verification…

    30k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Babysit

    simstudioai/sim

    Drive a PR to a clean review (Greptile 5/5, zero open threads) — ships if needed, keeps it mergeable against staging, re-triggers both Greptile and cubic, fixes real findings, replies to and…

    30k GitHub stars~2.9k tokensUpdated today
    Auto-check passed

Questions about Add Selector

What does Add Selector do?

Add or update a Sim dynamic selector using the shared manifest, server attachment, and selectors.execute path. Add Selector is an agent skill from simstudioai/sim.execute path.

When should I use Add Selector?

Add Selector fits situations like: provider-backed; local option lists referenced by block; connector selectorKey fields.

How do I install Add Selector in Claude Code?

Run `npx skills add simstudioai/sim --skill add-selector -a claude-code`. Or copy the skill folder (.agents/skills/add-selector in simstudioai/sim) into .claude/skills/add-selector in your project. Claude Code loads it when a task matches its description.

How do I install Add Selector in Codex?

Run `npx skills add simstudioai/sim --skill add-selector -a codex`. Or copy the skill folder (.agents/skills/add-selector in simstudioai/sim) into .agents/skills/add-selector in your project. Codex loads it when a task matches its description.

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

What does Add Selector need to run?

Going by SKILL.md and its folder, Add Selector needs the command-line tools its instructions call (bun and git).

Does Add Selector access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Add Selector 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 Add Selector use?

Add Selector is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Add Selector use?

About 1.7k tokens (SKILL.md is roughly 7k 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 Add Selector?

Skills that share tags, products or a category with Add Selector: Has Selector (thedaviddias/Front-End-Checklist, 74k stars), Dynamic Workflow Mode (affaan-m/ECC, 274k stars), Molecular Dynamics (K-Dense-AI/scientific-agent-skills, 48k stars) and Dynamic Workflow (NousResearch/hermes-agent, 252k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add Selector?

simstudioai (a GitHub organization) maintains it in simstudioai/sim, which has 29,785 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 7, 2026.

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