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¶
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¶
alis skills search¶
Search the skills catalogue semantically and print the matching skills, best match first. Quote multi-word queries.
| 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.
| 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.
| 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.
No flags beyond the global flags.
alis skills list¶
List every skill you can access, sorted by id, for human browsing.
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.
No flags beyond the global flags.
alis skills request¶
Ask the Alis Build team for a skill that does not exist yet. Non-interactive.
| 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.
| 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.
| 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).
| 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.
No flags beyond the global flags.
alis skills upgrade¶
Refresh installed copies whose published content moved on.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
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.
| 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).
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.
| 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).
| 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.
| 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.
| 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).
| 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.
| 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.
| Flag | Type | Default | Meaning |
|---|---|---|---|
--limit <n> |
int32 | 20 |
Maximum revisions to list. |
Examples¶
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>andowners transferare 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.