Skip to content

alis skills

Discover and load Alis Build skills: curated instruction documents, each teaching an agent how to do one thing well. Author, evaluate, share, install and improve your own.

Synopsis

Shell
alis skills apply <id> --into <folder> [flags]
alis skills capture <id> [flags]
alis skills contribute <id> [flags]
alis skills create <id> [flags]
alis skills edit <id> [flags]
alis skills evaluate <id> [flags]
alis skills explain [flags]
alis skills feedback <id> [message...] [flags]
alis skills history <id> [flags]
alis skills import <github-folder-url> [flags]
alis skills improve <id> [flags]
alis skills install <id> [flags]
alis skills installed [flags]
alis skills list [flags]
alis skills load <id> [flags]
alis skills open <id> [flags]
alis skills preview <id> [flags]
alis skills propose <id> [flags]
alis skills publish <id> [flags]
alis skills request [flags]
alis skills resource <id> <path> | resource <id> --all --out <folder> [flags]
alis skills search <query> [flags]
alis skills share <id> [flags]
alis skills owners <id>
alis skills owners add|remove|transfer <id> <email>
alis skills suggest [prompt] [flags]
alis skills sync [flags]
alis skills uninstall <id> [flags]
alis skills unpublish <id> [flags]
alis skills upgrade [<id>...] [flags]

Aliases: skills, skill.

Description

The agent workflow is search, load, resource: search ranks the catalogue semantically, load prints the chosen skill's markdown to follow, resource fetches a file the instructions reference. list is for human browsing. When nothing fits, request asks the Alis Build team for a new skill.

Skills load live from the registry; install installs a complete copy into a coding agent's native skill directory. A skill is a document: buildable code belongs in a code block, whose .skill/ folder is published as block-<block-id>. A skill that carries templates/ is materialised with apply.

Without the skills surface on the backend every alis skills command exits 1 with backend_outdated; use the MCP skills tools then.

Discovery

Search the skills catalogue semantically and print the matching skills, best match first. Quote multi-word queries.

alis skills search <query> [flags]
Flag Type Default Meaning
--limit <n> int 8 Maximum results to print (0 = everything the registry returns).

--json returns queriedSkills[] with id, description, displayName, version, loadCount, source (USER, BLOCK, EXTERNAL_REPO, …), snippet, vetVerdict, vetScore, sourceUri and samplePrompt; empty fields are omitted.

alis skills load

Load the skill's markdown instructions and print them verbatim. When the registry is unreachable, a previously loaded copy is served from the local cache with a staleness note on stderr.

alis skills load <id> [flags]
Flag Type Default Meaning
--session <id> string the coding agent session that ran the command Coding-session id to attribute this load to.
--via <surface> string Discovery surface that routed this load: stub, dispatcher, hook_hint.

--json returns {"markdown": "…"}.

alis skills resource

Fetch one resource file belonging to a skill; <path> is the file's path exactly as written in the instructions. --all --out <folder> writes the skill's complete bundle into a folder instead.

alis skills resource <id> <path> | resource <id> --all --out <folder> [flags]
Flag Type Default Meaning
--all bool false Write the whole bundle to --out instead of printing one file.
--out <folder> string Folder to write the bundle into (with --all).

alis skills preview

Print a skill's description, heading outline, the first part of its instructions and its resource files: enough to decide whether it fits, at a fraction of the tokens of a full load. Not counted as a load.

alis skills preview <id> [flags]

No flags beyond the global flags.

alis skills list

List every skill you can access, sorted by id, for human browsing.

alis skills list [flags]

No flags beyond the global flags.

alis skills explain

Print a caller-scoped explanation of the Skills system: what skills are, the loop, how many skills exist, the most popular ones, and a catalogue of every capability with its command. --json returns the structured contract; agents enumerate its capabilities list.

alis skills explain [flags]

No flags beyond the global flags.

alis skills request

Ask the Alis Build team for a skill that does not exist yet. Non-interactive.

alis skills request [flags]
Flag Type Default Meaning
--description <text> string What the skill should teach (required).
--name <title> string Short title for the requested skill (required).
--notes <text> string Anything else the skill author should know.
--use-case <text> string The concrete situation that needed this skill.

Ambient discovery

alis skills suggest

Suggest up to a few skills relevant to a prompt, from the local catalogue snapshot. The default path is purely local; plan mode spends a bounded call on the registry and falls back locally. --hook reads a Claude Code UserPromptSubmit JSON payload from stdin and emits hook output; it never fails.

