Skip to main content
A skill packages reusable instructions and optional files for agents. You upload it once, attach its ID to agent configs, and the model calls the built-in skill tool when it needs the instructions. Skills are:
  • Lazy — only the name and description enter the model’s context until it loads the skill.
  • Versioned — uploading the same skill again creates a new revision under the same skill ID.
  • Shared — one skill can be granted to multiple projects and attached to many agents.

Upload a skill

Upload a .zip or .tar.gz archive with one top-level directory:
SKILL.md starts with the skill’s name and description:
The name must match the top-level directory. Write the description as a trigger—“Use when…”—because it helps the model decide when to load the skill.
The examples assume the client, $ORG/orgID, and $PROJ/projectID setup from the quickstart.POST /skills takes multipart form data: an owner and the archive itself. The CLI’s --archive takes a .zip or .tar.gz file, or a skill directory that it packs for you:
For a project- or user-owned skill, set the owner accordingly: --owner-kind project --owner-project-id proj_… or --owner-kind user with the CLI, or {"kind": "project", "project_id": "proj_…"} / {"kind": "user"} as the owner.
The owner (org, project, or user) decides who manages the skill and cannot change. A project can attach only skills it owns or has been granted—even skills owned by its organization. Uploading again with the same owner and name creates the next revision: the skl_ ID stays the same and the skr_ revision ID changes. Attached agents resolve the latest revision at each model call, so they do not need to be relaunched.

List, inspect, delete

Each skills page lists the skills owned at that scope; omnara skills list does the same from the terminal. Fetching a skill (omnara skills get {skill-id} or the API) returns skill_md, the full instruction text of its current revision. To delete an owned skill in the dashboard, open its row menu and click Delete, or run omnara skills delete {skill-id}. Deletion removes its revisions and grants, but is blocked with 409 while an active agent config references it.

Grant it to projects

A project can use a skill only if it owns it or holds a grant — org- and user-owned skills must be granted to each project that references them. Grants share without transferring ownership.
The response identifies the grant and target project:
List a skill’s project grants with omnara grant skills list {skill-id} or GET …/grants; revoke one with omnara grant skills delete {skill-id} {grant-id} or DELETE …/grants/{grantID}.To confirm which skills a project can use (the CLI has no equivalent command):
Each result reports whether the project owns the skill (direct) or receives it through a grant.

Attach it to an agent

Reference the skill ID in the config; config creation verifies the project can use it:
Attaching a skill automatically enables the built-in skill tool. The model sees each skill’s name and description; when it calls the tool, Omnara returns the SKILL.md instructions and attempts to install the supporting files on each attached machine. The instructions still work when no machine is attached or an installation fails.
Full schema and playground: Create skill · List skills · Skill grants · Project skills.