forked from Crockan/MercuryToolbox
479 lines
44 KiB
Markdown
479 lines
44 KiB
Markdown
# Mercury Toolbox Command Catalog
|
|
Use this catalog when choosing among nearby Mercury commands. Keep output compact, prefer `--json` for machine handoff, prefer `--toon` for model-facing structured output, and use `toon` for external JSON producers.
|
|
## Code and Context
|
|
### `fileprobe`
|
|
Use: Classify files as text, binary, generated, minified, test, vendor, and more, including encoding, BOM, and newline diagnostics. Better than: blindly opening files when you need a fast read-worthiness, encoding, or newline check first.
|
|
Usage: `fileprobe [OPTIONS] [PATH...]`
|
|
Example: `fileprobe .\dist\bundle.min.js --json | ConvertFrom-Json`
|
|
Guided answer: Answer whether a path is text, binary, generated, minified, vendor, or worth opening.
|
|
Trust basis: Trust bounded sniffing, encoding, newline, and classification diagnostics.
|
|
Next actions: Use outline or chunkcat for readable text. | Use binmeta or stringscan for binary files.
|
|
TOON example: `fileprobe .\dist\bundle.min.js --toon`
|
|
### `outline`
|
|
Use: List top-level code or config structure. Better than: scrolling whole files when you only need the structure.
|
|
Usage: `outline [OPTIONS] <PATH...>`
|
|
Example: `outline <PATH>`
|
|
Guided answer: Answer top-level structure of source or config files.
|
|
Trust basis: Trust parser-supported outlines and explicit unsupported-file diagnostics.
|
|
Next actions: Use defsnip for exact definitions. | Use refs or codeshape for broader symbol maps.
|
|
TOON example: `outline --toon <PATH>`
|
|
### `codeshape`
|
|
Use: Map a codebase into files plus AST-backed declarations and signatures from the shared `codeindex` engine. Better than: plain `tree` output when you need internal declarations and signatures without dumping full source files.
|
|
Usage: `codeshape [OPTIONS] [PATH...]`
|
|
Example: `codeshape --max-depth 1 --limit-per-file 8 . --json | ConvertFrom-Json`
|
|
Guided answer: Answer repository file/declaration shape with AST-backed summaries.
|
|
Trust basis: Trust codeindex parser results and skipped-file diagnostics.
|
|
Next actions: Use defsnip to extract definitions. | Use refs to find use sites.
|
|
TOON example: `codeshape --max-depth 1 --limit-per-file 8 . --toon`
|
|
### `refs`
|
|
Use: Find exact symbol references or caller definitions through the shared `codeindex` engine with text fallback. Better than: falling back to raw `rg` when you need exact use-sites or caller summaries for a known symbol.
|
|
Usage: `refs [OPTIONS] <SYMBOL> [PATH...] | refs [OPTIONS] --at <PATH:LINE[:COL]> [PATH...]`
|
|
Example: `refs helper <PATH>`
|
|
Guided answer: Answer symbol references or callers across source files.
|
|
Trust basis: Trust codeindex hits and caller grouping under the selected roots.
|
|
Next actions: Use hitsnip to expand hit context. | Use defsnip for definition bodies.
|
|
TOON example: `refs --toon helper <PATH>`
|
|
### `snip`
|
|
Use: Extract precise snippets from files or stdin. Better than: dumping whole files when you only need exact lines, matches, or symbols.
|
|
Usage: `snip [OPTIONS] [PATH...]`
|
|
Example: `snip --lines 16:27 <PATH>`
|
|
Guided answer: Answer exact bounded source/text snippets by line, match, or symbol.
|
|
Trust basis: Trust line numbers and bounded extraction; binary or missing paths are rejected.
|
|
Next actions: Use hitsnip after rg for multiple hits. | Use ctxpack to bundle snippets.
|
|
TOON example: `snip --toon --lines 16:27 <PATH>`
|
|
### `defsnip`
|
|
Use: Extract full AST-backed definitions by exact symbol name through the shared `codeindex` engine. Better than: line-number snippets when you need the full function, class, or method body even after nearby edits move the lines.
|
|
Usage: `defsnip [OPTIONS] <SYMBOL> [PATH...]`
|
|
Example: `defsnip build_report . --json | ConvertFrom-Json`
|
|
Guided answer: Answer full AST-backed definition blocks for symbols.
|
|
Trust basis: Trust codeindex definitions and language support; no match means broaden symbol/root.
|
|
Next actions: Use refs for callers/use sites. | Use ctxpack to package the definition with nearby context.
|
|
TOON example: `defsnip build_report . --toon`
|
|
### `ctxpack`
|
|
Use: Pack files, snippets, hits, diagnostics, or definition JSON into compact context blocks. Better than: hand-assembling ad-hoc prompt context from files, hits, diagnostics, and definitions.
|
|
Usage: `ctxpack [OPTIONS] [INPUT...]`
|
|
Example: `ctxpack <PATH>`
|
|
Guided answer: Answer compact prompt-ready context from files, snippets, hits, and diagnostics.
|
|
Trust basis: Trust included path and byte/line caps; review omitted/truncated sections for scope.
|
|
Next actions: Use fileprobe/codeshape before packing broad roots. | Use diagpick or hitsnip to feed focused evidence.
|
|
TOON example: `ctxpack --toon <PATH>`
|
|
### `chunkcat`
|
|
Use: Read large text files in bounded chunks, including quick tail-style log windows. Better than: huge file dumps when you need deterministic windows.
|
|
Usage: `chunkcat [OPTIONS] [PATH...]`
|
|
Example: `chunkcat .\BepInEx\LogOutput.log --max-lines 20 --tail`
|
|
Guided answer: Answer a bounded chunk or inventory of a large text file.
|
|
Trust basis: Trust chunk indices, line ranges, and binary detection.
|
|
Next actions: Use snip when you know the exact line range. | Use hitsnip to expand search hits into chunks.
|
|
TOON example: `chunkcat --toon .\BepInEx\LogOutput.log --max-lines 20 --tail`
|
|
### `hitsnip`
|
|
Use: Turn search hits into compact snippets or promote them to enclosing definitions. Better than: raw `rg` hit lists when you need merged readable context or the enclosing definition instead of a tiny window.
|
|
Usage: `hitsnip [OPTIONS] [HIT...]`
|
|
Example: `rg -nH "helper" <PATH> | hitsnip --def`
|
|
Guided answer: Answer merged snippets around rg-style search hits.
|
|
Trust basis: Trust hit parsing and merge ranges; malformed hit lines are reported.
|
|
Next actions: Use rg -nH to feed hits. | Use defsnip when the hit is inside a known symbol.
|
|
TOON example: `rg -nH "helper" <PATH> | hitsnip --toon --def`
|
|
### `diagpick`
|
|
Use: Extract compiler or runtime diagnostics from noisy logs, with optional snippets and enclosing definitions. Better than: reading full logs when you need the actionable errors first and want direct source or definition context.
|
|
Usage: `diagpick [OPTIONS] [PATH...]`
|
|
Example: `diagpick <PATH> --def`
|
|
Guided answer: Answer actionable diagnostics extracted from compiler/build/log text.
|
|
Trust basis: Trust recognized diagnostic formats and preserved source context.
|
|
Next actions: Use snip on referenced files/lines. | Use runprobe to capture the failing command reproducibly.
|
|
TOON example: `diagpick --toon <PATH> --def`
|
|
### `gitshape`
|
|
Use: Summarize Git status or diff shape into concise AI-friendly file, line, and touched-symbol reports. Better than: reading raw `git status` and diff noise when you first need compact status counters or changed-file summaries.
|
|
Usage: `gitshape [OPTIONS] [PATH] | gitshape [OPTIONS] status [PATH] | gitshape [OPTIONS] diff [REVISION_A] [REVISION_B]`
|
|
Example: `gitshape status --repo C:\src\repo --json | ConvertFrom-Json`
|
|
Guided answer: Answer git status, branch, diff, and repository change shape.
|
|
Trust basis: Trust git command output and explicit revision/path filters.
|
|
Next actions: Use reposhape to connect git changes to ecosystems. | Use ctxpack or hitsnip for changed-file handoff.
|
|
TOON example: `gitshape status --repo C:\src\repo --toon`
|
|
### `reposhape`
|
|
Use: Detect repository ecosystems, manifests, command entrypoints, and CI hints in one pass. Better than: manually browsing an unfamiliar repo when you first need the ecosystems, manifests, commands, and CI entrypoints.
|
|
Usage: `reposhape [OPTIONS] [PATH]`
|
|
Example: `reposhape . --json | ConvertFrom-Json`
|
|
Guided answer: Answer repository ecosystems, manifests, entrypoints, and project layout.
|
|
Trust basis: Trust manifest detection under depth/hidden filters and parse diagnostics.
|
|
Next actions: Use codeshape for source declarations. | Use dotnetshape/sqlshape/gitshape for ecosystem-specific detail.
|
|
TOON example: `reposhape . --toon`
|
|
### `dotnetshape`
|
|
Use: Inspect .csproj, Directory.Build.props/targets, Directory.Packages.props, project references, package versions, and .NET-specific project graph diagnostics. Better than: opening a .NET repo one file at a time when you first need project graph shape, shared MSBuild inheritance, package references, and build-shape warnings.
|
|
Usage: `dotnetshape [OPTIONS] [PATH]`
|
|
Example: `dotnetshape . --json | ConvertFrom-Json`
|
|
Guided answer: Answer .NET project graph, inherited MSBuild properties, package references, and diagnostics.
|
|
Trust basis: Trust static XML parsing without invoking MSBuild; generated/effective values are labeled.
|
|
Next actions: Use asmref diagnose on built assemblies. | Use config to inspect Directory.Build or props files directly.
|
|
TOON example: `dotnetshape . --toon`
|
|
## Data and Config
|
|
### `cjson`
|
|
Use: Compact JSON or JSONL before piping, diffing, or model input. Better than: pretty multi-line JSON when you need compact stable output and optional key sorting.
|
|
Usage: `cjson [OPTIONS] [PATH]`
|
|
Example: `cjson <PATH>`
|
|
Guided answer: Answer whether JSON/JSONL can be compacted cleanly and deterministically.
|
|
Trust basis: Trust the JSON parser result and document count; invalid JSON is reported before compaction.
|
|
Next actions: Run jsonshape on the compacted payload when you need schema shape. | Pipe to jq or toon for projection/model handoff.
|
|
TOON example: `cjson --toon <PATH>`
|
|
### `ison`
|
|
Use: Convert between JSON and ISON records for compact structured handoff. Better than: verbose JSON when a deterministic compact ISON representation is easier to scan or diff.
|
|
Usage: `ison [OPTIONS] [PATH]`
|
|
Example: `ison <PATH>`
|
|
Guided answer: Answer whether JSON can round-trip through compact ISON for handoff.
|
|
Trust basis: Trust successful parser/encoder output; use JSON mode when a tool must consume it next.
|
|
Next actions: Use isonl for line-oriented streams. | Use toon when the next consumer is an AI model.
|
|
TOON example: `ison --toon <PATH>`
|
|
### `isonl`
|
|
Use: Convert between JSONL and ISONL line records. Better than: manual JSONL splitting when line-oriented ISON records are better for streaming or model input.
|
|
Usage: `isonl [OPTIONS] [PATH]`
|
|
Example: `isonl --from jsonl --to isonl <PATH>`
|
|
Guided answer: Answer whether JSONL/ISONL records can be converted as a stream.
|
|
Trust basis: Trust per-line parser diagnostics and document counts; malformed lines stop the conversion.
|
|
Next actions: Pipe into jsonlgrep for filtering. | Use cjson or toon for downstream compact handoff.
|
|
TOON example: `isonl --toon --from jsonl --to isonl <PATH>`
|
|
### `zon`
|
|
Use: Convert JSON or JSONL to Zero Overhead Notation and back. Better than: hand-written compact table encodings when you need Zero Overhead Notation interop without Node tooling.
|
|
Usage: `zon [OPTIONS] [PATH]`
|
|
Example: `zon <PATH>`
|
|
Guided answer: Answer whether JSON/JSONL can convert to or from Zero Overhead Notation.
|
|
Trust basis: Trust parser diagnostics and wrapper metadata for document count and target format.
|
|
Next actions: Use jsonshape after decoding to validate shape. | Use toon for model-facing structured summaries.
|
|
TOON example: `zon --toon <PATH>`
|
|
### `tonl`
|
|
Use: Encode, decode, query, validate, index, stream-query, and ETL JSON-backed TONL data. Better than: one-off scripts for compact JSON ETL, validation, query, indexing, or streaming filters.
|
|
Usage: `tonl <COMMAND> [OPTIONS] [PATH] | tonl index <build|query> [OPTIONS] | tonl stream query [OPTIONS] [PATH]`
|
|
Example: `tonl query --where active=true <PATH>`
|
|
Guided answer: Answer filtered TONL records, validation status, indexes, or ETL conversion results.
|
|
Trust basis: Trust explicit validation/query diagnostics; streaming mode reports record-level failures.
|
|
Next actions: Use jsonlgrep for simple JSONL filtering before TONL conversion. | Use cjson or toon for compact handoff.
|
|
TOON example: `tonl query --toon --where active=true <PATH>`
|
|
### `jsonlgrep`
|
|
Use: Filter JSONL logs, single-line JSON arrays, or structured event streams by field. Better than: ad-hoc `jq` for simple field filters, projections, counts, and regex matches.
|
|
Usage: `jsonlgrep [OPTIONS] <QUERY> [PATH...]`
|
|
Example: `recent --root . --limit 20 --json | jsonlgrep 'path~=LogOutput' --pick modified_rfc3339,path --json | ConvertFrom-Json`
|
|
Guided answer: Answer which JSONL records match field, regex, or projection filters.
|
|
Trust basis: Trust parsed JSON records and explicit malformed-line diagnostics.
|
|
Next actions: Use jsonshape on matched records to inspect structure. | Use toon or cjson for compact AI handoff.
|
|
TOON example: `recent --root . --limit 20 --json | jsonlgrep 'path~=LogOutput' --pick modified_rfc3339,path --toon`
|
|
### `jsonshape`
|
|
Use: Summarize JSON or JSONL into path/type stats, or diff two shape reports. Better than: opening raw payloads when you first need the shape, key paths, or a schema diff.
|
|
Usage: `jsonshape [OPTIONS] [PATH...] | jsonshape [OPTIONS] diff <BEFORE> <AFTER>`
|
|
Example: `jsonshape diff before.json after.json --json | ConvertFrom-Json`
|
|
Guided answer: Answer the key paths, types, counts, and shape differences in JSON/JSONL.
|
|
Trust basis: Trust reported path/type counts when parsing succeeds; review diff diagnostics for drift.
|
|
Next actions: Use jsonlgrep to isolate records before reshaping. | Use cjson to normalize payloads before comparing.
|
|
TOON example: `jsonshape diff before.json after.json --toon`
|
|
### `mhash`
|
|
Use: Compute local file hashes across the OpenHashTab-class matrix, list algorithms, hash with `--all` or explicit multi-algorithm sets, produce JSONL manifests, verify manifests, or benchmark hash throughput. Better than: PowerShell Get-FileHash loops, GUI hash tabs, ad-hoc checksum scripts, or manual benchmark harnesses when you need OpenHashTab-class algorithm coverage, manifests, verification, JSON/JSONL, and throughput telemetry in one local CLI.
|
|
Usage: `mhash [OPTIONS] [PATH...] | mhash verify [OPTIONS] <MANIFEST> | mhash list-algorithms [--json] | mhash bench [OPTIONS] [PATH...]`
|
|
Example: `mhash --algorithm sha256,blake3-256,xxh3-128 .\dist\MercuryToolbox.zip --json | ConvertFrom-Json`
|
|
Guided answer: Answer file identity, checksum, manifest verification, or hash throughput questions.
|
|
Trust basis: Trust algorithm labels, manifest verification status, and per-file error rows.
|
|
Next actions: Use fileprobe first when the file type is unknown. | Use jsonlgrep or jq to filter manifest rows.
|
|
TOON example: `mhash --algorithm sha256,blake3-256,xxh3-128 .\dist\MercuryToolbox.zip --toon`
|
|
### `toon`
|
|
Use: Convert between JSON and TOON. Better than: verbose JSON when you want a denser structured text form.
|
|
Usage: `toon [OPTIONS] [PATH]`
|
|
Example: `'{"ok":true}' | toon`
|
|
Guided answer: Answer compact model-readable TOON from JSON/JSONL or decode TOON back.
|
|
Trust basis: Trust parser/encoder diagnostics and document wrapper metadata.
|
|
Next actions: Use native --toon on Mercury producers when available. | Use cjson/jsonshape before converting questionable JSON.
|
|
### `csvshape`
|
|
Use: Summarize large CSV or TSV files into compact schema/bounded stats, or diff two CSV shapes. Better than: opening huge CSV or TSV files when you first need the columns, rough types, blanks, example values, or a shape diff.
|
|
Usage: `csvshape [OPTIONS] [PATH...] | csvshape [OPTIONS] diff <BEFORE> <AFTER>`
|
|
Example: `csvshape diff before.csv after.csv --json | ConvertFrom-Json`
|
|
Guided answer: Answer CSV/TSV delimiter, columns, row counts, and schema differences.
|
|
Trust basis: Trust parsed rows under the detected or requested delimiter.
|
|
Next actions: Use jsonshape after converting CSV to JSON externally. | Use config or sqlshape when CSV describes configuration/data imports.
|
|
TOON example: `csvshape diff before.csv after.csv --toon`
|
|
### `sqliteshape`
|
|
Use: Inspect SQLite databases read-only with compact schema/table summaries, or diff two SQLite shapes. Better than: dropping into an interactive SQLite shell when you only need schema, sample rows, light table stats, or a shape diff.
|
|
Usage: `sqliteshape [OPTIONS] [PATH...] | sqliteshape [OPTIONS] diff <BEFORE> <AFTER>`
|
|
Example: `'C:\data\events.db' | sqliteshape --input-format lines --json | ConvertFrom-Json`
|
|
Guided answer: Answer SQLite tables, columns, indexes, triggers, and schema diffs.
|
|
Trust basis: Trust SQLite catalog queries against the selected database file.
|
|
Next actions: Use sqlshape for normalized cross-engine reports. | Use jsonshape/csvshape on exported data samples.
|
|
TOON example: `'C:\data\events.db' | sqliteshape --input-format lines --toon`
|
|
### `sqlshape`
|
|
Use: Inspect PostgreSQL, MySQL/MariaDB, SQLite, SQL Server, or DuckDB schemas read-only with redacted connection sources and normalized cross-engine diffs. Better than: hand-writing per-engine catalog queries or exposing raw connection strings when you need a normalized cross-database schema report or diff.
|
|
Usage: `sqlshape [OPTIONS] --url <CONNECTION> | sqlshape [OPTIONS] diff --before-url <CONNECTION> --after-url <CONNECTION>`
|
|
Example: `sqlshape --engine sqlite --url <PATH> --json | ConvertFrom-Json`
|
|
Guided answer: Answer normalized SQL schema across SQLite, PostgreSQL, MySQL/MariaDB, SQL Server, or DuckDB.
|
|
Trust basis: Trust engine-specific introspection and redacted connection reporting.
|
|
Next actions: Use sqliteshape for SQLite-specific detail. | Use config to inspect connection/config files safely.
|
|
TOON example: `sqlshape --engine sqlite --url <PATH> --toon`
|
|
### `config`
|
|
Use: Read, inspect, list, set, or delete config values in JSON, YAML, TOML, env, and INI files. Better than: fighting `jq` or hand-editing config files when you need safe slash-pointer reads or edits across common formats.
|
|
Usage: `config [OPTIONS] [PATH] | config [OPTIONS] <get|inspect|ls|set|delete> <PATH> [POINTER] [VALUE]`
|
|
Example: `config get .\package.json /version`
|
|
Guided answer: Answer get/set/delete operations over JSON/YAML/TOML/env/INI config paths.
|
|
Trust basis: Trust parser-specific diagnostics and structured edit reports.
|
|
Next actions: Use fileprobe before editing unknown config files. | Use jsonshape after JSON config changes.
|
|
TOON example: `config --toon get .\package.json /version`
|
|
## Logs, Process, and Waiting
|
|
### `logshape`
|
|
Use: Group recurring log lines into templates. Better than: reading repetitive logs line by line when you need the dominant patterns.
|
|
Usage: `logshape [OPTIONS] [PATH...]`
|
|
Example: `logshape <PATH>`
|
|
Guided answer: Answer repeated log templates, incidents, and message clusters.
|
|
Trust basis: Trust grouping counts and examples; rare lines may stay as individual templates.
|
|
Next actions: Use diagpick for actionable errors. | Use jsonlgrep when logs are structured JSONL.
|
|
TOON example: `logshape --toon <PATH>`
|
|
### `envdiff`
|
|
Use: Snapshot, diff, or run commands while reporting environment-variable changes. Better than: hand-comparing environment variables before and after a script, especially around PATH pollution and batch wrappers.
|
|
Usage: `envdiff [OPTIONS] run --shell cmd|pwsh|raw -- <COMMAND...>`
|
|
Example: `envdiff run --shell cmd -- .\scripts\set-env.cmd`
|
|
Guided answer: Answer environment variable changes before/after a command or between snapshots.
|
|
Trust basis: Trust captured before/after maps and PATH segment deltas.
|
|
Next actions: Use pathshadow after PATH changes. | Use sysshape for broader shell/tool inventory.
|
|
TOON example: `envdiff --toon run --shell cmd -- .\scripts\set-env.cmd`
|
|
### `proctree`
|
|
Use: Inspect whole-system, rooted, matched, or command-run Windows process trees in AI-friendly form; use --match to filter by image name or command line. Better than: flat process lists when you need parent-child context, short command lines, and lingering orphan hints.
|
|
Usage: `proctree [OPTIONS] system|root <PID>|run -- <COMMAND...>`
|
|
Example: `proctree system --match 'pwsh|Mercury' --include-cmdline`
|
|
Guided answer: Answer process trees, rooted processes, and command ancestry.
|
|
Trust basis: Trust OS process snapshots at capture time; short-lived processes may disappear.
|
|
Next actions: Use portunlock for port owners. | Use runprobe to capture command execution shape.
|
|
TOON example: `proctree --toon system --match 'pwsh|Mercury' --include-cmdline`
|
|
### `sysshape`
|
|
Use: Capture a compact local system and tool inventory for AI-friendly triage, including shell hints, path-like duplication, and probe status. Better than: asking users ad-hoc setup questions or checking versions one tool at a time when you need a compact local machine inventory first.
|
|
Usage: `sysshape [OPTIONS]`
|
|
Example: `sysshape --json --env safe --group shell | ConvertFrom-Json`
|
|
Guided answer: Answer machine, shell, environment, and tool inventory shape.
|
|
Trust basis: Trust detected command paths/versions and grouped environment metadata.
|
|
Next actions: Use pathshadow for a specific executable winner. | Use envdiff around commands that mutate the environment.
|
|
TOON example: `sysshape --toon --env safe --group shell`
|
|
### `runprobe`
|
|
Use: Run one command and capture exit code, duration, timeout status, and bounded output tails. Better than: reading fragile shell text when what you really need is the stable result object for one command run.
|
|
Usage: `runprobe [OPTIONS] -- <COMMAND...>`
|
|
Example: `runprobe --json --shell pwsh -- '& { Write-Error boom; exit 9 }' | ConvertFrom-Json`
|
|
Guided answer: Answer command exit code, duration, stdout/stderr tails, and timeout behavior.
|
|
Trust basis: Trust captured process result and bounded output tails.
|
|
Next actions: Use diagpick on captured stderr/stdout. | Use envdiff run when environment mutation matters.
|
|
TOON example: `runprobe --toon --shell pwsh -- '& { Write-Error boom; exit 9 }'`
|
|
### `await`
|
|
Use: Wait for a path, TCP target, HTTP endpoint, or command condition with bounded polling. Better than: writing ad-hoc polling loops for files, ports, HTTP endpoints, or repeat-until-success commands.
|
|
Usage: `await [OPTIONS] path <PATH> [--state exists|missing] | await [OPTIONS] port <TARGET> | await [OPTIONS] http <URL> [--status <CODE>] | await [OPTIONS] run [--shell <MODE>] [--cwd <PATH>] [--exit-code <CODE>] [--tail-bytes <COUNT>] -- <COMMAND...>`
|
|
Example: `await path .\target\ready.flag`
|
|
Guided answer: Answer whether a path, port, HTTP endpoint, or command became ready before timeout.
|
|
Trust basis: Trust polling attempts, final state, and timeout status.
|
|
Next actions: Use portping for one-shot endpoint detail. | Use runprobe for command readiness probes.
|
|
TOON example: `await --toon path .\target\ready.flag`
|
|
### `argv`
|
|
Use: Quote argv for `pwsh` or `cmd`, or inspect what a shell actually passed to a native process. Better than: guessing how PowerShell or cmd really passed arguments to a native process.
|
|
Usage: `argv quote --shell <pwsh|cmd|raw> [VALUE...] | argv inspect [--json] --shell <pwsh|cmd|raw> [VALUE...]`
|
|
Example: `'["tool.exe","two words"]' | argv quote --shell cmd`
|
|
Guided answer: Answer how arguments should be quoted or how a shell actually passes them.
|
|
Trust basis: Trust helper round-trips for the selected shell/platform.
|
|
Next actions: Use runprobe to execute the quoted command. | Use msudo status before privileged shell wrapping.
|
|
TOON example: `'["tool.exe","two words"]' | argv --toon quote --shell cmd`
|
|
### `recent`
|
|
Use: List recently changed files or directories. Better than: manual directory scans when you just need the freshest files and `.gitignore` awareness.
|
|
Usage: `recent [OPTIONS]`
|
|
Example: `recent --root . --since 2h --ext rs --name '^(lib|main)$'`
|
|
Guided answer: Answer which files or directories changed recently.
|
|
Trust basis: Trust timestamp filters and gitignore-aware discovery within the selected root.
|
|
Next actions: Pipe paths into fileprobe or outline. | Use hitsnip or ctxpack after narrowing files.
|
|
TOON example: `recent --toon --root . --since 2h --ext rs --name '^(lib|main)$'`
|
|
### `pathshadow`
|
|
Use: Show which executable wins and which ones are shadowed. Better than: guessing PATH order when the wrong executable is being picked.
|
|
Usage: `pathshadow [OPTIONS] [COMMAND...]`
|
|
Example: `pathshadow python npm --shell powershell --summary --json | ConvertFrom-Json`
|
|
Guided answer: Answer which executable wins on PATH and which candidates are shadowed.
|
|
Trust basis: Trust resolved filesystem candidates and shell-aware summary rows.
|
|
Next actions: Use sysshape --group shell for broader environment context. | Use argv quote when command invocation quoting is suspicious.
|
|
TOON example: `pathshadow python npm --shell powershell --summary --toon`
|
|
## Network and Locks
|
|
### `portping`
|
|
Use: Probe ports or health endpoints with timings. Better than: jumping between multiple network tools for quick TCP and HTTP reachability checks.
|
|
Usage: `portping [OPTIONS] [TARGET...]`
|
|
Example: `'https://example.com/health' | portping --json | ConvertFrom-Json`
|
|
Guided answer: Answer whether a TCP/HTTP/HTTPS endpoint is reachable and how long it took.
|
|
Trust basis: Trust direct connection/status timing; failures distinguish DNS, connect, and HTTP states.
|
|
Next actions: Use portunlock when a local port is unexpectedly occupied. | Use await port/http to wait for readiness.
|
|
TOON example: `'https://example.com/health' | portping --toon`
|
|
### `portunlock`
|
|
Use: Show and free local TCP or UDP port owners on Windows. Better than: guessing which process owns a port or hand-writing `netstat` and kill loops when a local listener refuses to go away.
|
|
Usage: `portunlock [OPTIONS] who <PORT...> | portunlock [OPTIONS] free <PORT...>`
|
|
Example: `portunlock who --json --protocol any 3000 8080 | ConvertFrom-Json`
|
|
Guided answer: Answer which process owns a local TCP/UDP port and optionally free it.
|
|
Trust basis: Trust OS port snapshots and post-action verification rows.
|
|
Next actions: Use proctree on the owning PID before freeing. | Use portping after freeing or restarting a listener.
|
|
TOON example: `portunlock who --toon --protocol any 3000 8080`
|
|
### `msudo`
|
|
Use: Top-level high-risk command: inspect Windows elevation relay status, token state, active session state, and host availability before any privileged launch. Better than: guessing whether Windows elevation relay support is available, or hand-writing `Start-Process -Verb RunAs` wrappers when you first need the current privilege status.
|
|
Usage: `msudo [OPTIONS] [--] <COMMAND...> | msudo run [OPTIONS] [--] <COMMAND...> | msudo status [OPTIONS] | msudo [OPTIONS] --shell <PRESET>`
|
|
Example: `msudo status --json | ConvertFrom-Json | Select-Object ok,host,supports_runas,is_elevated`
|
|
Guided answer: Answer Windows elevation, token, relay, and launch-shape questions.
|
|
Trust basis: Trust status discovery before launch; treat run actions as high risk and explicit.
|
|
Next actions: Start with msudo status --json. | Use argv quote before privileged shell wrapping.
|
|
TOON example: `msudo status --toon`
|
|
### `unlock`
|
|
Use: Identify file lockers and perform unlock-aware file actions on Windows. Better than: ad-hoc PowerShell probing when a file is busy, locked, or refuses delete, move, rename, or copy.
|
|
Usage: `unlock [OPTIONS] who <PATH...> | unlock [OPTIONS] free <PATH...> | unlock [OPTIONS] move <PATH> <DEST> | unlock [OPTIONS] rename <PATH> <NEW_NAME> | unlock [OPTIONS] delete <PATH...> | unlock [OPTIONS] copy <PATH> <DEST>`
|
|
Example: `unlock who .\target\debug\jsonlgrep.exe --json | ConvertFrom-Json | Select-Object -ExpandProperty results`
|
|
Guided answer: Answer which processes lock files and perform unlock-aware copy/move/delete actions.
|
|
Trust basis: Trust restart-manager/handle-scan evidence and post-action filesystem checks.
|
|
Next actions: Use proctree on blocker PIDs. | Use recent after cleanup to confirm generated artifacts.
|
|
TOON example: `unlock who .\target\debug\jsonlgrep.exe --toon`
|
|
## Managed, Unity, and Binary Inspection
|
|
### `asmtype`
|
|
Use: List managed assembly types and filter them by name, namespace, base type, interface, or matching members, with optional user-code-only screening. Better than: manual reflection or ad-hoc PowerShell when you first need the type map from a managed assembly.
|
|
Usage: `asmtype [OPTIONS] [ASSEMBLY...]`
|
|
Example: `asmtype <PATH> --with-member-match 'Build|Launch' --show-matched-members --pick full_name,base_type,matched_members --json | ConvertFrom-Json`
|
|
Guided answer: Answer which managed types match name, inheritance, interface, or member intent.
|
|
Trust basis: Trust metadata enumeration from the target assembly; broaden filters when no matches return.
|
|
Next actions: Pipe JSONL into asmmember. | Use asmflow find/xref when behavior matters.
|
|
TOON example: `asmtype <PATH> --with-member-match 'Build|Launch' --show-matched-members --pick full_name,base_type,matched_members --toon`
|
|
### `asmmember`
|
|
Use: Inspect managed type members with binding filters and compact signatures, including JSONL handoff from `asmtype` and user-code-only filtering. Better than: long reflection scripts when you need methods, fields, and properties from a known managed type.
|
|
Usage: `asmmember [OPTIONS] <TYPE...>`
|
|
Example: `asmtype <PATH> --intent unity-spacecraft-workflow --json | asmmember --assembly <PATH> --input-format jsonl --intent unity-spacecraft-workflow --pick type_name,name,visibility,signature --json | ConvertFrom-Json`
|
|
Guided answer: Answer which methods, fields, and properties exist on selected managed types.
|
|
Trust basis: Trust assembly metadata and binding filters; use non-public filters intentionally.
|
|
Next actions: Use asmflow body for IL details. | Use asmapi diff when comparing versions.
|
|
TOON example: `asmtype <PATH> --intent unity-spacecraft-workflow --json | asmmember --assembly <PATH> --input-format jsonl --intent unity-spacecraft-workflow --pick type_name,name,visibility,signature --toon`
|
|
### `asmref`
|
|
Use: Inspect managed assembly references, check whether they resolve from local directories, or run `diagnose` to report closure risks such as missing references, same-name version/token conflicts, winning DLLs, test-only leaks, and obvious MissingMethod/TypeLoad hazards. Better than: guessing missing managed dependencies when you need a fast reference, resolution, or Unity/Rocket plugin closure diagnosis pass.
|
|
Usage: `asmref [OPTIONS] [ASSEMBLY...] | asmref diagnose [OPTIONS] [ASSEMBLY...]`
|
|
Example: `asmref diagnose <PATH> --resolve-dir <PATH> --format toon`
|
|
Guided answer: Answer managed references, resolution status, and dependency closure risks.
|
|
Trust basis: Trust resolved candidates and risk tiers; explicit resolve dirs define the runtime universe.
|
|
Next actions: Run asmref diagnose for closure risks. | Use asmapi diff on risky version changes.
|
|
TOON example: `asmref --toon diagnose <PATH> --resolve-dir <PATH> --format toon`
|
|
### `asmapi`
|
|
Use: Compare two managed assemblies for added or removed public types, removed methods, signature changes, and MissingMethodException risks, with optional internal/all visibility. Better than: manual reflection diffs or brittle spreadsheet comparisons when you need to know what managed API changed between two DLL versions.
|
|
Usage: `asmapi [OPTIONS] <SUBCOMMAND> [ARGS...]`
|
|
Example: `asmapi diff .\old\0Harmony.dll .\new\0Harmony.dll --json | ConvertFrom-Json`
|
|
Guided answer: Answer public API differences between managed assemblies.
|
|
Trust basis: Trust metadata comparison under the chosen visibility scope.
|
|
Next actions: Use asmref diagnose to connect API drift to dependency closure. | Use asmmember on removed or changed types.
|
|
TOON example: `asmapi diff .\old\0Harmony.dll .\new\0Harmony.dll --toon`
|
|
### `asmflow`
|
|
Use: Inspect managed method bodies, IL summaries, and cross-references for Unity and general .NET reverse-engineering flows. Better than: ad-hoc IL dump scripts or manual dnSpy browsing when you need callers, callees, field access, or string literals from a managed method quickly.
|
|
Usage: `asmflow [OPTIONS] <SUBCOMMAND> [ARGS...]`
|
|
Example: `asmflow xref --assembly <PATH> 'Game.UI.Windows.Windows.SpaceCraftConstructionWindow::StartProject' --json | ConvertFrom-Json`
|
|
Guided answer: Answer managed IL bodies, callers, callees, field access, and string references.
|
|
Trust basis: Trust method-body metadata when the target method resolves; unknown bodies are reported.
|
|
Next actions: Use asmtype/asmmember to find exact targets. | Use ctxpack to hand off IL evidence.
|
|
TOON example: `asmflow xref --assembly <PATH> 'Game.UI.Windows.Windows.SpaceCraftConstructionWindow::StartProject' --toon`
|
|
### `llvmobjdump`
|
|
Use: Inspect object sections, symbol labels, and disassembly through LLVM backend discovery. Better than: raw llvm-objdump text when you need compact section, symbol, and disassembly shape for COFF/PE or object files.
|
|
Usage: `llvmobjdump [OPTIONS] [PATH...]`
|
|
Example: `llvmobjdump .\target\release-fast\binmeta.exe --json | ConvertFrom-Json`
|
|
Guided answer: Answer object sections, symbols, and disassembly shape through LLVM.
|
|
Trust basis: Trust LLVM backend output plus parser warnings/raw blocks for unsupported regions.
|
|
Next actions: Use llvmreadobj for headers/imports/debug hints. | Use pecalls or pesig for PE-focused call/function triage.
|
|
TOON example: `llvmobjdump .\target\release-fast\binmeta.exe --toon`
|
|
### `llvmreadobj`
|
|
Use: Inspect COFF/PE headers, sections, imports, exports, and debug hints through LLVM backend discovery. Better than: heavy binary viewers or raw llvm-readobj output when you need a bounded COFF/PE header, import/export, and debug/PDB summary.
|
|
Usage: `llvmreadobj [OPTIONS] [PATH...]`
|
|
Example: `llvmreadobj .\target\release-fast\binmeta.exe --json | ConvertFrom-Json`
|
|
Guided answer: Answer COFF/PE headers, sections, imports, exports, and debug hints through LLVM.
|
|
Trust basis: Trust LLVM backend exit status and parsed blocks; raw blocks preserve unparsed details.
|
|
Next actions: Use peimports/peexports for PE-focused grouping. | Use llvmobjdump when code layout or disassembly is needed.
|
|
TOON example: `llvmreadobj .\target\release-fast\binmeta.exe --toon`
|
|
### `llvmnm`
|
|
Use: List and classify object symbols through LLVM nm output. Better than: raw symbol-table dumps when you need stable symbol rows with kind, address, size, object/archive prefix, and source-line hints.
|
|
Usage: `llvmnm [OPTIONS] [PATH...]`
|
|
Example: `llvmnm .\target\release-fast\binmeta.exe --defined-only --json | ConvertFrom-Json`
|
|
Guided answer: Answer defined/undefined symbols with stable LLVM nm rows.
|
|
Trust basis: Trust POSIX-format symbol parsing and backend stderr tails.
|
|
Next actions: Use llvmobjdump for disassembly around symbols. | Use llvmreadobj for object headers and debug hints.
|
|
TOON example: `llvmnm .\target\release-fast\binmeta.exe --defined-only --toon`
|
|
### `peexports`
|
|
Use: Inspect export surfaces, spot forwarded symbols, filter by name or ordinal, and use `report_quality`/`next_actions` to decide the next PE pass. Better than: manual PE export-table browsing when you want names, ordinals, RVA/VA, forwarders, and guided follow-up commands without opening a heavy PE debugger.
|
|
Usage: `peexports [OPTIONS] [PATH...]`
|
|
Example: `peexports C:\Windows\System32\kernel32.dll --forwarders-only --json | ConvertFrom-Json`
|
|
Guided answer: Answer PE export names, ordinals, RVAs/VAs, forwarders, and entrypoint hints.
|
|
Trust basis: Trust PE export table parsing plus report_quality evidence and limitations.
|
|
Next actions: Use peimports to inspect dependencies. | Use llvmreadobj --exports to cross-check LLVM output.
|
|
TOON example: `peexports C:\Windows\System32\kernel32.dll --forwarders-only --toon`
|
|
### `peimports`
|
|
Use: Inspect imports by library, name, or category, quickly separate filesystem, registry, device I/O, NT, and network APIs, then follow emitted `next_actions`. Better than: ad-hoc import-table triage when you need API families grouped into human-friendly categories with immediate callsite and role follow-ups.
|
|
Usage: `peimports [OPTIONS] [PATH...]`
|
|
Example: `peimports .\target\release-fast\portping.exe --category device_io --json | ConvertFrom-Json`
|
|
Guided answer: Answer imported APIs grouped by library and API category.
|
|
Trust basis: Trust PE import table parsing plus report_quality evidence and limitations.
|
|
Next actions: Use pecalls on interesting categories. | Use drvshape for driver-like/native profiles.
|
|
TOON example: `peimports .\target\release-fast\portping.exe --category device_io --toon`
|
|
### `pecalls`
|
|
Use: Extract callsites for one or more imported APIs or API categories from LLVM objdump text and inspect `report_quality.limitations` before treating it as exhaustive. Better than: guessing import callsites from raw disassembly when you want direct IAT matches plus trust metadata around best-effort disassembly parsing.
|
|
Usage: `pecalls [OPTIONS] [PATH...]`
|
|
Example: `pecalls .\target\release-fast\portping.exe --api WSAStartup --json | ConvertFrom-Json`
|
|
Guided answer: Answer direct imported API callsites found through LLVM disassembly.
|
|
Trust basis: Trust direct IAT-target matches; report_quality limitations mark disassembly truncation or gaps.
|
|
Next actions: Use peimports to choose categories. | Use pesig to place callsites inside functions.
|
|
TOON example: `pecalls .\target\release-fast\portping.exe --api WSAStartup --toon`
|
|
### `pesig`
|
|
Use: Infer function boundaries, source hints, and calling conventions from PE text and metadata, then pivot to imports, callsites, or raw objdump via `next_actions`. Better than: manual function-boundary and calling-convention inference when you need a quick v1 signal with explicit confidence and next-step context.
|
|
Usage: `pesig [OPTIONS] [PATH...]`
|
|
Example: `pesig .\target\release-fast\portping.exe --min-confidence medium --json | ConvertFrom-Json`
|
|
Guided answer: Answer likely PE function boundaries and calling-convention hints.
|
|
Trust basis: Trust confidence/evidence per function and report_quality for parse completeness.
|
|
Next actions: Use pecalls to connect functions to APIs. | Use llvmobjdump for raw disassembly context.
|
|
TOON example: `pesig .\target\release-fast\portping.exe --min-confidence medium --toon`
|
|
### `pestrrefs`
|
|
Use: Scan ASCII or UTF-16LE strings, report direct references from LLVM disassembly, and use `next_actions` to connect strings to imports, callsites, or IOCTL constants. Better than: opening a disassembler and a string viewer separately when you need string hits with direct xrefs and a clear next triage command.
|
|
Usage: `pestrrefs [OPTIONS] [PATH...]`
|
|
Example: `pestrrefs .\target\release-fast\portping.exe --contains DeviceIoControl --json | ConvertFrom-Json`
|
|
Guided answer: Answer strings and direct code references in PE files.
|
|
Trust basis: Trust direct VA/range xrefs; unresolved counts are not guessed.
|
|
Next actions: Use peimports to connect strings to APIs. | Use ioctlscan for device-control constants.
|
|
TOON example: `pestrrefs .\target\release-fast\portping.exe --contains DeviceIoControl --toon`
|
|
### `drvshape`
|
|
Use: Summarize likely WDM, KMDF, NDIS, minifilter, or native driver traits, surface heuristic driver hints, and treat `report_quality` as the trust boundary. Better than: guessing the driver role from imports and exports when you want a compact Windows driver profile with IOCTL/import/callsite follow-ups already suggested.
|
|
Usage: `drvshape [OPTIONS] [PATH...]`
|
|
Example: `drvshape C:\Windows\System32\drivers\ndis.sys --json | ConvertFrom-Json`
|
|
Guided answer: Answer likely Windows driver role, subsystem, imports, exports, and heuristic hints.
|
|
Trust basis: Trust role hints as heuristics, not vulnerability conclusions; report_quality shows evidence.
|
|
Next actions: Use ioctlscan to decode CTL_CODE candidates. | Use pecalls --category device_io for dispatch/callsite evidence.
|
|
TOON example: `drvshape C:\Windows\System32\drivers\ndis.sys --toon`
|
|
### `ioctlscan`
|
|
Use: Scan PE bytes and disassembly-adjacent data for likely IOCTL constants, decode their fields, and use `report_quality` to separate strong hits from heuristic candidates. Better than: searching for Windows IOCTL constants by hand when you want decoded CTL_CODE fields, code locations, and suggested role/callsite/string follow-ups.
|
|
Usage: `ioctlscan [OPTIONS] [PATH...]`
|
|
Example: `ioctlscan C:\Windows\System32\drivers\ndis.sys --json | ConvertFrom-Json`
|
|
Guided answer: Answer probable IOCTL constants and decoded CTL_CODE fields.
|
|
Trust basis: Trust confidence/evidence per candidate; raw byte hits are heuristic until tied to code context.
|
|
Next actions: Use drvshape to confirm driver role. | Use pestrrefs or pecalls for surrounding evidence.
|
|
TOON example: `ioctlscan C:\Windows\System32\drivers\ndis.sys --toon`
|
|
### `unityasset`
|
|
Use: Inspect Unity serialized assets, bundles, and YAML objects, then trace refs, dump fields, or extract payloads such as TextAsset, MonoScript, AudioClip, and VideoClip. Better than: opening a heavy Unity GUI tool when you first need an index, object refs, field dump, or a quick extraction path for assets, scripts, audio, or video.
|
|
Usage: `unityasset [OPTIONS] index [PATH...] | unityasset [OPTIONS] refs <OBJECT_ID> [PATH...] | unityasset [OPTIONS] dump <OBJECT_ID> [PATH...] | unityasset [OPTIONS] extract <OBJECT_ID> [PATH...] [--output-dir <DIR>]`
|
|
Example: `unityasset index 'C:\game\Game_Data' --class MonoBehaviour --script 'MarketOffer|LaunchVehicle'`
|
|
Guided answer: Answer Unity asset indexes, object dumps, references, and extraction writes.
|
|
Trust basis: Trust parsed serialized files/bundles and explicit unresolved reference rows.
|
|
Next actions: Use unitydiag for runtime/log symptoms. | Use asmtype/asmflow for managed script assemblies.
|
|
TOON example: `unityasset --toon index 'C:\game\Game_Data' --class MonoBehaviour --script 'MarketOffer|LaunchVehicle'`
|
|
### `unityprobe`
|
|
Use: Install and query a read-only BepInEx bridge for live scenes, objects, and static state in a running Mono Unity game on Windows. Better than: hand-writing BepInEx reflection plugins or one-off named-pipe helpers when you only need a read-only runtime snapshot from a Mono Unity game.
|
|
Usage: `unityprobe [OPTIONS] <SUBCOMMAND> [ARGS...]`
|
|
Example: `unityprobe --json scenes | ConvertFrom-Json`
|
|
Guided answer: Answer read-only Unity runtime bridge status, object search, and inspection.
|
|
Trust basis: Trust explicit bridge install/status and Windows named-pipe reachability.
|
|
Next actions: Use unitydiag when runtime logs explain bridge issues. | Use unityasset for offline assets.
|
|
TOON example: `unityprobe --toon scenes`
|
|
### `unitydiag`
|
|
Use: Summarize Unity Player.log and BepInEx logs into grouped incidents, normalized messages, and domain-aware failure summaries. Better than: reading raw Player.log and BepInEx logs end to end when you need the repeated incidents, top frames, and mod-vs-framework blame split first.
|
|
Usage: `unitydiag [OPTIONS] [PATH...]`
|
|
Example: `unitydiag --game-root 'C:\game' --json | ConvertFrom-Json`
|
|
Guided answer: Answer Unity/BepInEx log incidents, grouped frames, and mod/runtime warnings.
|
|
Trust basis: Trust discovered log paths, grouping counts, and preserved stack snippets.
|
|
Next actions: Use asmref diagnose for plugin dependency issues. | Use unityprobe when live object state is needed.
|
|
TOON example: `unitydiag --game-root 'C:\game' --toon`
|
|
### `binmeta`
|
|
Use: Inspect file metadata, Windows PE basics, version/company/product identity, embedded Authenticode certificate tables, WinTrust status, catalog signing, signer certificate subjects, chains, timestamps, and expiry hints. Better than: opening heavy PE tooling or shelling out to signature utilities when you first need binary identity, PE basics, version resources, and Windows signing status.
|
|
Usage: `binmeta [OPTIONS] [PATH...]`
|
|
Example: `binmeta .\target\debug\jsonlgrep.exe --json | ConvertFrom-Json`
|
|
Guided answer: Answer file identity, PE basics, version resource fields, company/product names, signature status, embedded-vs-catalog signing, signer subject, certificate chain, timestamp, and expiry fields before deeper binary analysis.
|
|
Trust basis: Trust goblin PE/resource parsing for local structure and Windows WinTrust/catalog status on Windows; signature failures are reported as metadata, not command failures. On non-Windows, trust only embedded certificate table presence and treat WinTrust fields as unsupported.
|
|
Next actions: Use peimports or llvmreadobj for deeper PE detail after identity is known. | Use drvshape or ioctlscan for signed drivers and native/system binaries. | Use stringscan or pestrrefs when identity/version metadata is missing or suspicious.
|
|
TOON example: `binmeta .\target\debug\jsonlgrep.exe --toon`
|
|
### `stringscan`
|
|
Use: Extract and classify high-signal strings from binaries or blobs. Better than: a full reverse-engineering pass when you first need identity clues from strings.
|
|
Usage: `stringscan [OPTIONS] [PATH...]`
|
|
Example: `stringscan <PATH>`
|
|
Guided answer: Answer strings and classified hints from arbitrary blobs.
|
|
Trust basis: Trust extracted string offsets and classification labels; encoding limits are explicit.
|
|
Next actions: Use binmeta first for binary identity. | Use pestrrefs for PE strings with xrefs.
|
|
TOON example: `stringscan --toon <PATH>`
|