alis skills suggest [prompt] [flags]
Flag Type Default Meaning
--harness <name> string claude Hook output shape: claude/gemini (JSON envelope) or codex/opencode (plain text).
--hook bool false Read a UserPromptSubmit payload from stdin and emit hook output.
--limit <n> int 3 Maximum suggestions for the direct form.
--mode <mode> string Override the permission mode for the direct form (plan = server-backed).

alis skills sync

Refresh the local catalogue snapshot used by ambient suggestions when its 24-hour cache is stale. Run by coding agent plugins at session start; it never changes the coding agent's native skills beyond removing retired sync-managed entries.

alis skills sync [flags]
Flag Type Default Meaning
--force bool false Refresh from the registry even when the cache is fresh.
--harness <name> string claude Coding agent whose local entries are inspected.
--status bool false Show installed skills and catalogue cache age.

Local copies

alis skills install

Install a skill's complete package into the native skill directory of every supported coding agent selected in your build profile: Antigravity (~/.gemini/config/skills), Claude (~/.claude/skills), Codex (~/.agents/skills), Gemini (~/.gemini/skills), OpenCode (~/.config/opencode/skills) and Cursor (~/.cursor/skills).

alis skills install <id> [flags]
Flag Type Default Meaning
--force bool false Replace an existing unmanaged folder at the target.
--harness <name> strings every supported agent in your profile Coding agent to install into (repeatable).
--project bool false Install into the current repo's project scope instead of your user scope.

Errors: harness_not_found, unmanaged_target (--force takes it over).

alis skills installed

List every skill this CLI installed into a local coding agent.

alis skills installed [flags]

No flags beyond the global flags.

alis skills upgrade

Refresh installed copies whose published content moved on.

alis skills upgrade [<id>...] [flags]
Flag Type Default Meaning
--all bool false Update every installed skill.

alis skills uninstall

Remove the CLI-managed local entries for a skill. The skill stays in the catalogue.

alis skills uninstall <id> [flags]
Flag Type Default Meaning
--harness <name> string Only remove from this coding agent.
--project bool false Only remove project-scope entries.

Error: not_installed.

Authoring

alis skills create

Create a local workspace for a new skill you own at ~/.alis/skills/workspaces/<id>/: a starter SKILL.md plus optional references/, scripts/ and assets/. Ids are global (skill_exists). Every skill carries a "try it out" prompt as metadata.sample-prompt in the front matter; publish refuses the starter's TODO placeholder until you write it or remove the key. If the workspace already exists the command prints its path again.

alis skills create <id> [flags]
Flag Type Default Meaning
--description <text> string One-sentence description seeded into SKILL.md.
--from <path> string Seed the workspace from an existing local skill folder (a directory with a root SKILL.md).
--name <name> string the id Display name for the skill.
--sample-prompt <text> string The "try it out" prompt (metadata.sample-prompt).

alis skills capture

Start a skill from work you or your agent just finished. Registers the draft, scaffolds a capture-tuned workspace (distillation rubric and eval cases file) and prints where to write the distilled steps. --session drafts the skill from a past agent session.

alis skills capture <id> [flags]
Flag Type Default Meaning
--description <text> string What it does plus "Use when …" triggers, seeded into SKILL.md.
--focus <text> string One line on what the skill should teach (with --session).
--mode <mode> string auto in a terminal With --session: auto (headless resume), resume (interactive) or brief (print the brief only).
--name <name> string the id Display name.
--session <id> string Draft from this agent session: a coding agent session id, or last.

alis skills edit

Install a skill you own or edit into a local workspace for editing. Only USER-source skills on which you are an owner or editor can be edited (not_editable otherwise; ask an owner for alis skills share <id> --email <you> --role editor). An existing workspace is kept as-is.

alis skills edit <id> [flags]
Flag Type Default Meaning
--refresh bool false Discard the local workspace and reinstall the published version.

alis skills open

Print the skill's local workspace path and open it in your IDE.

alis skills open <id> [flags]
Flag Type Default Meaning
--print bool false Print the workspace path without opening an IDE.

alis skills import

Import a skill from a public GitHub repository: point at the folder holding SKILL.md (the /tree/ URL) and the whole folder becomes a skill of your own, published and ready to install, load or share. The source is remembered for --refresh.

alis skills import <github-folder-url> [flags]
Flag Type Default Meaning
--draft bool false Import into the local workspace without publishing.
--id <id> string the folder name, slugified Skill id.
--name <name> string the id Display name.
--refresh bool false Re-fetch a previously imported skill's source (the argument is then the skill id).

alis skills publish

Validate, package and publish the local workspace. The front matter's description becomes the searchable description. If the published skill changed since the workspace was installed the command exits 3 with remote_changed. Publish blocks on detected secrets and warns on home paths and emails. Local git history (never pushed) gets a commit tagged with the version. evals/ never publishes. A block-derived skill is not published to the registry: publish applies the patch to the block's .skill/ folder instead.

alis skills publish <id> [flags]
Flag Type Default Meaning
--clean bool false Remove the local workspace after a successful publish (discards the wiki).
--force bool false Publish even if the registry changed since the workspace was installed.
--name <name> string Update the skill's display name.
--no-notify bool false Do not draft a note on the feedback conversations this revision answered.
--summary <text> string the newest wiki/log.md entry One line on what this version changes.

alis skills unpublish

Unpublish a USER-source skill you administer: it disappears from search, list and load; local files stay; publishing the id again restores it. --forever erases the registry copy and frees the id, irreversibly.

alis skills unpublish <id> [flags]

Aliases: unpublish, delete.

Flag Type Default Meaning
--forever bool false Erase the skill from the registry and free the id (irreversible).

alis skills share

Share a skill you own with a colleague, with everyone at your email domain, with another build environment's domain or (Alis Build staff only) with every builder. With no flags, print who maintains the skill (owners, editors) and who it is shared with. Sharing with another domain asks for approval, and the domain must belong to an Alis Build account; public email providers are refused (domain_share_refused).

--role says what the share grants. The default, user, is read access: find and load. editor also grants edit and publish (edit, publish, improve), so a team maintains one skill together; publish still refuses a stale workspace (remote_changed), which is the concurrency guard co-maintainers rely on. owner makes a named person a co-owner with full control (see alis skills owners). Owners are always people (--email); the platform only ever gets read access. On a backend that predates roles the command fails with backend_outdated rather than report a grant that did not land.

alis skills share <id> [flags]
Flag Type Default Meaning
--domain [<domain>] bool or string Share with everyone at your email domain; --domain example.com names another.
--email <addr> string Share with the existing builder at this email address (builder_not_found when they are not a builder yet).
--platform bool false Share with every builder on the platform (Alis Build staff only; not_curator otherwise).
--role <role> string user What the share grants: user (find and load), editor (also edit and publish) or owner (full control; --email only).
--remove bool false Remove the given access instead of granting it; --role names which grant. Removing the last owner is refused (last_owner).

alis skills owners

List, add, remove or transfer a skill's owners. Owners hold full control: they edit, publish, share and delete the skill and manage its owners and editors; skill feedback conversations route to the owners and the editors. With just an id, print the owners and editors. Only an owner can run the mutations (not_owner otherwise).

Shell
alis skills owners <id>
alis skills owners add <id> <email>       # make a builder a co-owner
alis skills owners remove <id> <email>    # take ownership away; the last owner stays (last_owner)
alis skills owners transfer <id> <email>  # hand the skill over; you stay on as an editor

A transfer is a destructive-class action under the automation tiers: it takes your own control away. For edit-and-publish access without ownership, use alis skills share <id> --email <addr> --role editor.

alis skills contribute

Open a GitHub pull request back to the repo a skill was imported from, as you (GitHub connects once through your Alis profile; github_not_connected carries the auth URL). The PR is cut from the published content, so publish first. Re-running refreshes the open PR.

alis skills contribute <id> [flags]
Flag Type Default Meaning
--body <text> string Extra pull request description, prepended to the generated summary.
--dry-run bool false Show what would be contributed without opening a pull request.
--force bool false Contribute even though upstream changed since your import.
--title <text> string derived from the skill Pull request title.
--yes bool false Skip the confirmation prompt.

alis skills apply

Copy a skill's templates/ into a folder in one command. Dry-run by default: prints the plan (files to create, files that already exist, inputs still missing); --yes writes it. --set name=value fills {{ .name }} placeholders. An optional generator.yaml at the skill root declares typed inputs, a files map and post-apply checks (listed in next[], never run). Unfilled placeholders are reported per file (placeholdersRemaining).

