Skip to main content
Saved user skills are reusable SKILL.md instruction packs that the agent can load into any task. They belong to your account, not to an organization, so --org does not change them. Use this command to push local skill folders to your account, pull them back, and keep them in sync. With --project, it shows the skills a project’s tasks receive and turns the default skills Aether provides on or off for the project. It can also install Aether’s public teleport skill locally. For the concepts behind saved skills, see Skills; for an end-to-end walkthrough, see the Skills guide.

Subcommands

install

Installs the teleport skill for local Claude Code and Codex sessions. The only supported name is aether-teleport, and installing this public static bundle does not require an Aether login. Without an override, the command installs into ~/.claude/skills/aether-teleport when ~/.claude exists and into ~/.agents/skills/aether-teleport when ~/.codex exists. Both detections may fire.
string
Install into this exact directory and skip local-agent detection. No skills/aether-teleport suffix is appended.

list

Lists every saved user skill with its slug, source, and description. With --json, prints the skills as the API returns them.
string
List what a task of yours in this project receives instead: its repository’s skills, your saved skills, and the default skills the project keeps on, each once. A repository skill that loads replaces a saved or default skill of its slug, and a saved skill a default one. A skill that cannot load, such as a repository skill whose SKILL.md is invalid, is listed apart with its diagnostics, since a task receives another skill of its slug or none. Then lists every default skill with whether the project has it on, which other default keeps it on, and whether your saved skill replaces it in your own tasks. The project is named by its full id, or by a short prefix of it without a dash, which is looked up among the projects of the organization --org names, else the one AETHER_ORG names, else your personal organization; a full id reaches the project in the organization that owns it. -p is short for it. With --json, prints {"skills": [...], "default_skills": [...]} as the API returns each.

get

bool
Show the skill’s file list.
string
Write the skill’s files to this directory.
With --json, prints the skill as the API returns it, without its files; --out takes precedence, writing the files instead.

push

The skill folder must contain a SKILL.md manifest. By default the slug is the basename of <dir>. Every file must be UTF-8 text; a skill holds at most 1,000 files, 5 MiB per file and 50 MiB in total, and a folder containing .git, node_modules, dist, build, .next, .cache, target, __pycache__ or .venv is refused before anything is uploaded. When the slug is already one of your skills, the command asks before overwriting it; a slug reserved for an Aether platform skill is refused with the API’s message and nothing to overwrite.
string
Slug override (default: basename of <dir>).
bool
Skip the overwrite confirmation if the slug already exists.

pull

bool
Overwrite the target directory if it is non-empty.

sync

Discovers local skill folders, each a directory holding a SKILL.md, and uploads them. Without --source it scans .agents/skills and .claude/skills at the root of the current repository, then ~/.claude/skills, ~/.agents/skills and ~/.codex/skills; a slug found twice is taken from the first.
string
Override the local source directories. Repeatable.
bool
List what would be uploaded without uploading.
bool
Overwrite existing skills without prompting.

delete

bool
Skip the confirmation prompt.

enable and disable

Turns one of the default skills Aether provides on or off for a project. The switch is the project’s, so it applies to every member’s tasks in it; a member whose saved skill takes the slug still receives their own. Only an owner or admin of the project’s organization turns a default skill on or off. The API refuses a slug that names no default skill, and refuses to turn off a skill another default the project keeps on calls: turn that one off first. With --json, enable prints the default skill as the API returns it, and disable prints the slug and project_id.
string
required
The project, by its full id, or by a short prefix of it without a dash, which is looked up among the projects of the organization --org names, else the one AETHER_ORG names, else your personal organization. A full id reaches the project in the organization that owns it. -p is short for it.