Write your AI context once, use it everywhere.
Every AI tool wants its own prompt format. Claude Code uses SKILL.md. Cursor uses .mdc rules. Gemini CLI uses GEMINI.md. Slash commands? Different syntax for each. You end up maintaining the same instructions in three different places—or worse, giving up and only using one tool.
Lola fixes this. Write your skills and commands once as portable modules, then install them everywhere with a single command.
| Assistant | Skills | Commands |
|---|---|---|
| Claude Code | .claude/skills/<module>-<skill>/SKILL.md |
.claude/commands/<module>-<cmd>.md |
| Cursor | .cursor/rules/<module>-<skill>.mdc |
.cursor/commands/<module>-<cmd>.md |
| Gemini CLI | GEMINI.md |
.gemini/commands/<module>-<cmd>.toml |
| OpenCode | AGENTS.md |
.opencode/commands/<module>-<cmd>.md |
# With uv (recommended)
uv tool install git+https://github.com/seckatie/lola
# Or clone and install locally
git clone https://github.com/seckatie/lola
cd lola
uv tool install .# From a git repository
lola mod add https://github.com/user/my-skills.git
# From a local folder
lola mod add ./my-local-skills
# From a zip or tar file
lola mod add ~/Downloads/skills.zip# Install to all assistants in the current directory
lola install my-skills
# Install to a specific assistant in the current directory
lola install my-skills -a claude-code
# Install to a specific project directory
lola install my-skills ./my-project# List modules in registry
lola mod ls
# List installed modules
lola installed
# Update module from source
lola mod update my-skills
# Regenerate assistant files after changes
lola updateMarketplaces let you discover and install modules from curated catalogs without manually finding repository URLs.
We maintain an official, community-driven marketplace with curated modules at github.com/RedHatProductSecurity/lola-market.
Quick setup:
lola market add general https://raw.githubusercontent.com/RedHatProductSecurity/lola-market/main/general-market.ymlThis gives you instant access to community modules like workflow automation, code quality tools, and more. We highly encourage you to:
- Use modules from the official marketplace
- Contribute your own modules
- Share feedback and improvements
All contributions are welcome! See the marketplace contributing guide.
# Add a marketplace from a URL
lola market add general https://raw.githubusercontent.com/RedHatProductSecurity/lola-market/main/general-market.yml
# List registered marketplaces
lola market ls# Search across all enabled marketplaces
lola mod search authentication
# Install directly from marketplace (auto-adds and installs)
lola install git-workflow -a claude-codeWhen a module exists in multiple marketplaces, Lola prompts you to select which one to use.
# Update marketplace cache
lola market update general
# Update all marketplaces
lola market update
# Disable a marketplace (keeps it registered but excludes from search)
lola market set --disable general
# Re-enable a marketplace
lola market set --enable general
# Remove a marketplace
lola market rm generalCreate your own marketplace by hosting a YAML file with this structure:
name: My Marketplace
description: Curated collection of AI skills
version: 1.0.0
modules:
- name: git-workflow
description: Git workflow automation skills
version: 1.0.0
repository: https://github.com/user/git-workflow.git
tags: [git, workflow]
- name: code-review
description: Code review assistant skills
version: 1.2.0
repository: https://github.com/user/code-review.git
tags: [review, quality]Fields:
name: Marketplace display namedescription: What this marketplace providesversion: Marketplace schema versionmodules: List of available modulesname: Module name (must match repository directory name)description: Brief description shown in search resultsversion: Module versionrepository: Git URL, zip/tar URL, or local pathtags(optional): Keywords for search
| Command | Description |
|---|---|
lola mod add <source> |
Add a module from git, folder, zip, or tar |
lola mod ls |
List registered modules |
lola mod info <name> |
Show module details |
lola mod search <query> |
Search for modules across enabled marketplaces |
lola mod init [name] |
Initialize a new module |
lola mod init [name] -c |
Initialize with a command template |
lola mod update [name] |
Update module(s) from source |
lola mod rm <name> |
Remove a module |
| Command | Description |
|---|---|
lola market add <name> <url> |
Register a marketplace from URL or local path |
lola market ls |
List all registered marketplaces |
lola market update [name] |
Update marketplace cache (or all if no name) |
lola market set --enable <name> |
Enable a marketplace for search and install |
lola market set --disable <name> |
Disable a marketplace (keeps it registered) |
lola market rm <name> |
Remove a marketplace |
| Command | Description |
|---|---|
lola install <module> |
Install skills and commands to all assistants |
lola install <module> -a <assistant> |
Install to specific assistant |
lola install <module> <path> |
Install to a specific project directory |
lola uninstall <module> |
Uninstall skills and commands |
lola installed |
List all installations |
lola update |
Regenerate assistant files |
lola mod init my-skills
cd my-skillsThis creates:
my-skills/
skills/
example-skill/
SKILL.md # Initial skill (unless --no-skill)
commands/ # Created by default
example-command.md # (unless --no-command)
agents/ # Created by default
example-agent.md # (unless --no-agent)
Edit skills/example-skill/SKILL.md:
---
name: my-skills
description: Description shown in skill listings
---
# My Skill
Instructions for the AI assistant...You can add additional files to any skill directory (scripts, templates, examples, etc.). Reference them using relative paths in your SKILL.md:
# My Skill
Use the helper script: `./scripts/helper.sh`
Load the template from: `./templates/example.md`Path handling: Use relative paths like ./file or ./scripts/helper.sh to reference files in the same skill directory. Each assistant handles these differently:
| Assistant | Skill Location | Supporting Files | Path Behavior |
|---|---|---|---|
| Claude Code | .claude/skills/<skill>/SKILL.md |
Copied with skill | Paths work as-is |
| Cursor | .cursor/rules/<skill>.mdc |
Stay in .lola/modules/ |
Paths rewritten automatically |
| Gemini | GEMINI.md (references only) |
Stay in .lola/modules/ |
Paths work (SKILL.md read from source) |
| OpenCode | AGENTS.md (references only) |
Stay in .lola/modules/ |
Paths work (SKILL.md read from source) |
- Claude Code copies the entire skill directory, so relative paths like
./scripts/helper.shwork because the files are alongsideSKILL.md - Cursor only copies the skill content to an
.mdcfile, so Lola rewrites./paths to point back to.lola/modules/<module>/skills/<skill>/ - Gemini/OpenCode don't copy skills—they add entries to
GEMINI.md/AGENTS.mdthat tell the AI to read the originalSKILL.mdfrom.lola/modules/, so relative paths work from that location
Example skill structure:
my-skills/
skills/
example-skill/
SKILL.md
scripts/
helper.sh
templates/
example.md
Create additional skill directories under skills/, each with a SKILL.md:
my-skills/
skills/
example-skill/
SKILL.md
git-workflow/
SKILL.md
code-review/
SKILL.md
Create a commands/ directory with markdown files:
my-skills/
skills/
example-skill/
SKILL.md
commands/
review-pr.md
quick-commit.md
Command files use YAML frontmatter:
---
description: Review a pull request
argument-hint: <pr-number>
---
Review PR #$ARGUMENTS and provide feedback.Note: Modules use auto-discovery. Skills, commands, and agents are automatically detected from the directory structure. No manifest file is required.
lola mod add ./my-skills
lola install my-skillsmy-module/
skills/ # Skills directory
skill-name/
SKILL.md # Required: skill definition
scripts/ # Optional: supporting files
templates/ # Optional: templates
commands/ # Optional: slash commands
review-pr.md
quick-commit.md
agents/ # Optional: subagents
my-agent.md
Note: Modules use auto-discovery. Skills are discovered from
skills/<name>/SKILL.md, commands fromcommands/*.md, and agents fromagents/*.md. No manifest file is required.
---
name: skill-name
description: When to use this skill
---
# Skill Title
Your instructions, workflows, and guidance for the AI assistant.
Reference supporting files using relative paths:
- `./scripts/helper.sh` - files in the same skill directory
- `./templates/example.md` - subdirectories are supportedSupporting files: You can include scripts, templates, examples, or any other files in your skill directory. Use relative paths like ./file or ./scripts/helper.sh in your SKILL.md to reference them. These paths are automatically rewritten for different assistant types during installation.
---
description: What this command does
argument-hint: <required> [optional]
---
Your prompt template here. Use $ARGUMENTS for all args or $1, $2 for positional.Argument variables:
$ARGUMENTS- All arguments as a single string$1,$2,$3... - Positional arguments
Commands are automatically converted to each assistant's format:
- Claude/Cursor: Markdown with frontmatter (pass-through)
- Gemini: TOML with
{{args}}substitution
- Marketplaces: Register catalogs at
~/.lola/market/with cached data at~/.lola/market/cache/ - Discovery: Search across enabled marketplace caches to find modules
- Registry: Modules are stored in
~/.lola/modules/ - Installation: Skills and commands are converted to each assistant's native format
- Prefixing: Skills and commands are prefixed with module name to avoid conflicts (e.g.,
mymodule-skill) - Project scope: Copies modules to
.lola/modules/within the project - Updates:
lola mod updatere-fetches from original source;lola updateregenerates files;lola market updaterefreshes marketplace caches
Contributions are welcome! See CONTRIBUTING.md for guidelines on how to contribute to Lola.
- Igor Brandao
- Katie Mulliken