@amanm/skiller
v0.1.0
Published
fuzzy-search skills.sh and install agent skills from anywhere — one keybinding away on Omarchy
Maintainers
Readme
Skiller
Fuzzy-search skills.sh and install agent skills from anywhere — built for Omarchy, happy in any terminal.
Press one key, get a floating picker that searches skills.sh as you type, previews the SKILL.md, and installs the skill into whatever directory you're standing in.
┌──────────────────────────────────────────────────┬───────────────────┐
│ skills> 1/50 react… │ SKILL.md │
│ 650K vercel-react-best-practices vercel-labs │ # React Best │
│ 191K vercel-react-native-skills vercel-labs │ # Practices │
│ 102K vercel-react-view-transit… vercel-labs │ Comprehensive │
└──────────────────────────────────────────────────┴───────────────────┘Keys
| Key | Action |
|-----|--------|
| G | toggle install scope: local ↔ global (shown in the prompt) |
| R | remove mode — lists installed skills for the current scope; Enter removes |
| Enter | install (or remove, in remove mode) |
| O | open the selected skill on skills.sh (picker stays open) |
| Esc | quit |
Install = npx skills add <owner/repo>@<skill> -y (plus -g when global). Remove = npx skills remove.
Install
Requirements: bash, fzf, jq, curl, and Node/npx (nvm and mise are auto-detected; anything that puts npx on PATH works).
Via npm:
npm i -g @amanm/skiller # puts `skiller` on your PATH
# or one-shot:
npx @amanm/skiller [query]Or from source:
git clone https://github.com/amanmprojects/skiller
cd skiller
./install.shThe script copies two executables into ~/.local/bin:
skiller— the picker (also usable directly:skiller [query])skiller-launcher— keybinding entry point; resolves your terminal's directory, then opens the picker in a new floating terminal
Then wire it into Omarchy (all snippets are user-config — nothing under /usr/share/omarchy is touched):
Keybinding — ~/.config/hypr/bindings.lua:
o.bind("SUPER + I", "Skiller", "skiller-launcher")Floating picker window — ~/.config/hypr/hyprland.lua:
o.window("^org\\.omarchy\\.skiller$", { float = true, center = true, size = { 1100, 720 } })Run hyprctl reload after editing.
Optional — an Omarchy-menu row, ~/.config/omarchy/extensions/omarchy-menu.jsonc:
"skiller": { "icon": "", "label": "Skiller", "action": "skiller-launcher", "description": "Search & install agent skills" }No Omarchy? Just run skiller inside any terminal — it installs into $PWD.
How it knows where you are
Launched from a keybinding, nothing tells Skiller which project you're in, so the launcher resolves the focused terminal's live working directory before spawning the picker:
- herdr terminals — herdr runs shells under a server daemon (not under the terminal window), so Skiller asks the herdr API for the focused pane's foreground-process cwd. The client binary is located via
/proc/<pid>/exe; no PATH assumptions. - plain terminals — falls back to Omarchy's
omarchy-cmd-terminal-cwd(window PID → shell child →/proc/<pid>/cwd). - $HOME — if focus isn't a terminal at all.
The resolved directory is shown in the frame label (Skiller · ~/Work/myproject), so there's never a surprise about where a skill lands.
How search works
Uses skills.sh's unauthenticated JSON endpoint (GET /api/search?q=…) — single words fuzzy-match, multi-word queries use semantic search. Previews fetch SKILL.md from GitHub raw, with a cached git-tree lookup as fallback for repos whose directory names don't match their skills.sh slugs. Installed skills are listed from skills-lock.json.
Tested on Arch/Omarchy with Hyprland + foot + herdr. Should work on any Wayland/Linux setup with fzf; without Hyprland, just type skiller.
