Skip to content

Handbook

Skills and packages

Create skills, activate them deliberately and manage GitHub packages with reviewed installation and update workflows.

Reviewed CLI source version: 2.4.0 · Editorial update:

Create and invoke a skill

A skill is reusable domain guidance. It does not expand tool permissions or a custom agent’s fixed role. You need the project CWD and a CLI session.

Create .lurus/skills/code-review-guide/SKILL.md:

---
name: Code review guide
description: Checklist for reviewing TypeScript changes
userInvokable: true
argumentHint: Review the current changes
version: 1.0.0
---

Check behavior, edge cases and test coverage. Explain findings with file references. Treat this checklist as guidance, not as permission to modify files.

Globally, use the same content at ~/.lurus/skills/code-review-guide/SKILL.md. Single .md skill files are also supported, with keys derived from their paths. Supporting Markdown files beside SKILL.md in the skill directory are not loaded as separate skills.

/skills
/skills show code-review-guide
/skills activate code-review-guide
/code-review-guide src/example.ts
/skills deactivate code-review-guide

The list and show reload skills; check key, source and body. name is a display label; the lowercase path key code-review-guide is the invocation name. External skills are inactive by default; bundled skills are active. Activation is source-bound. Project sources can replace global sources with the same key. Collisions with built-ins, commands, agents or reserved bundled invocations can prevent a slash alias.

A manual slash alias is independent of automatic skill context. It attempts session activation and uses invocation arguments as the prompt, or argumentHint when none are given. Unlike custom commands, skills do not expand $ARGUMENTS or $1 in their body. The skill provides guidance for an ordinary agent task; it does not immediately perform a hard-coded code change.

Complete frontmatter reference

FieldType / exampleEffect
namestringDisplay name, not key.
descriptionstringShort purpose.
globsstring[], ["**/*.ts"]Context selection using touched files for an already effectively active skill. Does not activate it.
userInvokableboolean, true in this exampleRegisters a manual slash invocation when the key does not collide.
argumentHintstringUsage hint and fallback prompt when invoked without text.
versionstring, 1.0.0Version metadata, not automatic updating.
authorstringAuthor metadata.
licensestringLicense metadata, not automatic approval.
categorystringClassification.

metadata.version, metadata.author, metadata.category are supported fallbacks. model, allowedTools and disableModelInvocation are not effective skill fields. A version does not install dependencies.

Activation, sessions and globs

/skills activate-session code-review-guide
/skills deactivate-session code-review-guide
/skills activate code-review-guide
/skills deactivate code-review-guide
/skills audit
/skillify
  • activate/deactivate: persistent and source-bound. For bundled skills, remove/set the global block.
  • Session variants: temporary; a persistent bundled block can prevent session activation.
  • Effective precedence: temporarily disabled → persistent bundled block → temporarily enabled → persistently enabled → bundled default.
  • audit: flags very short contents, missing or short descriptions and duplicate names. Not schema validation, a security audit or reload.
  • /skillify: asks the agent to derive useful skills from user history, ask questions and review before saving. Not a deterministic generator.
  • Only the list and show reload skills. Activation commands and audit do not.

Advanced file .lurus/skills/typescript-guide/SKILL.md:

---
name: TypeScript guide
description: Check strict typing when TypeScript files are touched
globs:
  - '**/*.ts'
userInvokable: true
argumentHint: Check the TypeScript changes
---

Use explicit types and preserve strict null checks. Report unsafe assumptions with file references.
/skills
/skills activate typescript-guide

This active skill’s guidance is added to context when matching files are touched. Without globs, an active skill is general context. The custom matcher does not promise every Minimatch feature. An external skill remains untrusted guidance, even when active: it cannot override system rules, permissions or explicit denials.

Install packages

Installation copies files into the selected destination. Review contents, target paths, existing files and license before approval.

These sources are fictional syntax examples, not existing recommendations:

/install example/quality-skills
/install bundle example/quality-skills example/review-agents
/install list

The CLI downloads and inspects the sources. You then select global or project scope and review the agent’s copy task. After successful installation, the package is registered. Up to 10 valid GitHub sources are supported, including multiple sources without bundle. There are no documented --force, --dry-run, version or --project flags. Partial success is possible.

Review contents, package name, destinations and license before approval. Fresh installation must not simply overwrite existing skill/agent targets. Complete skill directories and individual agent files are copied. Installation does not automatically activate external skills or trust agents.

Manage packages through the CLI rather than editing registration data manually. Install dependencies only with explicit consent. Install scripts from external repositories and pip do not automatically run in a sandbox.

Update and remove

Warning: Updates can overwrite files, and confirmed removal can delete entire registered skill directories. Review changes and destination paths first. Run project operations in the correct project directory; rollback is not guaranteed.

/install update quality-skills
/install update
/install remove quality-skills

Updating one package clones it and creates a copy task. Updating without a name is only an agent task for all packages, not a direct deterministic loop. Review changed/stale files and overwrite requirements first; no atomicity or rollback guarantee.

Removal displays registered files/directories and defaults to No. Confirmed removal can affect whole registered skill directories. Partial failures leave entries available for another attempt. Do not blindly clean up the registry by hand.

Package names are case-insensitive; global and project packages do not have independent namespaces. Run project operations in the correct project directory. Do not remove or update the same package name from another project; the original project target is not automatically restored.

LURUS_GIT_CLONE_TIMEOUT_MS controls the clone timeout: default 90,000 ms, allowed range 5,000 to 600,000 ms. A longer timeout does not make a source trustworthy.

Troubleshooting

ProblemCheck
Skill missingPath/SKILL.md/key/source; reload using /skills.
Skill not applied automaticallyEffective activation, bundled block and globs/touched files.
Slash alias missinguserInvokable, key collisions and actual source.
Unknown package/install list; use the package name, not a skill display name.
Partial installationConflicts, source errors, approvals and finalization; do not blindly overwrite existing files.
Package agent untrustedReview the agent and manage trust.

Next: commands, rules and memory, reference.

A deliberate choice

Before your first prompt.

Interactive demo
Lurus Codeprivacy-demo · illustrative workspace

Demo session ready. Your model choice and data route are separate decisions.

Illustrative scenario. No real sign-in, security test or code transmission takes place.

Image preview