Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,20 @@ This repo bundles two skills (`humanize` and `ai-check`) in their own subdirecto

If you use multiple agents (Claude Code, Codex CLI, ChatGPT desktop), install to all three skill directories at once:

**Linux / macOS (Bash):**
```bash
git clone https://github.com/harshaneel/humanize.git
cd humanize && ./install.sh all
```

This installs to `~/.claude/skills/`, `~/.codex/skills/`, and `~/.agents/skills/`. Add `--copy` if you prefer self-contained files over symlinks.
**Windows (PowerShell):**
```powershell
git clone https://github.com/harshaneel/humanize.git
cd humanize; .\install.ps1 all
```

This installs to `~/.claude/skills/`, `~/.codex/skills/`, and `~/.agents/skills/`. Add `--copy` (Bash) or `-Copy` (PowerShell) if you prefer self-contained files over symlinks/junctions.


### Claude Code

Expand Down
95 changes: 95 additions & 0 deletions install.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# PowerShell script to install humanize and ai-check skills for any agent that reads from a skills directory on Windows.
#
# Usage:
# .\install.ps1 # Claude Code (~/.claude/skills)
# .\install.ps1 codex # Codex CLI (~/.codex/skills)
# .\install.ps1 chatgpt # ChatGPT agents (~/.agents/skills)
# .\install.ps1 all # all three of the above
# .\install.ps1 -Copy # copy files instead of symlinking
# .\install.ps1 all -Copy # combinable with any target

$Target = "claude"
$Mode = "symlink"

foreach ($arg in $args) {
switch -Regex ($arg) {
"(?i)^claude$" { $Target = "claude" }
"(?i)^codex$" { $Target = "codex" }
"(?i)^chatgpt$" { $Target = "chatgpt" }
"(?i)^all$" { $Target = "all" }
"(?i)^-copy$" { $Mode = "copy" }
"(?i)^-h|--help$" {
Write-Host "Usage:"
Write-Host " .\install.ps1 # Install for Claude Code"
Write-Host " .\install.ps1 codex # Install for Codex CLI"
Write-Host " .\install.ps1 chatgpt # Install for ChatGPT agents"
Write-Host " .\install.ps1 all # Install for all three"
Write-Host " .\install.ps1 -Copy # Copy files instead of symlinking"
exit 0
}
Default {
Write-Error "Unknown argument: $arg`nRun with -h or --help for usage."
exit 1
}
}
}

$RepoDir = $PSScriptRoot
if (-not $RepoDir) {
$RepoDir = Get-Location
}

$Skills = @("humanize", "ai-check")
$Dests = @()

$HomeDir = [System.Environment]::GetFolderPath("UserProfile")

switch ($Target) {
"claude" { $Dests += Join-Path $HomeDir ".claude\skills" }
"codex" { $Dests += Join-Path $HomeDir ".codex\skills" }
"chatgpt" { $Dests += Join-Path $HomeDir ".agents\skills" }
"all" {
$Dests += Join-Path $HomeDir ".claude\skills"
$Dests += Join-Path $HomeDir ".codex\skills"
$Dests += Join-Path $HomeDir ".agents\skills"
}
}

function Install-Into($dest) {
if (-not (Test-Path $dest)) {
New-Item -ItemType Directory -Force -Path $dest | Out-Null
}

Write-Host "`nInstalling skills to $dest (mode: $Mode)"

foreach ($skill in $Skills) {
$src = Join-Path $RepoDir $skill
$dst = Join-Path $dest $skill

if (-not (Test-Path $src)) {
Write-Host " SKIP $skill (missing source directory $src)"
continue
}

if (Test-Path $dst) {
Write-Host " removing existing $dst"
Remove-Item -Recurse -Force $dst
}

if ($Mode -eq "symlink") {
# Directory junctions do not require admin privileges on Windows
New-Item -ItemType Junction -Path $dst -Value $src | Out-Null
Write-Host " linked $skill (Junction)"
} else {
Copy-Item -Recurse -Force -Path $src -Destination $dst
Write-Host " copied $skill"
}
}
}

foreach ($dest in $Dests) {
Install-Into $dest
}

Write-Host "`nDone. Restart your agent (or run /reload-skills in Claude Code) to pick up the new skills."
Write-Host "Try it: ask your agent to 'humanize this paragraph' or 'run ai-check on this text'."