Skip to content

CLI usage

ryni check .              # Current directory
ryni check ./my-project   # A project directory
ryni check ./skills/review # A single skill directory

No configuration is needed. Ryni recursively checks .md and .markdown files (case-insensitive extensions) for broken local links. Files named exactly SKILL.md also receive all five Agent Skills metadata checks. Hidden directories such as .agents/skills are included unless ignored. Nested symlinks are skipped.

Ryni respects .gitignore, .ignore, .git/info/exclude, and global Git excludes, including applicable parent and nested ignore files. Git ignore rules apply inside Git repositories; .ignore also works outside them. Matching files are skipped even if tracked by Git. Global excludes can make scan coverage differ between your machine and CI.

ryni check . --no-ignore                  # Disable ignore-file filtering
ryni check . --exclude 'vendor/**' --exclude 'third_party/**'

--exclude accepts repeatable gitignore-style globs relative to the scan root and still applies with --no-ignore. Patterns containing a slash are relative to that root; patterns such as *.md match at any depth. Quote globs to prevent shell expansion. Filtering only controls which files are scanned: links to existing targets inside excluded directories remain valid.

Example output:

markdown-local-link: Target "docs/testing.md" does not exist
 --> README.md:3:1
  |
3 | [Testing](docs/testing.md)
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^

Found 1 error.

Diagnostics show the rule, file location, and source context. Broken links are underlined; skill metadata findings show a preview of the file without guessing an individual field location. Terminal output uses color; redirected output is plain text. Set NO_COLOR to disable color.

A clean scan prints All checks passed!. When no supported files are found, ryni prints No supported files found. and exits successfully.

Exit codes: 0 passed or no supported files, 1 violations, 2 execution error. Use the same command in CI. Checks modify files only when --fix is explicitly enabled.

CI

Install a pinned version using the installer, then run ryni check . in your checkout. A finding fails the command with exit code 1, so CI can use the same checks as local development.

The six stable rules run by default. Configuration and team packs can select rules, enable preview conventions and control discovery. There are no inline suppressions yet.

ryni check README.md --select markdown-local-link
ryni check . --output-format json
ryni check . --exclude vendor --respect-ignore
ryni check . --threads 4 --timings

See structured output and fixes for machine integration and opt-in fix application. Recoverable execution errors retain other findings and exit with code 2.

See the rule reference for the standards checked and edge cases.