How to Customize Skill Installation Paths (Global vs. Workspace) in Antigravity Awesome Skills

You can install skills in three locations—repository-only, global via symlinks in ~/.copilot/skills/ or ~/.claude/skills/, or workspace-specific using the *-workspace/v*/skill pattern—by modifying symlink targets or the SKILLS_ROOT environment variable in detect_skills.py.

The Antigravity Awesome Skills repository treats a "skill" as a self-contained directory that can be deployed at different scopes depending on your workflow needs. Understanding how to customize skill installation paths allows you to manage dependencies efficiently, whether you need system-wide availability or project-specific isolation.

Understanding the Three Installation Modes

Repository-Only Installation

Skills stored inside the cloned repository live in paths like .github/skills/<skill-name>/. The CLI automatically scans the repository root for SKILL.md files, making these skills discoverable without additional configuration. This mode requires no installation steps—simply place the skill directory in the expected location.

For system-wide availability, skills are linked into global skill folders using symbolic links. The default locations are:

  • ~/.copilot/skills/ for Copilot CLI
  • ~/.claude/skills/ for Claude Code

The CLI resolves skills by following these symlinks, making them available from any working directory. According to the skill-creator documentation in skills/skill-creator/SKILL.md, global installation uses symlinks to avoid copying files while maintaining a single source of truth.

Workspace-Specific Installation

Workspace-specific skills follow the pattern *-workspace/v*/skill (for example, my-workspace/v1/skill). The skill-installer's detection script recognizes this pattern and treats matching directories as installed only for that workspace. This isolation prevents workspace skills from polluting the global namespace.

How the System Resolves Skill Locations

The resolution logic follows a specific priority order:

  1. Local repository scan – The runtime walks the current repository looking for SKILL.md files. If found, that skill is used directly.
  2. Global symlink lookup – If no local skill matches, the CLI checks the global skill directories. These locations are hard-coded in the CLI wrappers.
  3. Workspace detection – The detect_skills.py script scans known locations and any path satisfying the workspace regex. When a skill matches the pattern, the installer records it as a workspace skill.

Customizing Global Installation Paths

You can redirect global installations to custom directories by modifying the symlink target.

Linux and macOS


# Default installation

ln -sf "$(pwd)/.github/skills/my-skill" "$HOME/.copilot/skills/my-skill"

# Custom global path

ln -sf "$(pwd)/.github/skills/my-skill" "/opt/shared/skills/my-skill"

Windows PowerShell


# Default installation

New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.copilot\skills\my-skill" `
    -Target "$(Get-Location)\.github\skills\my-skill" -Force

# Custom global path

New-Item -ItemType SymbolicLink -Path "C:\SharedSkills\my-skill" `
    -Target "$(Get-Location)\.github\skills\my-skill" -Force

The CLI will resolve the symlink regardless of the target location, as long as the link itself resides in the expected global skill folder or you configure the CLI to check your custom directory.

Configuring Workspace-Specific Paths

Modifying SKILLS_ROOT

The detection logic in skills/skill-installer/scripts/detect_skills.py uses a hard-coded root path by default:


# Original implementation

SKILLS_ROOT = Path(r"C:\Users\renat\skills")

Change this to use an environment variable for flexibility:

import os
from pathlib import Path

SKILLS_ROOT = Path(os.getenv("SKILLS_ROOT", r"C:\Users\renat\skills"))

Then set the variable before running the installer:

export SKILLS_ROOT="$HOME/my-custom-workspaces"
python skills/skill-installer/scripts/detect_skills.py --all

Customizing Scan Locations

The script defines DEFAULT_SCAN_LOCATIONS and EXTENDED_SCAN_LOCATIONS to determine where to search for skills. Edit these lists in detect_skills.py to include your custom directories:

DEFAULT_SCAN_LOCATIONS = [
    Path.home() / "Desktop",
    Path.home() / "Downloads",
    Path.home() / "my-custom-skills",  # Added custom location

]

Key Files and Implementation Details

File Purpose
skills/skill-creator/README.md User-facing guide for installing skills globally (symlinks) or locally.
skills/skill-creator/SKILL.md Detailed installation checklist, including the "Global installation" section.
skills/skill-installer/scripts/detect_skills.py Core logic for scanning known locations and detecting workspace-specific skills using WORKSPACE_PATTERN.
skills/skill-installer/scripts/install_skill.py Performs the actual copy or symlink creation for global installs.

These files define the architecture behind skill discovery, the mechanisms for global symlink-based installation, and the workspace pattern used for localized installations.

Summary

  • Repository-only skills require no installation and are auto-discovered via SKILL.md files in .github/skills/.
  • Global installation uses symbolic links in ~/.copilot/skills/ or ~/.claude/skills/ to make skills available system-wide.
  • Workspace-specific skills follow the *-workspace/v*/skill pattern and are detected by detect_skills.py.
  • Customize paths by modifying symlink targets, setting the SKILLS_ROOT environment variable, or editing DEFAULT_SCAN_LOCATIONS in the detection script.

Frequently Asked Questions

How do I move an existing global skill to a custom directory?

Create a new symbolic link pointing to your custom directory while removing the old link in the default location. The CLI only requires that a valid symlink exists in the global skill folder (~/.copilot/skills/ or ~/.claude/skills/), regardless of where the actual skill files reside.

Can I use environment variables to change where workspace skills are detected?

Yes. Modify skills/skill-installer/scripts/detect_skills.py to read from an environment variable instead of the hard-coded SKILLS_ROOT path. Set the SKILLS_ROOT environment variable before running the detection script to point to your custom workspace parent directory.

What is the exact pattern for workspace-specific skill directories?

Workspace skills must match the regex pattern *-workspace/v*/skill (for example, my-project-workspace/v1/skill or dev-workspace/v2/skill). The detect_skills.py script uses WORKSPACE_PATTERN to identify these directories and treats them as isolated installations available only within that workspace context.

Does the CLI check global or local skills first?

The CLI follows a specific resolution order: it first scans the current repository for local SKILL.md files, then checks the global skill directories (~/.copilot/skills/ and ~/.claude/skills/), and finally evaluates workspace-specific patterns if configured.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →