Skip to main content
Skills provide instructions and reference files for a task. The agent can select enabled skills automatically. Use fal.skills when you want to activate a specific skill.

Discover and activate a skill

Use skill names for activation and skill IDs for management. A request accepts up to 50 skill names, each containing 1–100 characters. Activation persists in the conversation. Later turns inherit activated skills. An empty array does not clear existing activations. Unavailable or disabled names are ignored. The account’s master skills switch still applies. skills.list accepts optional search and conversationId fields. Results include fal skills and installed user skills, with disabled and shadowed flags. A fal skill can shadow a user skill with the same name. Use skills.retrieve(id) to read one visible skill, including its body and reference files.

Import from GitHub

The source accepts an optional Git ref and a subdirectory path. Private repositories are not supported. The preview reports the resolved commit, file counts, name conflicts, and unsupported scripts. Previewing does not install the skill. Review the contents and warnings before installation.
Scripts are not supported for installation. A conflicting user skill name blocks installation. Importing the same repository and path updates the existing installation. A conflicting fal skill produces a shadowing warning instead.

Create and edit

Use skills.save(id, content) to replace a user skill’s name, description, body, and references. Names contain 1–64 lowercase letters, digits, or hyphens, without a leading or trailing hyphen. Descriptions contain 1–1,024 characters. The body must not be empty. Reference paths must identify text files under references/. Saving an imported skill detaches it from GitHub. Repository updates are then unavailable for that skill. You cannot edit or uninstall fal-provided skills through these methods.

Enable, update, or uninstall

Disabling a skill preserves its installation. Uninstalling removes an owned user skill. Use skills.checkForUpdates(id) for GitHub installations. The result contains currentSha, latestSha, and hasUpdate. Call skills.update(id) to fetch and apply the repository update. Skill writes are sent once. After an uncertain network result, read the skill before repeating a mutation. See the method reference for every method and its return type.