Skip to content

Add --imports / --exports / --symbols CLI convenience flags #208

Closed

Description

@unclesp1d3r

Summary

Add convenience CLI flags --imports, --exports, and --symbols as shorthands for existing tag filters. This is the one literal acceptance criterion from the v0.2 epic (#40, Feature 3) intentionally deferred in favor of the generic tag system.

Current behavior

Imports, exports, and demangled symbols are fully extracted, tagged, classified, and ranked. They are filterable today only via the generic tag flags:

stringy bin --only-tags Import
stringy bin --only-tags Export
stringy bin --only-tags DemangledSymbol

Proposed

Add boolean convenience flags in src/main.rs mapping to the tag filter:

  • --imports -> --only-tags Import
  • --exports -> --only-tags Export
  • --symbols -> --only-tags DemangledSymbol (or Import+Export+DemangledSymbol -- decide during design)

Design notes / co-change requirements:

  • Follow clap-derive conventions in main.rs; push conflict handling into clap (conflicts_with for --only-tags/--no-tags/--raw as appropriate).
  • Define composition semantics with --only-tags (likely conflict, matching --raw's pattern).
  • Update tests/integration_cli.rs and the CLI-flag table in AGENTS.md (GOTCHAS.md notes these must co-change).
  • Long-only flags (consistent with --enc/--yara/--raw); no short flags for infrequent options.

Acceptance criteria

  • --imports, --exports, --symbols implemented as clap flags
  • Conflict rules with --only-tags/--no-tags/--raw defined and enforced by clap
  • AGENTS.md CLI-flag table updated
  • tests/integration_cli.rs covers each new flag
  • just ci-check passes

Context

Follow-up to #40 (Feature 3). Extraction/tagging/ranking are already complete; this is CLI ergonomics only.

Activity

  1. added this to the v0.2 milestone on Jul 5, 2026
  2. coderabbitai commented on Jul 5, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #131 - feat(classification): add semantic pattern matching for GUID, email, base64, format strings, and user agents [merged]
    #141 - feat: Stringy v1.0 -- pipeline architecture, CLI hardening, and comprehensive testing [closed]
    #147 - docs: Improve README, CLI UX, and documentation accuracy [closed]
    #174 - feat: Import/Export symbol classification pipeline [merged]
    #177 - feat: Add MSVC symbol demangling support for PE binaries [merged]


    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  3. self-assigned this
    on Jul 5, 2026
  4. added a commit that references this issue on Jul 5, 2026
    ab5d1b3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions