← All skills

moongrep

Use moongrep to structurally search and perform taint analysis on MoonBit source code. Use when an agent needs syntax-aware MoonBit structural code search.

$ files
SKILL.md
SKILL.md

moongrep

moongrep is an experimental MoonBit structural search and taint-analysis tool. Matching rules are declared as YAML files.

Scan

Run the scanner with a rule directory and an optional scan target directory or .mbt file:

moon runwasm moonbit-community/moongrep -- scan --rules path/to/rules path/to/src moon runwasm moonbit-community/moongrep -- scan --pattern 'target()' path/to/src

Synopsis:

moon runwasm moonbit-community/moongrep -- scan [--verbose] ((--rules <rules-root> | --rules=<rules-root> | -r <rules-root>) | --pattern <pattern>)... [scan-root]

The scanner is available through the scan subcommand. --rules / -r is optional when at least one --pattern <pattern> is supplied. The long rules option accepts both --rules <rules-root> and --rules=<rules-root> forms. Inline patterns are treated as anonymous structural rules with package <unknown>, no description metadata beyond the CLI placeholder, and no declared metavars. One optional positional scan-root may appear in the scan argument list and defaults to .. If the rules option appears multiple times, the last value wins. Repeated --pattern values are appended as separate anonymous rules. Usage errors print a message and exit with code 2: missing scan command, missing both rules and pattern options, missing option value, unknown options, or more than one scan root. Non-usage errors, including unreadable paths, an empty rules directory, invalid YAML/schema/shape, or source read failures, abort the run; the CLI prints the error and exits with code 1. Pass --verbose to print the directory traversal progress before warnings and match results.

If scan-root is omitted, moongrep scans the current directory:

moon runwasm moonbit-community/moongrep -- scan --rules path/to/rules moon runwasm moonbit-community/moongrep -- scan -r path/to/rules moon runwasm moonbit-community/moongrep -- scan --pattern 'target()'

The scanner recursively reads .mbt files. When descending from scan-root, child entries named .git, _build, .mooncakes, or target are skipped; if one of those directories is passed explicitly as scan-root, it is scanned. Symbolic links encountered during recursive source or rule traversal are followed. Files that fail to parse are reported as warnings and skipped; other files continue to be scanned.

Document

Embedded documentation is available through the docs subcommand:

moon runwasm moonbit-community/moongrep -- docs --list moon runwasm moonbit-community/moongrep -- docs RuleSpec

Skill
Name
moonbit-community/moongrep
Version
0.1.6
Published
4 months ago
Download
Download ZIP

SHA-256

247f93ec7d69def2c02b28a54697e0d2b7cf4fd0fec83e7671dd7520b223a4a6

Powered by MoonBit

Site sourceReport issueModulesSkillsBuild queueStatistics

© 2026 mooncakes.io