Universal skill and command manager for AI coding agents
Install, manage, and update skills and commands across 19+ AI development tools from a single unified interface.
flins is an open-source CLI that provides a unified interface for managing agent skills and commands across all skill-compatible coding assistants. It follows a familiar command pattern while working seamlessly with the Agent Skills open standard.
# Using npx (recommended)
npx flins@latest add <source>
# Using bunx
bunx --bun flins@latest add <source>
# Install globally
npm install -g flins
flins add <source># Install from flins directory (Browse via `flins search` or https://flins.tech/)
flins add better-auth
# Install from GitHub
flins add expo/skills
# Install to specific agent
flins add expo -a claude-code
# Install globally
flins add expo --global
# Browse available skills
flins searchflins directory = a curated catalog of popular skills. Browse via flins search or https://flins.tech/
See Source Formats below for all supported sources (GitHub, GitLab, Codeberg, etc.)
Note: Command support is experimental and varies by agent. No standard exists yet. Commands may work in one agent but fail in another due to incompatible syntax or features.
| Type | Status | Agents |
|---|---|---|
| Markdown | Supported | Claude Code, OpenCode, Droid |
| JSON | Not supported yet | OpenCode only |
| Executable | Not supported yet | Factory Droid only |
| Feature | Claude Code | OpenCode | Factory Droid |
|---|---|---|---|
$ARGUMENTS |
✅ | ✅ | ✅ |
$1, $2... |
✅ | ✅ | ❌ |
Bash !command |
✅ | ✅ | ❌ |
File refs @ |
✅ | ✅ | ❌ |
allowed-tools |
✅ | ❌ | ❌ |
hooks |
✅ | ❌ | ❌ |
| Command | Description |
|---|---|
flins add <src> |
Install skills/commands from source |
flins update |
Update installed skills/commands |
flins outdated |
Check for available updates |
flins remove |
Uninstall skills/commands |
flins list |
List all installed skills/commands |
flins search |
Interactive skill browser |
flins clean |
Remove orphaned state entries |
Common options:
-g, --global- Install globally (user-level)-a, --agent <name>- Target specific agent-s, --skill <name>- Install specific skill by name-y, --yes- Auto-confirm all prompts-f, --force- Skip all confirmations--silent- Suppress non-error output--no-symlink- Copy files directly instead of symlinks
# Directory name (Browse via `flins search` or https://flins.tech/)
flins add better-auth
# GitHub shorthand
flins add expo/skills
# GitHub full URL
flins add https://github.com/expo/skills
# GitLab
flins add https://gitlab.com/org/repo
# Codeberg
flins add https://codeberg.org/user/repo
# Any git repository
flins add https://example.com/repo.git
# Specific branch
flins add https://github.com/expo/skills/tree/develop
# Well-known skills endpoint (RFC)
flins add developer.cloudflare.comflins supports Cloudflare's Agent Skills Discovery RFC. Install skills directly from any domain hosting a /.well-known/skills/index.json endpoint:
# Install from Cloudflare docs
flins add developer.cloudflare.com
# List available skills
flins add developer.cloudflare.com --list
# Install specific skill
flins add developer.cloudflare.com --skill cloudflareWorks with any RFC-compatible domain — just run flins add <domain> to fetch from /.well-known/skills/.
By default, flins uses symlinks for efficient skill management:
.agents/ # Source files (single copy)
├── skills/
│ └── better-auth/
└── commands/
└── deploy.md
# Symlinks created for each agent:
.claude/skills/better-auth → .agents/skills/better-auth
.cursor/skills/better-auth → .agents/skills/better-auth
.windsurf/skills/better-auth → .agents/skills/better-auth
.gemini/skills/better-auth → .agents/skills/better-auth
.codex/skills/better-auth → .agents/skills/better-auth
Benefits:
- Single source of truth — update once, reflected everywhere
- Smaller disk footprint — no duplicate files across agents
- Easier maintenance — manage all skills from
.agents/
Use --no-symlink to copy files directly instead.
| Agent | Skills (project) | Skills (global) | Commands (project) | Commands (global) |
|---|---|---|---|---|
| Claude Code | .claude/skills/<name>/ |
~/.claude/skills/<name>/ |
.claude/commands/<name>.md |
~/.claude/commands/<name>.md |
| Cursor | .cursor/skills/<name>/ |
~/.cursor/skills/<name>/ |
— | — |
| Copilot | .github/skills/<name>/ |
~/.copilot/skills/<name>/ |
— | — |
| Gemini CLI | .gemini/skills/<name>/ |
~/.gemini/skills/<name>/ |
— | — |
| Windsurf | .windsurf/skills/<name>/ |
~/.codeium/windsurf/skills/<name>/ |
— | — |
| Trae | .trae/skills/<name>/ |
Project-level only | — | — |
| Factory Droid | .factory/skills/<name>/ |
~/.factory/skills/<name>/ |
.factory/commands/<name>.md |
~/.factory/commands/<name>.md |
| Letta | .skills/<name>/ |
~/.letta/skills/<name>/ |
— | — |
| OpenCode | .opencode/skills/<name>/ |
~/.config/opencode/skills/<name>/ |
.opencode/commands/<name>.md |
~/.config/opencode/commands/<name>.md |
| Codex | .codex/skills/<name>/ |
~/.codex/skills/<name>/ |
— | — |
| Antigravity | .agent/skills/<name>/ |
~/.gemini/antigravity/skills/<name>/ |
— | — |
| Amp | .agents/skills/<name>/ |
~/.config/agents/skills/<name>/ |
— | — |
| Kilo Code | .kilocode/skills/<name>/ |
~/.kilocode/skills/<name>/ |
— | — |
| Roo Code | .roo/skills/<name>/ |
~/.roo/skills/<name>/ |
— | — |
| Goose | .goose/skills/<name>/ |
~/.config/goose/skills/<name>/ |
— | — |
| Qoder | .qoder/skills/<name>/ |
~/.qoder/skills/<name>/ |
— | — |
| Qwen Code | .qwen/skills/<name>/ |
~/.qwen/skills/<name>/ |
— | — |
| Clawdbot | .clawdbot/skills/<name>/ |
~/.clawdbot/skills/<name>/ |
— | — |
| Kiro | .kiro/skills/<name>/ |
~/.kiro/skills/<name>/ |
— | — |
| OpenHands | .openhands/skills/<name>/ |
~/.openhands/skills/<name>/ |
— | — |
| Zencoder | .zencoder/skills/<name>/ |
~/.zencoder/skills/<name>/ |
— | — |
| Neovate | .neovate/skills/<name>/ |
~/.neovate/skills/<name>/ |
— | — |
| CommandCode | .commandcode/skills/<name>/ |
~/.commandcode/skills/<name>/ |
— | — |
| Pi | .pi/skills/<name>/ |
~/.pi/agent/skills/<name>/ |
— | — |
| CodeBuddy | .codebuddy/skills/<name>/ |
~/.codebuddy/skills/<name>/ |
— | — |
For global installations, source files are stored in ~/.flins/.agents/skills/ and ~/.flins/.agents/commands/.
Skills follow the Agent Skills open standard. A skill is a folder with a SKILL.md file:
---
name: pr-reviewer
description: Reviews pull requests against team guidelines
---
# PR Reviewer
Reviews pull requests for code style, security, and performance.
## Usage
Activate when reviewing a pull request.flins automatically discovers skills in SKILL.md, skills/, and agent-specific directories.
flins tracks installations via lock files for team consistency:
| Type | Location | Purpose |
|---|---|---|
| Local | ./skills.lock |
Project-specific (commit to git) |
| Global | ~/.flins/skills.lock |
Machine-wide installations |
New contributors run flins update to sync.
- Code contributions: See CONTRIBUTING.md
- Add skills to flins directory: See CONTRIBUTING_SKILLS.md
MIT © flins