Skip to main content
Two mechanisms sit between your system prompt and the model. Instructions are always in context. Skills are loaded on demand.

Workspace instructions

Every turn, the loop reads AGENT.md from the user’s workspace root and appends it to the system prompt, fenced as user preferences that stay subordinate to your .system() prompt.
AGENT.md
In the web client, users open Instructions from the foot of the right panel, beside Trash. The file opens in the canvas editor, and an empty one shows a few examples to start from. AGENT.md does not appear in the Files list. Users can also ask the agent to change it. Nothing is needed on your side, but the file name is configurable:
The Instructions button always opens AGENT.md, so keep the default name if your users edit their instructions in the web client. Content is capped at 24KB and truncated beyond that. Binary or unreadable files are ignored.

Skills

A skill is a folder of instructions the model pulls in when it decides the task calls for it. Only the name and description sit in the system prompt, which costs a line or two. The body enters context when the model calls the skill tool.
SKILL.md
The frontmatter does the work. name is lowercase with hyphens, at most 64 characters, and matches the folder name. description is what the model matches against, so write it as “what this does, and when to use it” in at most 1,024 characters. Keep both in English for the model. metadata holds what people see in the Skills tab: title, and in Arabic title-ar and description-ar. The frontmatter must end within the first 4KB, and the body can be up to 48KB. Every skill in a turn’s catalog mounts read-only at /skills/<name>/ inside the bash sandbox, wherever it is kept, so scripts find their own templates by absolute path.

Where skills come from

Four places feed one catalog. When two hold the same name, the one lower in this table wins, so people can override a skill you ship without a redeploy. Without workspaces, an organization has one place of its own, which only its admins publish to. A person without an organization has only their own.

Shipping skills with the agent

The folder holds one skill per subfolder. Shipped skills are read-only and version with your deploys.

Skills people publish

People add skills from the Skills tab, or ask the agent to make one. The agent writes a skill as ordinary files in skill-drafts/<name>/, then publishes the folder with the skill tool’s publish action. Every publish is kept as a new version and loads from the next message. scope says who it is for: A publish counts as a write, so it follows the person’s approvals. A version holds at most 500 files and 10MB, and links are refused.
Since 0.0.2.145, skills/<name>/SKILL.md folders in a workspace no longer load. Publish each one from the Skills tab, or ask the agent to publish it.

The Skills tab

People open it from the + menu in the composer, or from Settings, General, Skills. It lists every skill they have, with a search box and an Add menu:
  • Upload a skill: a .skill or .zip file, up to 10MB.
  • Create a skill: a form for the name, description and instructions, with an optional Arabic name and description.
  • Create with Cycls: asks the agent to write the skill with you and publish it.
A skill’s page shows its overview and its files, with a version picker and Make this the current version. Its menu edits it, downloads it as a .zip, sets who it is Available to (Just me, Workspace or Organization) and removes it. A new skill reaches only its author until they share it. Each person can switch a skill off for themselves, and an org admin can switch one Off for everyone. A skill that is off leaves the catalog.
The description decides whether the model reaches for the skill, so write the trigger rather than the summary. “Use when the user asks for a PDF report, an invoice, or a printable summary” works better than “PDF utilities”.

Which to use

Next

Files and the canvas

The workspace file tree, and how the canvas renders it.