Agent skill

windows-safe-grep

Use when grep/ripgrep fails on Windows due to paths with backslash-space sequences creating malformed paths like 'nul' from \n+ul

Stars 133
Forks 18

Install this agent skill to your Project

npx add-skill https://github.com/julianromli/opencode-template/tree/main/skill/windows-safe-grep

SKILL.md

Windows-Safe Grep Skill

Problem

On Windows, paths containing backslash-space sequences (e.g., D:\Projects\Vibe Code\isometricid) can cause ripgrep to fail because:

  • The \n in isometricid is interpreted as a newline character
  • Combined with the following ul, this creates a reference to the reserved Windows device name nul
  • Error: rg: D:\Projects\Vibe Code\isometricid\nul: Incorrect function. (os error 1)

Solution

Use bash commands with proper path quoting to work around this Windows-specific issue:

Safe Grep Command Pattern

bash
rg --fixed-strings "SEARCH_TERM" "/d/Projects/Vibe Code/isometricid"

Or use forward slashes and proper quoting:

bash
rg --fixed-strings "SEARCH_TERM" "$(cygpath -u "D:\Projects\Vibe Code\isometricid")"

Alternative: Use find + grep

bash
find "/d/Projects/Vibe Code/isometricid" -type f \( -name "*.ts" -o -name "*.js" -o -name "*.tsx" -o -name "*.jsx" \) -exec grep -H --line-number "SEARCH_TERM" {} \;

Usage

When grep fails with "Incorrect function (os error 1)" on Windows:

  1. Use this skill
  2. Replace the path with forward slashes: D:\Projects\Vibe Code\isometricid/d/Projects/Vibe Code/isometricid
  3. Or use the bash command pattern with proper quoting

Example

bash
rg --fixed-strings "polar_product_id" "/d/Projects/Vibe Code/isometricid/src"

Expand your agent's capabilities with these related and highly-rated skills.

julianromli/opencode-template

test-driven-development

Use when implementing any feature or bugfix, before writing implementation code

133 18
Explore
julianromli/opencode-template

code-refactoring

Code refactoring patterns and techniques for improving code quality without changing behavior. Use for cleaning up legacy code, reducing complexity, or improving maintainability.

133 18
Explore
julianromli/opencode-template

using-superpowers

Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions

133 18
Explore
julianromli/opencode-template

ui-ux-pro-max

UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient.

133 18
Explore
julianromli/opencode-template

task-generator

Generate structured task lists from specs or requirements. IMPORTANT: After completing ANY spec via ExitSpecMode, ALWAYS ask the user: "Would you like me to generate a task list for this spec?" Use when user confirms or explicitly requests task generation from a plan/spec/PRD.

133 18
Explore
julianromli/opencode-template

next-best-practices

Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling

133 18
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results