Skip to main content
Skills are versioned instructions you author as SKILL.md files. A common pattern is to keep them in a git repository and sync them to a Caylex project from CI on every merge, so the project’s skills always match main. The skill endpoints address your project by name and each skill by its SKILL.md frontmatter name, so your tooling never has to track Caylex UUIDs.
Want to sync global skills — the ones attached to a Navigator in the Navigator Library so they’re shared across every project that navigator is connected to? Those use a parallel set of endpoints. Jump to Manage global skills on a navigator.

Endpoints used

Project names are matched exactly and are case-sensitive. URL-encode names that contain spaces — Production Project becomes Production%20Project. The skill’s name is taken from its SKILL.md frontmatter, not the folder name.
In the URL, a skill is identified by its slug — the kebab-cased form of its name (Code Reviewcode-review). The API also accepts the display name and normalizes it (case-insensitively), so either works; the list response returns both name and slug if you want to address keys explicitly.

The procedure

1

Enumerate local skills

Walk your repository’s skills/ directory. Each skill is a folder containing a SKILL.md; read the name from its frontmatter to use as the skill identifier.
2

List remote skills

GET …/skills to see what’s already in the project.
3

Add or replace each local skill

Use POST for skills that don’t exist remotely and PUT for ones that do. Because POST returns 409 and PUT returns 404, CI can distinguish a first-time upload from an update instead of silently overwriting.
4

(Optional) Prune deleted skills

DELETE any remote skill that no longer exists locally so the project mirrors your repo exactly.
For a skill bundled with extra files (scripts, references), upload a ZIP of the skill directory in place of the SKILL.md. The file part accepts either.

Full sync script

This walks a local skills/ directory and reconciles it with the project: new skills are added, changed skills are replaced, and (optionally) skills deleted from the repo are removed from the project. Drop it into CI and run it on every merge to main. The Python and TypeScript tabs reconcile the whole directory; the cURL tab shows the individual building-block calls.
sync_skills.py

Manage global skills on a navigator

Global skills are attached to a Navigator in the Navigator Library rather than to a single project. A navigator’s global skills are merged into the skill list of every project that navigator is connected to at runtime, so they’re the right home for instructions you want every deployment of a navigator to share. These endpoints are the direct navigator analogue of the project ones above: same verbs, same name-addressing, same request bodies — the owner is a navigator (addressed by its Navigator Library name) instead of a project. They live under the /navigator-global-skills prefix.

Endpoints used

Navigator names are matched exactly and are case-sensitive. URL-encode names that contain spaces — Support Navigator becomes Support%20Navigator. A navigator’s display name is unique within your tenant, so it addresses exactly one navigator. As with projects, the skill’s name comes from its SKILL.md frontmatter, and the {skill_name} path segment accepts either the display name or its slug.
This is the same flow as the project sync above — the only change is the base path (/navigator-global-skills/by-name/{navigator_name} instead of /projects/by-name/{project_name}), so you can reuse the reconciliation script almost verbatim. Upload a ZIP of the skill directory in place of the SKILL.md for skills with bundled files.

Full sync script

This walks a local global-skills/ directory and reconciles it with one navigator: new skills are added (POST), changed skills are replaced (PUT), and (optionally) skills deleted from the repo are removed.
sync_global_skills.py

Next steps

Search skills by tag

Find skills — project or global — carrying a given tag across your workspace.

Platform Authentication

Create and manage the platform access token these recipes use.

Provision customer projects

Stand up a project per customer and seed it from a model project.