alis skills apply <id> --into <folder> [flags]
Flag Type Default Meaning
--force bool false Overwrite files that already exist in the folder.
--into <folder> string Folder to materialise into (created if missing).
--set name=value stringArray Input value (repeatable); fills {{ .name }} placeholders.
--yes bool false Write the files (default: print the plan only).

Errors: nothing_to_apply, inputs_missing (retry carries the --set flags), invalid_generator.

Quality loop

alis skills evaluate

Run the workspace's eval cases (evals/cases.yaml): each case runs your coding agent headlessly in a clean sandbox with the skill available, and an LLM judge scores the output against the case's rubrics. Results land in <workspace>/evals/runs/<timestamp>/. Each coding agent runs with whatever credentials it already has; one without usable credentials is skipped.

alis skills evaluate <id> [flags]
Flag Type Default Meaning
--baseline bool false Also run every case without the skill, for comparison.
--case <id> string Run a single case by id.
--harness <list> string your preferred coding agent Coding agents to run: comma-separated (claude, codex, gemini, opencode) or all.
--init bool false Scaffold a starter evals/cases.yaml and exit.
--timeout <duration> duration 5m Timeout per headless run.

Errors: no_workspace, no_cases (run --init).

alis skills feedback

Send feedback about a skill. The platform routes it to the skill's owner (the Alis Build team for platform skills) as a conversation; repeat feedback lands on your existing open conversation. --rating with no message records just the rating. Continue the conversation in the TUI's support page.

alis skills feedback <id> [message...] [flags]
Flag Type Default Meaning
--rating <up\|down> string Quick quality signal.

alis skills improve

Turn feedback into a skill revision. The workspace is prepared with the evidence (feedback conversations, the agent sessions shared on them, a local session, your notes) and your coding agent is handed a brief: record what went wrong in the skill's wiki, apply one minimal patch to SKILL.md, add an eval case per gap, and write the reply. The workspace keeps raw/ (evidence, git-ignored), wiki/ (the skill's memory, never published) and the skill itself. A skill you cannot publish is forked instead (--propose).

alis skills improve <id> [flags]
Flag Type Default Meaning
--force bool false Proceed although the registry changed since the workspace was installed.
--mode <mode> string auto in a terminal auto (headless run), resume (interactive) or brief (print the brief only).
--note <text> stringArray A gap in your own words (repeatable).
--propose bool false Fork a skill you cannot publish and prepare a proposal for its owner.
--refresh bool false Re-install the skill layer (wiki/, evals/ and raw/ are kept).
--session <id> string A local agent session that used the skill: a coding agent session id, or last.
--source <folder> string Block-derived skills: the block's source service folder when it is not among your cloned products.
--ticket <id> stringArray Feedback conversation to learn from (tickets/<id> or bare id; repeatable).
--timeout <duration> duration 15m Time limit for the headless run.

Errors: not_editable (add --propose), remote_changed (exit 3), improve_timeout, improve_failed (--mode resume).

alis skills propose

Post the changes in your local fork of a skill (made with improve --propose) to the skill's owner: a unified diff plus the pattern notes from your wiki, on your feedback conversation for that skill.

alis skills propose <id> [flags]
Flag Type Default Meaning
--ticket <id> string Post on this conversation instead of your feedback conversation.
--yes bool false Skip the confirmation prompt (same as --approve).

alis skills history

List a skill's revisions, newest first: version, publisher, a one-line summary, the feedback conversations it answered and the publisher's eval state at the time.

alis skills history <id> [flags]
Flag Type Default Meaning
--limit <n> int32 20 Maximum revisions to list.

Examples

Shell
alis skills search "deploy a service to production" --json
alis skills preview dbd-add-protos
alis skills load dbd-add-protos --json
alis skills resource dbd-add-protos references/checklist.md
alis skills create my-skill --description "…" --sample-prompt "…"
alis skills evaluate my-skill --init
alis skills evaluate my-skill --baseline --json
alis skills publish my-skill
alis skills share my-skill --domain
alis skills install my-skill --harness claude
alis skills feedback my-skill --rating down "the deploy step skips --plan-only"
alis skills improve my-skill --ticket <id> --json

Notes

  • unpublish, share --domain <another domain> and owners transfer are destructive-class actions under the automation tiers.
  • The skill bundle is capped at 8 MiB.
  • Suggestions match the id, the display name and the double-quoted trigger phrases in a skill's description; quote what people type.