dimitrigilbert/parsearger/parsearger-core

Claude Code and agent skill by dimitrigilbert/parsearger

Trust tier 2
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Core functionality for parseArger. Use this skill to GENERATE new bash argument parsers or PARSE/MODIFY existing ones. Handles definition of positional arguments, flags, and options.

Install

npx vskill@latest install dimitrigilbert/parsearger/parsearger-core

SKILL.md

ParseArger Core Skills

Critical Decision Tree

Before running any command, decide:

  1. Does the target file exist?
  • YES → Use parse (modify EXISTING parseArger script)
  • NO → Use generate (create NEW script)
  1. Check parseArger availability:
  • Run parseArger if in PATH
  • Otherwise use ./parseArger (from project root)

Invocation Rules

  1. Check which parseArger → if found, use parseArger
  2. Fallback: ./parseArger (in project root)
  3. Never assume location - always check first

CRITICAL: Generated Code Sections

All parseArger scripts contain generated code between:

  • # @parseArger-parsing
  • # @parseArger-parsing-end

DO NOT manually edit code between these markers.

To modify argument parsing:

  1. Edit the # @parseArger declarations at the top of the file
  2. Run parseArger parse FILE --inplace to regenerate the parsing logic

The generated parsing code is regenerated every time you use parseArger parse.


1. Generate a NEW Parser (generate)

Use when creating a NEW script that doesn't exist yet.

CRITICAL: Always Use --output
bash
parseArger generate --output /path/to/script.sh [OPTIONS]

Without --output, output goes to stdout only.

Core Definitions

Define arguments using specific flags. The value is a quoted string containing the name, description, and specific settings.

Positional Arguments (`--pos`) Syntax: --pos 'NAME "DESCRIPTION" [SETTINGS]'

Settings:

  • --optional: Make the argument optional.
  • --repeat: Allow multiple values (creates an array _arg_name).
  • --repeat-min N: Min repetitions (implies --repeat).
  • --repeat-max N: Max repetitions.
  • --one-of "VAL": Restrict to specific values (repeatable).
  • --complete "FUNC": Bash built-in completion (e.g., file, directory).
  • --complete-custom "CMD": Custom dynamic completion command.
  • --match "REGEX": Validate input against a regex pattern (e.g. ^[0-9]+$).
  • --subcommand: Mark as a subcommand (see Subcommands below).

**Options (--opt) Syntax: --opt 'NAME "DESCRIPTION" [SETTINGS]'`

Settings:

  • --short "C": Short flag character (e.g., o).
  • --default-value "VAL": Default value if not provided.
  • --repeat: Allow multiple occurrences.
  • --alias "NAME": Alternative long name.
  • --empty: Allow usage without value (acts like flag).
  • --empty-value "VAL": Value to set if used without value (requires --empty).
  • --env "VAR": Fallback to environment variable if option not provided.
  • --required: Mark option as mandatory (script fails if missing).
  • --match "REGEX": Validate input against a regex pattern (e.g. ^[0-9]+$).

Flags (`--flag`) Syntax: --flag 'NAME "DESCRIPTION" [SETTINGS]'

Settings:

  • --short "C": Short flag character (e.g., f).
  • --on: Flag is on by default (passing it turns it off).
  • --alias "NAME": Alias.
  • --no-name "NAME": Custom name for negation (e.g., --dont-do-it).

Nested Options (`--nested`) Syntax: --nested 'NAME "DESCRIPTION" [SETTINGS]' Creates an associative array for namespaced options (e.g., --config-db value). Settings:

  • --one-of "KEY": Restrict accepted keys.
  • --complete "FUNC", --complete-custom "CMD".

Global Settings

  • --help-message "MSG": Main help text.
  • --help-option "OPT": Custom help flag (default help).
  • --version-opt: Enable --version.
  • --set-version "VER": Set version number.
  • --leftovers: Enable collecting extra arguments (into _arg_leftovers).
  • --verbose-level N: Default verbose level (default 0).
  • --die-fn-name "NAME": Rename internal die function.
  • --log-fn-name "NAME": Rename internal log function.
Example: Generate a New Script
bash
parseArger generate --output /path/to/my-script.sh \
--pos 'filename "Input file" --complete file' \
--opt 'output "Output file" --short o --default-value "out.txt"' \
--flag 'force "Overwrite existing" --short f' \
--nested 'config "Configuration namespace"' \
--leftovers
Using Generated Variables
bash
# Variables follow pattern $_arg_<name> (hyphens -> underscores)
echo "File: $_arg_filename"
echo "Output: $_arg_output"
if [ "$_arg_force" == "on" ]; then echo "Forcing..."; fi
# Nested options are associative arrays
# CLI: --config-db sqlite
echo "DB: ${_arg_config[db]}"

2. Parse/Modify EXISTING File (parse)

Use when the file EXISTS and was created with `parseArger`.

bash
parseArger parse FILE [OPTIONS]
Common Options
  • -i or --inplace: Modify the file directly (RECOMMENDED).
  • --pos, --opt, --flag: Add new arguments to the existing ones.
  • --set-version "VER": Update the version.
Example: Modify Existing Script
bash
# Add a new verbose flag to an existing script
parseArger parse my-script.sh --inplace \
--flag 'verbose "Enable verbose logging" --short v'

CRITICAL: Only use parse on files that:

  • Already exist
  • Contain # @parseArger comments
  • Were created with parseArger

3. Subcommands

To create a subcommand structure:

  1. Define a positional argument with --subcommand.
  2. Use --subcommand-directory "DIR" to point to a directory of scripts.
  3. parseArger will treat files in that directory as subcommands.

Example:

bash
parseArger generate --output /path/to/main.sh \
--pos 'action "What to do" --subcommand --subcommand-directory ./bin'

Specific Subcommand Settings:

  • --subcommand-directory "DIR": Auto-populate valid values from scripts in DIR.
  • --subcommand-run: Immediately execute the subcommand script found.
  • --subcommand-use-leftovers: Pass any leftover arguments to the subcommand.
  • --subcommand-variable "VAR": Store subcommand parts in a specific variable (default __subcommand).

Quick Reference: generate vs parse

ScenarioCommandKey Options
Create new scriptgenerate--output PATH (REQUIRED)
Modify existing scriptparse--inplace (RECOMMENDED)
Add arguments to existingparse--pos, --opt, --flag
Update versionparse--set-version

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
5
7-day trend score
9

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Apr 2026, 6 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/dimitrigilbert/parsearger/parsearger-core/badge)](https://verified-skill.com/skills/dimitrigilbert/parsearger/parsearger-core)

Something wrong with this skill or its page? Tell us.